PowerShell中的catch问题

8 powershell

我有一个catch命令的问题.我有以下脚本我正在尝试处理:

Try
{
    Add-Computer -DomainName "MyDomain.Dom" -Credential $DomainCred -PassThru -ErrorAction Stop
}

Catch [System.InvalidOperationException]
{
    "Your computer is unable to contact the domain"
}
Run Code Online (Sandbox Code Playgroud)

每次我运行这个虽然我没有在catch块中得到任何东西.以下是我从脚本中获得的错误报告:

PSMessageDetails      :
Exception             : System.InvalidOperationException: This command cannot be executed on target computer('') due to following error: The specified domain either does not exist or could not
                        be contacted.
TargetObject          :
CategoryInfo          : InvalidOperation: (MYPC:String) [Add-Computer], InvalidOperationException
FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.AddComputerCommand
ErrorDetails          :
InvocationInfo        : System.Management.Automation.InvocationInfo
PipelineIterationInfo : {0, 1}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?


一个有效的解决方案(感谢PK和Patrick的共同贡献):

Try
{
    Add-Computer -DomainName "MyDomain.Dom" -Credential $DomainCred -PassThru -ErrorAction Stop
}

Catch [System.Management.Automation.RuntimeException]
{
    "Your computer is unable to contact the domain"
}
Run Code Online (Sandbox Code Playgroud)

pk.*_*pk. 4

尝试用 catchSystem.Management.Automation.RuntimeException代替System.InvalidOperationException.

Try
{
    Add-Computer -DomainName "MyDomain.Dom" -Credential $DomainCred
}

Catch [System.Management.Automation.RuntimeException]
{
    'Error: {0}' -f $_.Exception.Message
}
Run Code Online (Sandbox Code Playgroud)