所以我知道您可以使用LDIF执行此操作,但尝试使其与PowerShell脚本保持一致。
我想在此示例中更改的对象是
Get-ADObject -Server 'localhost:389' -Filter {(name -like "name") -and (ObjectClass -eq "ont-configparameter")} -SearchBase 'CN=Bob,O=Bob1' -Properties "ont-configvalue" | Where-Object "ont-configvalue" -eq ".bob.bob.com" | Select-Object Ont-configvalue | Format-Table -Wrap -AutoSize
这会按预期返回值.bob.bob.com
。
但我希望将此ont-configvalue
更改为".bob.bob.co.uk"
,因为我的生活中我可以解决如何让Set-ADObject
这样做。
我有大约20个这样做,具有不同的值和不同的参数,所以寻找通用。
答案 0 :(得分:1)
免责声明:我目前还没有可用的环境,我可以测试这些AD CmdLets,因此以下代码不太可能被发现;但希望在代码和评论之间你应该找到自己的方式!
标识要修改的AD对象
$adObject = Get-ADObject -Server 'localhost:389' -Filter {(name -like "name") -and (ObjectClass -eq "ont-configparameter")} -SearchBase "CN=Bob,O=Bob1" -Properties "ont-configvalue" |
Where-Object "ont-configvalue" -eq ".bob.bob.com"
将此身份传递到Set-ADObject CmdLet
Set-ADObject -Identity $adObject -Add @{ont-configvalue=".bob.bob.co.uk"}
这使用-Add
参数:
指定要添加到对象属性的值。使用此参数可将一个或多个值添加到无法使用cmdlet参数修改的属性
然而,你们中间的观察者无疑会注意到,在这个例子中我们知道 $adObject
有ont-configvalue
的值(我们检查了Get-
...
所以我们更可能想要使用-Replace
参数......基本上遵循相同的语法!
Set-ADObject -Identity $adObject -Replace @{ont-configvalue=".bob.bob.co.uk"}