如果我只想在用户已存在时捕获异常,我应该捕获哪种类型的异常?
例如:
[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
}
来自于这里但我找不到直接链接。