Я импортировал более 100 новых почтовых ящиков, используя Import-CSV
и New-Mailbox
и Name
и DisplayName
поля были заполнены правильно, однако, похоже, я пропустил настройку FirstName
и LastName
поля.
В Name
поля имеют формат John Doe
(у каждого импортированного пользователя есть только 1 имя и 1 фамилия, поэтому нет таких пользователей, как John M. Doe
или Le-Ann F. Blah
.
Мне нужно разделить Name
поле и введите первое слово в FirstName
и последнее слово в LastName
. Как я могу это сделать?
Поскольку мы хотим редактировать только тех пользователей, которых вы импортировали ранее, а не всю 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