0

在一个脚本中,我有一个我要去的部分 - 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 }
     

问这个问题我觉得很尴尬,但我找不到如何让它成为一个班轮?

4

2 回答 2

1

ForEach-Object is not needed here, also you can use a hashtable:

$hash=@{
    State=$pcname
    POBox=$bios
    Description=$ip
}

Get-ADuser -Filter "Name -like '$name'"|Set-ADuser @hash
于 2021-03-07T17:45:53.557 回答
1

-like 将与通配符一起使用;如果名称完全匹配:

Set-aduser -identity $name -state $pcname -POBox $bios -Description $ip
于 2021-03-07T19:41:24.770 回答