Import-CSV
我使用和导入了 100 多个新邮箱,New-Mailbox
并且Name
和DisplayName
字段已正确填充,但似乎我忘记设置FirstName
和LastName
字段了。
字段Name
的格式为John Doe
(每个导入的用户只有 1 个名字和 1 个姓氏,因此没有像John M. Doe
或 这样的用户Le-Ann F. Blah
。
我需要拆分Name
字段并将第一个单词放入 to 中FirstName
,将最后一个单词放入 to 中LastName
。我该怎么做?
答案1
因为我们只想编辑您之前导入的相同用户,而不是整个 AD,所以我将使用您最初使用的相同 CSV 文件。此外,由于您没有提供 CSV 文件的示例副本,因此我假设您其中有 SamAccountName 属性。这应该适合您。
我添加了 -WhatIf 参数,以便您可以仔细检查结果。当您准备运行时,只需将其删除即可。
$CSVfile = Import-Csv C:\file.csv
Foreach ($item in $CSVfile) {
#Find the user account. Maybe redundant but it's the proper input to the Identity param
$user = Get-ADUser -Identity ($item.SamAccountName) -Properties DisplayName,GivenName,Surname,UserPrincipalName
#Split DisplayName
$GivenName,$Surname = $user.DisplayName.split(' ',2)
#Set GivenName and Surname
Set-ADUser -Identity $user -GivenName $GivenName -Surname $Surname -WhatIf
}
此外,以后在问这么宽泛的问题之前,请先做更多研究。我知道这个问题以前也问过。例如: https://social.technet.microsoft.com/Forums/en-US/c532589b-dbe1-47a2-96e1-f174348c14e0/setaduser-to-modify-givenname-and-surname-attributes-based-upon-displayname-in-powershell?forum=winserverpowershell