0

ADグループメンバーシップを仕事として取得したい. 使っているだけ

Get-ADPrincipalGroupMembership -Identity $objUser.DistinguishedName

AD グループのリストを適切に返します。ただし、これを仕事として試すと:

$Job = Start-Job {Get-ADPrincipalGroupMembership $objUser.DistinguishedName}
$Job.Name
Wait-Job -Name $Job.Name
Receive-Job -Name $Job.Name

エラーが発生します:

パラメータ 'Identity' の引数を検証できません。引数が null または空です。null または空でない引数を指定して、コマンドを再試行してください。+ CategoryInfo : InvalidData: (:) [Get-ADPrincipalGroupMembership], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.Get ADPrincipalGroupMembership + PSComputerName : localhost 何が間違っていますか?

4

1 に答える 1

0

ジョブは現在のスコープではなくバックグラウンドで実行されているため、Start-Job は、変数について通知しない限り、変数について何も知りません。

$DN = $objUser.DistinguishedName
$Job = Start-Job {Get-ADPrincipalGroupMembership $args[0]} -ArgumentList $DN
$Job.Name
Wait-Job -Name $Job.Name
Receive-Job -Name $Job.Name

説明:

-ArgumentList $var1,$var2パラメータを使用して変数を追加$args[0]し、最初のパラメータ$args[1]から 2 番目のパラメータまでを使用します。

あなたの場合、必要なパラメーターは1つだけなので、 ScriptBlock内で使用-ArgumentList $DNして呼び出します$args[0]start-job

于 2015-08-26T14:21:04.987 に答える