Использование Get-ADPrincipalGroupMembership в качестве задания
Я хочу получить членство в AD Group как работу. Просто используя
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
Я получаю ошибку:
Невозможно проверить аргумент параметра "Идентичность". Аргумент нулевой или пустой. Укажите аргумент, который не является пустым или пустым, а затем повторите команду. + CategoryInfo: InvalidData: (:) [Get-ADPrincipalGroupMembership], ParameterBindingValidationExcep
tion + FullyQualifiedErrorId: ParameterArgumentValidationError, Microsoft.ActiveDirectory.Management.Commands.Get ADPrincipalGroupMembership + PSComputerName: localhost Что я делаю не так?
1 ответ
Задания выполняются в фоновом режиме, а не в текущей области, поэтому 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-й и так далее.
В вашем случае нужен только один параметр, поэтому используйте -ArgumentList $DN
и позвони с $args[0]
внутри start-job
ScriptBlock