仍在学习Powershell for AD,我有一个问题困扰着我。必须在特定位置更改AD中多个用户的AD属性,例如,我们在同一OU中有来自柏林和华盛顿的人,每个配置文件中都设置了城市,但我想知道在更改像这样的位置的地址之前,我是否也需要获取属性
Get-ADUser -filter 'City -like "Berlin"' -SearchBase 'OU=Users,OU=Staff,DC=Contoso,DC=com' -Properties StreetAddress, PostalCode | % {Set-ADUser $_ -Replace @{StreetAddress="New street 11";PostalCode="221202XX"}}
或者它是否也可以在不做任何操作的情况下工作-属性和仅管道过滤城市结果以设置ADUser
谢谢。
您不需要指定-Properties
,除非您想在输出中看到它们。您也不需要foreach,只需管道连接到Set-ADUser
就足够了。
Get-ADUser -filter 'City -like "Berlin"' -SearchBase 'OU=Users,OU=Staff,DC=Contoso,DC=com' |
Set-ADUser $_ -Replace @{StreetAddress="New street 11";PostalCode="221202XX"}
这将很好地更新这些值。过滤也是如此。以下命令将在postalcode上进行过滤,但除非添加-Properties postalcode
,否则它不会包含在输出中
Get-ADUser -Filter "PostalCode -eq '221202XX'"
谢谢你的回答,我遗漏了-属性,这似乎很好,也尝试过,但如果没有foreach,这将不起作用,因为我想Set ADUser不知道哪些用户需要更新。所以我不得不使用
Get-ADUser -filter 'City -like "Berlin"' -SearchBase 'OU=Users,OU=Staff,DC=Contoso,DC=com' | % {Set-ADUser $_ -Replace @{StreetAddress="New street 11";PostalCode="221202XX"}}
而如果我在没有foreach 的情况下使用
Get-ADUser -filter 'City -like "Berlin"' -SearchBase 'OU=Users,OU=Staff,DC=Contoso,DC=com' | Set-ADUser $_ -Replace @{StreetAddress="New street 11";PostalCode="221202XX"}
我得到错误
Set ADUser:无法验证参数"Identity"的参数。参数为null。为提供有效值参数,然后尝试再次运行该命令。
但无论如何,似乎没有-属性也可以,这是我主要关心的