【发布时间】:2012-03-28 10:17:07
【问题描述】:
我正在遍历一个 samaccountnames 列表并执行几个操作:
# Disabling user
try {
Disable-QADUser $user | Out-Null
} catch [exception] {
"Disable-QADuser: " + $($_.Exception.Message) | out-file $logfile -append
write-host " - Error disabling useraccount." -fore yellow
}
# Set informative description
try {
Set-QADuser $user -Description "Disabled $now" | Out-Null
} catch [exception] {
"Set-QADuser: " + $($_.Exception.Message)| out-file $logfile -append
write-host " - Error setting informative description in AD." -fore yellow
}
但是如果命令成功完成,我该如何输出呢?类似的东西
write-host "User $user disabled"
"User $user disabled" | out-file $logfile -append
非常感谢所有帮助/指针!
编辑
我注意到我可以使用tee-object 将输出发送到文件以及控制台。这样我就不必在“tee”输出中使用行了:)
【问题讨论】:
-
你可以简单地在 try 子句中的所有语句之后直接将变量设置为 true。一个异常会跳过它,因此它不会被设置(或者如果你在退出
try和catch子句时在try之前设置它,它仍然是假的。然后测试它的值并相应地执行一些操作。跨度> -
很棒的提示,但不是我所追求的:) 我对您的回复投了赞成票,因为我相信以后会用到它!
标签: powershell try-catch