Лучший отвечающий
задача по заполнению учетки

Вопрос
-
Не поможете решить три задачи в AD на posh или active role
1)Для пользователей в определенном контейнере Взять значение поля e-mail до @ и подставить в поле sam account name(или в upn до суффикса)
Сейчас по-русски sam account name, хочу по сделать по англицки
2)взять числовое значение в поле fax и скопировать в поле, например, почтовый индекс
3) заполнить в поле , например, область,край, определенное значение
Особо интересует, первая и вторая задача
Буду крайне признателен31 марта 2018 г. 9:09
Ответы
-
1)Для пользователей в определенном контейнере Взять значение поля e-mail до @ и подставить в поле sam account name
Get-ADUser -Filter "mail -like '*'" -SearchBase "OU=MyUsers,DC=contoso,DC=ru" -Properties mail | Foreach { Set-ADUser $_ -SamAccountName $_.mail.split("@")[0] }
2)взять числовое значение в поле fax и скопировать в поле, например, почтовый индекс
Get-ADUser -filter "facsimileTelephoneNumber -like '*'" -Properties facsimileTelephoneNumber | Foreach { Set-ADUser $_ -PostalCode $_.facsimileTelephoneNumber }
3) заполнить в поле , например, область,край, определенное значение
Set-ADUser myuser -State "область,край"
- Предложено в качестве ответа Alexander RusinovModerator 31 марта 2018 г. 12:18
- Помечено в качестве ответа Vector BCOModerator 31 марта 2018 г. 19:48
31 марта 2018 г. 11:14Отвечающий -
для borisovea
$sam = $_.mail.split("@")[0].Trim().replace("_","")
для eaborisov
$sam = $_.mail.split("@")[0].Trim().split("_")[-2,-1,0] -join ""
Set-ADUser $_ -SamAccountName $sam
- Предложено в качестве ответа Vector BCOModerator 31 марта 2018 г. 19:47
- Помечено в качестве ответа Vector BCOModerator 31 марта 2018 г. 19:47
31 марта 2018 г. 14:32Отвечающий
Все ответы
-
1)Для пользователей в определенном контейнере Взять значение поля e-mail до @ и подставить в поле sam account name
Get-ADUser -Filter "mail -like '*'" -SearchBase "OU=MyUsers,DC=contoso,DC=ru" -Properties mail | Foreach { Set-ADUser $_ -SamAccountName $_.mail.split("@")[0] }
2)взять числовое значение в поле fax и скопировать в поле, например, почтовый индекс
Get-ADUser -filter "facsimileTelephoneNumber -like '*'" -Properties facsimileTelephoneNumber | Foreach { Set-ADUser $_ -PostalCode $_.facsimileTelephoneNumber }
3) заполнить в поле , например, область,край, определенное значение
Set-ADUser myuser -State "область,край"
- Предложено в качестве ответа Alexander RusinovModerator 31 марта 2018 г. 12:18
- Помечено в качестве ответа Vector BCOModerator 31 марта 2018 г. 19:48
31 марта 2018 г. 11:14Отвечающий -
Огромное спасибо! Скажите, а в задачах два и три также фильтровать по OU с помощью конструкции
-SearchBase "OU=MyUsers,DC=contoso,DC=ru"
31 марта 2018 г. 12:31 -
Да, подход не меняется. Справку можно посмотреть - Get-Help Get-ADUser -Full
31 марта 2018 г. 13:21Отвечающий -
Сейчас смотрю. Немного непонятно, как еще сделать такое
Допустим, в первой задаче в поле email указаны почтовые адреса в формате
borisov_e_a@lg.com вот этот скрипт проставит borisov_e_a в поле SamAccount Name
Get-ADUser -Filter "mail -like '*'" -SearchBase "OU=MyUsers,DC=contoso,DC=ru" -Properties mail | Foreach { Set-ADUser $_ -SamAccountName $_.mail.split("@")[0]
А если надо убрать пробелы, т.е проставить в SAM account name в таком виде borisovea или eaborisov
Можно как-то в posh просто убрать подчеркивания? (и два последних сивола переставить в начало, но хотя бы пробелы убрать) ?
31 марта 2018 г. 14:16 -
для borisovea
$sam = $_.mail.split("@")[0].Trim().replace("_","")
для eaborisov
$sam = $_.mail.split("@")[0].Trim().split("_")[-2,-1,0] -join ""
Set-ADUser $_ -SamAccountName $sam
- Предложено в качестве ответа Vector BCOModerator 31 марта 2018 г. 19:47
- Помечено в качестве ответа Vector BCOModerator 31 марта 2018 г. 19:47
31 марта 2018 г. 14:32Отвечающий -
круто, спасибо. Буду тренироваться
31 марта 2018 г. 15:11 -
Я понимаю, что несколько поднадоел, но все же
Вот так отлично работает
Для пользователей в определенном контейнере Взять значение поля e-mail до @ и подставить в поле sam account name
Get-ADUser -Filter "mail -like '*'" -SearchBase "OU=MyUsers,DC=contoso,DC=ru" -Properties mail | Foreach { Set-ADUser $_ -SamAccountName $_.mail.split("@")[0] }
А вот если меняю, задачу. Допустим у человека почта borisov_e_a@firma1.com, а я не в поле sAMAccountName хочу ему подставить borisov_e_a, а в поле UserPrincipalName
А UPN у него от почтового отличается upn borisov_e_a@firma1.lg.com, а почта borisov_e_a@firma1.com
К примеру, код
Get-ADUser -Filter "mail -like '*'" -SearchBase "OU=MyUsers,DC=contoso,DC=ru" -Properties mail | Foreach {
Set-ADUser $_ -UserPrincialName $_.mail.split("@")[0]
}"срезает" все после собаки, и надо руками выбирать доменный компонент из списка. А как правильно указать, чтобы оставлял в UPN firma1.lg.com
2 апреля 2018 г. 12:20