Powershell 未捕获WIN32 cim异常

Powershell 未捕获WIN32 cim异常,powershell,exception,exception-handling,dns,Powershell,Exception,Exception Handling,Dns,我对以下FullyQualifiedErrorId:WIN32 9741有问题 我正在执行以下操作,由于某些原因,这没有捕获错误。我似乎在网上找不到太多的细节,想知道是否有人有什么想法 $ErrorActionPreference = "Stop"; try { Get-DnsServerResourceRecord -ZoneName testerror -Name testst } catch [Exception] { Write-Output $_.Exception.M

我对以下
FullyQualifiedErrorId:WIN32 9741
有问题

我正在执行以下操作,由于某些原因,这没有捕获错误。我似乎在网上找不到太多的细节,想知道是否有人有什么想法

$ErrorActionPreference = "Stop";

try
{
   Get-DnsServerResourceRecord -ZoneName testerror -Name testst
}
catch [Exception]
{
    Write-Output $_.Exception.Message
}

只有当
-ZoneName
的计算结果为
true
-Name
的计算结果为
false时,才会发生未处理的异常。如果
-ZoneName
false
,则会捕获异常

我参加聚会有点晚了,但是那些仍在为这个问题挣扎的人,我找到了一个解决办法():

关键是参数“-ErrorAction Stop”,并引用源代码:

但是,为什么[Microsoft.Management.Infrastructure.CimException]会出现异常 ]消息出现了吗?因为ErrorAction首选项设置为“继续”:


只需使用
catch{..}
而不使用
[Exception]
就可以了,但同样的问题仍然存在,并且异常在两个方面都出现了:
无法在dc01服务器上的MyZone区域中获取was记录。
对于现有区域中不存在的记录,在服务器dc01上找不到区域blubb。
用于不存在的区域。第二个仅适用于我
try{
    Get-DnsServerResourceRecord -ZoneName "your.domain.com" -Name $NewDNSRecordResourceName -ErrorAction Stop
}
catch [Microsoft.Management.Infrastructure.CimException]{
        $error[0].Exception.GetType().FullName
        Write-Host "DNS record does not exist"
}
catch{
#Do something for the rest of the exceptions
}