Powershell:显示来自 Resolve-DnsName 的错误
Powershell: Display Errors from Resolve-DnsName
早上好,
所以我得到了一堆 IP 并想获得 DNS 名称,
所以我尝试了这个。
Select-String -Allmatches -pattern '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' |% { $_.Matches }| % { $_.Value }| select -Unique| %{Resolve-Dnsname -name $_}
这有效,但是当我将它输出到文件时,我只得到他可以找到主机名的结果。
有没有办法也显示错误。
我可能会这样做:
Select-String -AllMatches -Pattern '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' |
Select-Object -ExpandProperty Matches |
Select-Object -ExpandProperty Value -Unique |
ForEach-Object {
$Resolve = $null
$Resolve = Resolve-DnsName -Name $_ -ErrorAction SilentlyContinue
[PSCustomObject]@{
IP = $_
Name = $Resolve.Name
Type = $Resolve.Type
TTL = $Resolve.TTL
Section = $Resolve.Section
NameHost = $Resolve.NameHost
}
}
您可以在自定义对象中指定您想要的任何字段。我只是包含了 Resolve-DnsName
输出到屏幕的默认属性。
一般来说,Select-Object -ExpandProperty <property>
比 ForEach-Object { $_.<property> }
表现更好。
我相当确定我上面的代码会起作用,但有一个外部机会:
Select-Object -ExpandProperty Value -Unique |
可能需要这样:
Select-Object -ExpandProperty Value |
Select-Object -Unique |
早上好,
所以我得到了一堆 IP 并想获得 DNS 名称, 所以我尝试了这个。
Select-String -Allmatches -pattern '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' |% { $_.Matches }| % { $_.Value }| select -Unique| %{Resolve-Dnsname -name $_}
这有效,但是当我将它输出到文件时,我只得到他可以找到主机名的结果。
有没有办法也显示错误。
我可能会这样做:
Select-String -AllMatches -Pattern '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' |
Select-Object -ExpandProperty Matches |
Select-Object -ExpandProperty Value -Unique |
ForEach-Object {
$Resolve = $null
$Resolve = Resolve-DnsName -Name $_ -ErrorAction SilentlyContinue
[PSCustomObject]@{
IP = $_
Name = $Resolve.Name
Type = $Resolve.Type
TTL = $Resolve.TTL
Section = $Resolve.Section
NameHost = $Resolve.NameHost
}
}
您可以在自定义对象中指定您想要的任何字段。我只是包含了 Resolve-DnsName
输出到屏幕的默认属性。
一般来说,Select-Object -ExpandProperty <property>
比 ForEach-Object { $_.<property> }
表现更好。
我相当确定我上面的代码会起作用,但有一个外部机会:
Select-Object -ExpandProperty Value -Unique |
可能需要这样:
Select-Object -ExpandProperty Value |
Select-Object -Unique |