使用 Get-ADPrincipalGroupMembership 作为工作

Using Get-ADPrincipalGroupMembership as a job

我想获得 AD Group Membership 作为一份工作。刚刚使用

Get-ADPrincipalGroupMembership -Identity $objUser.DistinguishedName

很好returns 广告组列表。但是,当我尝试将其作为工作时:

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

我收到一个错误:

Cannot validate argument on parameter 'Identity'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again. + CategoryInfo : InvalidData: (:) [Get-ADPrincipalGroupMembership], ParameterBindingValidationExcep
tion + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.Get ADPrincipalGroupMembership + PSComputerName : localhost What am I doing wrong?

作业 运行 在后台而不是在当前范围内,因此 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] 到第二个,依此类推。

在你的情况下只需要一个参数,所以使用 -ArgumentList $DN 并在 start-job ScriptBlock

中用 $args[0] 调用它