Powershell 如何使用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

目前我正在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 -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
可能还有其他人。[咧嘴笑]