我正在尝试在自定义日志文件中记录错误,同时对 Active Directory 中的用户进行修改。 代码如下:
Get-ADUser -LDAPFilter "(objectCategory=user)" -SearchScope Subtree -SearchBase $searchBase | Set-ADUser -PasswordNeverExpires 0
当命令遇到错误时,是否可以检查 Set-ADUser 命令是否对每个用户都成功,并将自定义字符串写入自定义日志文件? (例如,访问权限不足)。由于这些错误似乎是非终止的,我不知道如何用 try/catch 解决这个问题。
最佳答案
在此处输入代码
您可以尝试使用$error
变量来检查在每个PasswordNeverExpires
设置期间是否发生错误。
$log = "C:\LogFile.txt"
Get-ADUser -LDAPFilter "(objectCategory=user)" -SearchScope Subtree -SearchBase $searchBase `
| %{
$error[0] = $null
Set-ADUser -PasswordNeverExpires 0
If($error[0] -eq $null){
"User:[" + $_.Name + "] PasswordNeverExpires was set successfully" >> $log
}
Else{
"User:[" + $_.Name + "] PasswordNeverExpires Failed to be set, Error:" >> $log
$error[0] >> $log
}
}
关于PowerShell,异常处理 : Create custom logfile from Set-ADUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18188500/