Powershell 如何使用Catch函数确定哪个变量不正确?
目前我正在PowerShell中试用Catch函数,以提高我的技能。 我有一个不错的开始,我知道如何使用一个变量进行错误检查,但如何使用两个变量的Catch来进行检查Powershell 如何使用Catch函数确定哪个变量不正确?,powershell,Powershell,目前我正在PowerShell中试用Catch函数,以提高我的技能。 我有一个不错的开始,我知道如何使用一个变量进行错误检查,但如何使用两个变量的Catch来进行检查 "7" { $source = Read-Host "Enter AD account you want to copy from" $dist = Read-Host " Enter AD account to be assigned same groups" Try { get-aduser -Ide
"7" {
$source = Read-Host "Enter AD account you want to copy from"
$dist = Read-Host " Enter AD account to be assigned same groups"
Try {
get-aduser -Identity $source -properties memberof | select-object memberof -ExpandProperty memberof | Add-ADGroupMember -members $dist
}
Catch {
throw "No user found in AD with SamAccountName '$source'"
}
您可以使用
-ErrorVariable
参数来实现所需的功能
如果我以您为例进行更新,您可以执行以下操作:
Try {
get-aduser -Identity $source -properties memberof -ErrorVariable errorsFromGetADUser | select-object memberof -ExpandProperty memberof | Add-ADGroupMember -members $dist -ErrorVariable errorsFromAddADGroupMember
}
Catch {
if ($errorsFromGetADUser) {
# We failed while trying to get the user
}
else if ($errorsFromAddADGroupMember) {
# We successfully retrieved the user
}
}
如果需要跟踪多个cmdlet的错误,可以。。。[A] 使用
catch
块中的$\ucode>查看触发catch的错误。。。或者[B]将每个cmdlet包装到它自己的try/catch
可能还有其他人。[咧嘴笑]