爲了澄清原來的崗位,這將返回錯誤:
「新ADUser便有:密碼不符合長度,複雜性或歷史域的要求。」
用戶帳戶已創建,但已禁用。
在New-ADUser cmdlet上指定-ErrorAction Stop並不足以阻止創建用戶帳戶。
爲了防止用戶帳戶被創建,您必須設置全局ErrorActionPreference像這樣(還有如何使用ErrorAction參數):如果你願意,你可以在你的新ADUser便有cmdlet的包裝這使
$ErrorActionPreference = "Stop"
它僅影響該cmdlet,而不是你的腳本的其餘部分,像這樣:
$ExistingEAP = $ErrorActionPreference
$ErrorActionPreference = "Stop"
New-ADUser ... -ErrorAction Stop
$ErrorActionPreference = $ExistingEAP
對於一個更完整的例子,假設你有一些通用的帳戶一個簡單的$ samaccountnames的userArray,你可以嘗試這樣的事情:
$ExistingEAP = $ErrorActionPreference
$ErrorActionPreference = "Stop"
$userarray = "test1","test2","test3"
foreach($username in $userarray)
{
try
{
New-ADUser $username -Givenname test -surname test -AccountPassword (ConvertTo-SecureString "abc" -AsPlainText -force) -ErrorAction Stop
$created += @($username)
}
catch
{
$notcreated += @($username)
}
}
$ErrorActionPreference = $ExistingEAP
Write-Output "Created $created"
Write-Output "Could not create: $notcreated"
這適用於我在我的環境中。