Я написал функцию, чтобы обернуть командлет new-cssipdomain блоком try / catch, если домен sip уже существует.Код:
function LHP-AddSIPDomain
{
param ( [string] $SIPDomain)
try
{
New-cssipdomain -id $SIPDomain
}
catch
{
Write-host "Lync specific exception occured adding SIP domain"
Write-host "Exception String:"+$_.Exception.Message
exit
}
}
LHP-AddSIPDOmain -SipDomain "Test206.com"
Вывод, когда домен уже существует:
New-CsSipDomain : "SipDomain" with identity "Test206.com" already exists. To modify
the existing item, use the Set- cmdlet. To create a new item, use a different
identity. Parameter name: Identity
At S:\Scripts\LHP-AddSIPDomain.ps1:33 char:26
+ New-cssipdomain <<<< -id $SIPDomain
+ CategoryInfo : InvalidArgument: (Test206.com:String) [New-CsSipDomain],
ArgumentException
+ FullyQualifiedErrorId :
InvalidIdentity,Microsoft.Rtc.Management.Xds.NewOcsSipDomainCmdlet
Это должно быть перехвачено блоком try / catch.Я попытался добавить [system.exception] в оператор catch.Я также попытался установить $ erroraction = ”Stop”.Ничто не изменило, оператор try / catch, похоже, игнорируется.Я использовал этот тип структуры кода для захвата ошибок из командлета new-aduser, и это, похоже, работает нормально.
Я также рассмотрел и попытался сначала использовать командлет hte get-cssipdomin, чтобы проверить, существует ли уже домен sip, но у меня есть похожая проблема в том, что если вы вызываете get-cscsipdomain с доменом, который не существуетон выдает ошибку, которую я, похоже, не могу уловить.
Любые предложения будут с благодарностью.