Set-ADObject - ADLS中的自定义字段更新

时间:2018-01-02 15:55:17

标签: powershell active-directory

所以我知道您可以使用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个这样做,具有不同的值和不同的参数,所以寻找通用。

1 个答案:

答案 0 :(得分:1)

免责声明:我目前还没有可用的环境,我可以测试这些AD CmdLets,因此以下代码不太可能被发现;但希望在代码和评论之间你应该找到自己的方式!

第1步

标识要修改的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" 

第2步

将此身份传递到Set-ADObject CmdLet

Set-ADObject -Identity $adObject -Add @{ont-configvalue=".bob.bob.co.uk"}

这使用-Add参数:

  

指定要添加到对象属性的值。使用此参数可将一个或多个值添加到无法使用cmdlet参数修改的属性

然而,你们中间的观察者无疑会注意到,在这个例子中我们知道 $adObjectont-configvalue的值(我们检查了Get- ...

所以我们更可能想要使用-Replace参数......基本上遵循相同的语法!

Set-ADObject -Identity $adObject -Replace @{ont-configvalue=".bob.bob.co.uk"}