问题描述
在脚本中,我有一个我要去的部分 - 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 }
问这个我真的很不好意思,但我找不到如何使它成为单衬里?
解决方法
这里不需要 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