如果我只想在用户已经存在的情况下捕获exception,我应该捕获什么types的exception?
例如:
[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
我只是在这里通知,抛出的exception是system.DirectoryServices.DirectoryServicesComException
你可以像下面这样使用Try,Catch块。
try { New-ADUser "FAKEACCOUNT" } catch [Microsoft.ActiveDirectory.Management.ADIdentityAlreadyExistsException] { #forget about it.... } catch { #PANIC! }
注意:我并不积极,New-QADUser cmdlet引发同样的exception,但上面的代码适用于New-ADUser cmdlet。
此链接可能会帮助您解读您的具体情况: http : //blogs.msdn.com/b/adpowershell/archive/2009/03/25/error-reporting-in-active-directory-powershell.aspx
我使用这个函数来testingAD对象:
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
}
这是从这里,但我找不到直接的联系。