有人可以告诉我如何重命名活动目录中联系人对象的sn
和givenName
吗?
这是我查询联系人OU中数据的方式:
Get-ADObject -Filter {(ObjectClass -eq "contact") -and (givenName -like "*myName*") } -Properties sn, givenName -SearchBase "OU=contacts,DC=domain,DC=name"
来自Microsoft:
要修改用户的名字,姓氏和其他名称,请使用 Set-ADUser cmdlet
我的目标是修改两个属性的值,因为我的文本都是小写的,我希望使用类似的东西:
$TextInfo = (Get-Culture).TextInfo
$TextInfo.ToTitleCase("one-two three")
Desired Output: One-Two Three
获取每个单词的大写字母。
一些例子会很棒。
如果您知道我所需要的GUI工具,那么请分享。
答案 0 :(得分:2)
要更改联系人AD对象的属性,您需要使用Set-ADOject
Cmdlet和-Replace
参数。 Set-ADUser
仅设置user类型的AD对象的属性。
以下代码将使用联系人对象的full name
,在AD中搜索它,然后将GivenName
,SN
和DisplayName
更改为标题案例。
我添加了DisplayName
,因为当您更改名字和姓氏时,此字段不会自动更新,但如果不需要,您可以删除此部分。
$fullname = "My Name"
$contact = Get-ADObject -Filter {(ObjectClass -eq "contact") -and (Name -like $fullname)} -Properties * -SearchBase "OU=contacts,DC=domain,DC=name"
$TextInfo = (Get-Culture).TextInfo
$GivenNametoTitleCase = $TextInfo.ToTitleCase(($contact.givenName).ToLower())
$SNtoTitleCase = $TextInfo.ToTitleCase(($contact.sn).ToLower())
$DisplayNametoTitleCase = $TextInfo.ToTitleCase(($contact.DisplayName).ToLower())
$contact | Set-ADObject -Replace @{GivenName=$GivenNametoTitleCase;`
sn=$SNtoTitleCase;`
DisplayName=$DisplayNametoTitleCase;}