Показать полную графическую версию : скрипт заполнения поля e-mail учетных записей AD, используя user logon name
Vovanesko
06-06-2014, 10:33
Необходим такой скрипт:
Для каждого пользователя Active Directory (включая вложенные OU) провести проверку на заполнение поля e-mail.
Если в этом поле уже есть хоть один символ, то пропускаем.
Иначе надо заполнить это поле по следующему принципу:
берем значение "user logon name" текущего пользователя и конкатенируем без пробела с константой "@mail.ru"
Большое спасибо всем откликнувшимся!
Get-ADUser -Filter {Enabled -eq $true -and -not (mail -like '*')} | Foreach {Set-ADUser $_ -EmailAddress "$($_.samaccountname)@mail.ru"}
Vovanesko
10-06-2014, 15:37
Спасибо!
Знание - сила!
dinovasya@vk
14-07-2014, 18:35
не сработало. На контроллере домена создал файл ADfillemails.vbs , вставил в него эту строку.. ничего не произошло..
Windows PowerShell
(C) Корпорация Майкрософт, 2009. Все права защищены.
PS F:\Users\Администратор.IPIP> Get-ADUser -Filter {Enabled -eq $true -and -not (mail -like '*')} | Foreach {Set-ADUser
$_ -EmailAddress "$($_.samaccountname)@kamastretch.com"}
Имя "Get-ADUser" не распознано как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте правильн
ость написания имени, а также наличие и правильность пути, после чего повторите попытку.
строка:1 знак:11
+ Get-ADUser <<<< -Filter {Enabled -eq $true -and -not (mail -like '*')} | Foreach {Set-ADUser $_ -EmailAddress "$($_.
samaccountname)@kamastretch.com"}
+ CategoryInfo : ObjectNotFound: (Get-ADUser:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
PS F:\Users\Администратор.IPIP>
Имя "Get-ADUser" не распознано как имя командлета, функции, файла скрипта или выполняемой программы. - Поиск в Google (https://www.google.ru/search?q=%D0%98%D0%BC%D1%8F+%22Get-ADUser%22+%D0%BD%D0%B5+%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D0%BD%D0%BE+%D0%BA%D0%B0%D0% BA+%D0%B8%D0%BC%D1%8F+%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BB%D0%B5%D1%82%D0%B0%2C+%D1%84%D1%83%D 0%BD%D0%BA%D1%86%D0%B8%D0%B8%2C+%D1%84%D0%B0%D0%B9%D0%BB%D0%B0+%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82% D0%B0+%D0%B8%D0%BB%D0%B8+%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D0%B5%D0%BC%D0%BE%D0%B9+%D0%BF%D 1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B.):
Import-Module ActiveDirectory
dinovasya@vk
15-07-2014, 19:10
Отличная работа!
Так как я люблю готовые решения в сети находить то и тут складу все в кучу, чтоб другие пришли сюда из гугла и нашли готовые строки и много читать не пришлось..:
Итак, идем в powershell
вставляем это:
Import-Module ActiveDirectory
Get-ADUser -Filter {Enabled -eq $true -and -not (mail -like '*')} | Foreach {Set-ADUser $_ -EmailAddress "$($_.samaccountname)@mail.ru"}
Mail.ru заменяем на другое если нужно.
Всё. Проверил- все поля email корректно заполнены логинами пользователей +@domen.ru
dinovasya@vk
22-07-2014, 23:30
Как таким же образом заполнить пути к профилю, чтоб автоматически создались папки профилей.. чтоб у каждого появился путь к профилю с именем его логина?
Automatic creation of user folders for home, roaming profile and redirected folders. - http://blogs.technet.com/b/askds/archive/2008/06/30/automatic-creation-of-user-folders-for-home-roaming-profile-and-redirected-folders.aspx
yurvasya
12-05-2021, 14:49
Спасибо, а как сделать тоже самое, но только для каждого подразделения? Не во всём каталоге. У меня в одном подразделении почты @yandex.ru а в другой @mail.ru.
Get-ADUser -Filter {Enabled -eq $true -and -not (mail -like '*') -SearchBase "OU=users,OU=mailru,DC=doma,DC=in"
DJ Mogarych
12-05-2021, 16:14
Или так:
Get-ADUser -Filter "Enabled -eq 'true' -and mail -notlike '*'" -SearchBase "OU=users,OU=mailru,DC=doma,DC=in"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.