Должен быть более чистый способ для этого
Внутри скрипта у меня есть часть, куда я иду - get-aduser и передаю ее в set-aduser, мне нужно заменить 3 поля, я делаю это 3 раза:
get-aduser -filter 'Name -like $name' | % {Set-aduser $_ -state $pcname }
get-aduser -filter 'Name -like $name' | % {Set-aduser $_ -POBox $bios }
get-aduser -filter 'Name -like $name' | % {Set-aduser $_ -Description $ip }
Мне очень неловко спрашивать об этом, но я не мог найти, как я могу сделать это одним лайнером?
2 ответа
ForEach-Object здесь не нужен, также вы можете использовать хеш-таблицу:
$hash=@{
State=$pcname
POBox=$bios
Description=$ip
}
Get-ADuser -Filter "Name -like '$name'"|Set-ADuser @hash
-like будет использоваться с подстановочными знаками; если имя точно совпадает:
Set-aduser -identity $name -state $pcname -POBox $bios -Description $ip