【问题标题】:Try Catch Not Working for Get-CsUser Command尝试 Catch 不适用于 Get-CsUser 命令
【发布时间】:2020-01-27 05:48:36
【问题描述】:

我已经设置了一个 Try Catch 块来检查是否存在 Skype 用户,并且该命令会引发错误,但 Catch 块没有捕获它并显示正确的错误消息。

这是代码,后面是它在 Windows PowerShell ISE 中引发的错误消息

try
{
    $Output = Get-CsUser -Identity "Chrlis.domain\$username"

} Catch
{
    If($error[0] -like "*Management object not found for identity*") {
        Write-Host "SKYPE LYNC ERROR3: $username does not have a Skype account" -ForegroundColor Red
    } Else {
        Write-Host "SKYPE LYNC ERROR4:" $Error[0].Exception -ForegroundColor Red
    }
}

Management object not found for identity "Chrlis.domain\Jacob.Hal".
    + CategoryInfo          : InvalidData: (Chrlis.domain\Jacob.Hal:UserIdParameter) [Get-CsUser], ManagementException
    + FullyQualifiedErrorId : Identity,Microsoft.Rtc.Management.AD.Cmdlets.GetOcsUserCmdlet
    + PSComputerName        : pigeon1.Chrlis.domain

任何帮助将不胜感激。

【问题讨论】:

标签: powershell powershell-4.0 skype skype-for-business


【解决方案1】:

您可以修改 -erroractionpreference 参数以静默继续,然后执行 .count() 或 .length() 检查以查看变量和操作中是否有任何内容。

我会提供样板代码,但在移动设备上有点难。

阅读 Ed 关于它的帖子 -- https://devblogs.microsoft.com/scripting/hey-scripting-guy-how-can-i-use-erroractionpreference-to-control-cmdlet-handling-of-errors/

【讨论】:

    猜你喜欢
    • 2018-12-27
    • 1970-01-01
    • 2012-03-26
    • 2022-08-19
    • 2016-08-07
    • 2021-06-17
    • 2011-03-28
    • 2020-12-03
    • 1970-01-01
    相关资源
    最近更新 更多