使用 New-QADUser cmdlet 仅捕获当活动目录用户已存在时发生的异常?

使用 New-QADUser cmdlet 仅捕获当活动目录用户已存在时发生的异常?

如果我只想在用户已存在时捕获异常,我应该捕获哪种类型的异常?

例如:

 [UserAlreadyExistsException]
 trap{
    #forget about it....
 }
 [AnyOtherException]
 trap{
    #PANIC!
 }
 $newUser = New-QADUser -name $line.UserID -ParentContainer 'OU=Symetra,DC=CI3DOMAIN,DC=local' -samAccountName $line.UserID -UserPassword 'p' -DisplayName $line.APPROVER -Department $line.Department -Description "$approver from $department" -ErrorAction SilentlyContinue

更新!

我刚刚收到通知这里抛出的异常是system.DirectoryServices.DirectoryServicesComException

答案1

您可以像下面这样使用 Try、Catch 块。

try
{
   New-ADUser "FAKEACCOUNT"
}
catch [Microsoft.ActiveDirectory.Management.ADIdentityAlreadyExistsException]
{
   #forget about it....
}
catch
{
   #PANIC!
}

注意:我不确定 New-QADUser cmdlet 是否会引发相同的异常,但上述代码适用于 New-ADUser cmdlet。

此链接可能会帮助您了解您的情况的具体细节:http://blogs.msdn.com/b/adpowershell/archive/2009/03/25/error-reporting-in-active-directory-powershell.aspx

答案2

我使用这个函数来测试 AD 对象:

function Test-QADObject {
 [CmdletBinding()]
 param(
      [Parameter(Position=0, Mandatory=$true)]
      [System.String]
      $Identity
 )
(Get-QADObject $Identity -DontUseDefaultIncludedProperties `
-WarningAction SilentlyContinue -ErrorAction SilentlyContinue `
-SizeLimit 1) -ne $null

}

来自于这里但我找不到直接链接。

相关内容