You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Resolve-DnsName查询DNS时如何将报错信息单独导出到文件

解决方案

该需求可直接通过PowerShell自带的错误捕获机制实现,修改后的脚本如下:

$path = ".\domain.txt"
$dnsserver = @('DNS-Srv1', 'DNS-Srv2' , 'DNS-Srv3')
$errorLogPath = ".\dns_query_errors.log"
# 清空历史错误日志,不需要可删除该行
Clear-Content -Path $errorLogPath -ErrorAction SilentlyContinue
$mxdomain = Get-Content $path
foreach ($domain in $mxdomain) {
    Resolve-DnsName -Name $domain -Type MX -Server $dnsserver -ErrorAction SilentlyContinue -ErrorVariable dnsErr | Select-Object Name,Type,NameExchange
    # 存在报错时按指定格式写入日志
    if ($dnsErr) {
        $errorOutput = @"
+ CategoryInfo          : $($dnsErr.CategoryInfo)
+ FullyQualifiedErrorId : $($dnsErr.FullyQualifiedErrorId)
$dnsErr
"@
        Add-Content -Path $errorLogPath -Value $errorOutput -Encoding UTF8
    }
}

脚本运行后,正常的MX记录查询结果会保持原有输出逻辑,所有查询失败的报错信息会按你要求的格式单独写入dns_query_errors.log文件。如果需要批量导出正常查询结果,可在Select-Object Name,Type,NameExchange后追加| Export-Csv -Path ".\mx_records.csv" -NoTypeInformation -Encoding UTF8即可。


内容的提问来源于stack exchange,提问作者Marko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:09:04