我尝试使用以下命令复制特定OU中每个用户的广告属性:
Get-ADUser -SearchBase "OU=My,OU=OUnit,DC=Domain,DC=local" -Filter * -Properties extensionAttribute14, physicalDeliveryOfficeName | Set-ADUser -Replace @{street=$($_.extensionAttribute14);l=$($_.physicalDeliveryOfficeName -replace '^\d+\s+');postalCode=$($_.physicalDeliveryOfficeName -replace '[a-zA-Z\s]+')}
但是我得到了一条错误信息:
Set ADUser:无法将参数“Replace”绑定到目标。异常设置“Replace”:“对象引用未设置为 对象的实例。”
我还试着用管道连接到:
ForEach-Object {Set-ADObject -Identity $_.DistinguishedName -Replace @{...}}
但我也收到了同样的错误信息。
在看到你的评论后,我自己尝试了一下,并且能够复制这个问题。(但除了您描述的,它也不适用于单个用户)。
这是我为一个和多个用户设计的:
Get-ADUser -SearchBase "OU=My,OU=OUnit,DC=Domain,DC=local" -Filter * -Properties extensionAttribute14, physicalDeliveryOfficeName | % { Set-ADUser $_ -Replace @{street=$($_.extensionAttribute14);l=$($_.physicalDeliveryOfficeName -replace '^\d+\s+');postalCode=$($_.physicalDeliveryOfficeName -replace '[a-zA-Z\s]+')} }