【问题标题】:Resolve-DNSName get errors to separate fileResolve-DNSName 获取错误以分离文件
【发布时间】:2021-09-20 07:15:12
【问题描述】:

我正在尝试将所有错误放到一个单独的文件中,以便我们稍后清理 DNS srv。

我想要的是得到错误信息:

+ CategoryInfo : ResourceUnavailable: (bonjour.Domainname.com:String) [Resolve-DnsName], Win32Exception
+ FullyQualifiedErrorId : DNS_ERROR_RCODE_NAME_ERROR,Microsoft.DnsClient.Commands.ResolveDnsName
Resolve-DnsName : Domainname.com : DNS-namnet 不存在

以单独的文件结束,这可能吗?

我现在正在使用这个脚本:

$path = ".\domain.txt"
$dnsserver = @('DNS-Srv1', 'DNS-Srv2' , 'DNS-Srv3')
$mxdomain = Get-Content $path
foreach ($domain in $mxdomain) {
Resolve-DnsName -Name $domain -Type MX -Server $dnsserver | select Name,Type,NameExchange } ```

【问题讨论】:

  • 您可以将 Cmdlet 包含在 try 块中并在 catch 中捕获异常?
  • 好的,到此为止:foreach ($domain in $mxdomain) { try { Resolve-DnsName -Name $domain -Type MX -Server $dnsserver -erroraction stop | select Name,Type,NameExchange } catch { [BUT WHAT TO TYPE HERE??] Export-Csv -Path .\DNS\error_dns.csv -NoTypeInformation } }

标签: powershell dns ps


【解决方案1】:

您可以使用Try Catch 来处理异常。在 Catch 块中,current error can be accessed using $_ 和对象将是 of type ErrorRecord。它有一个ToString method,您可以使用它来获取错误记录的字符串表示形式。

尝试 { Resolve-DnsName -Name www.bing122222.com -ErrorAction Stop } 抓住 { $error_message = $_.ToString() # 这将打印 'www.bing122222.com : DNS 名称不存在' 写主机 $error_message }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多