Попробуйте Catch не работает для команды Get-CsUser - PullRequest
0 голосов
/ 27 сентября 2019

Я установил блок 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

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 27 сентября 2019

Вы можете изменить параметр -erroractionpreference, чтобы он продолжал без вывода сообщений, а затем выполнить проверку .count () или .length (), чтобы убедиться, что в переменной и действии действительно есть что-либо.

Я бы предоставилКод котельной, но на мобильном телефоне это немного сложно.

Прочтите сообщение Эда - https://devblogs.microsoft.com/scripting/hey-scripting-guy-how-can-i-use-erroractionpreference-to-control-cmdlet-handling-of-errors/

...