none
Как работать с обьектами AD из PowerShell? RRS feed

  • Вопрос

  • Добрый день

    Если кто разобрался как создавть из PS учетные записи пользователей в AD, проставлять атрибуты (департамент, организация и пр), задавать пароли - поделитесь примером скрипта.

    Мне нужно сделать bulk вставку в AD несколько сотен учетных записей и создать для них почтовые ящики в Ex2007.

    Ранее делал похожее на VBScript для Ex2003 через CDEX.

    16 марта 2007 г. 11:04

Ответы

Все ответы

  • $objOU = [ADSI]"LDAP://localhost:389/ou=HR,dc=NA,dc=fabrikam,dc=com"

    $objUser = $objOU.Create("user", "cn=MyerKen")

    $objUser.Put("sAMAccountName", "myerken")

    $objUser.SetInfo()

    Это отсюда - http://blogs.msdn.com/arulk/archive/2006/07/25/678137.aspx

    http://thepowershellguy.com/blogs/posh/archive/tags/Active+Directory/default.aspx - тут еще куча примеров по PoSH+AD.

    Кстати начиная с win 2003 появился набор команд ds*.exe, в том числе dsadd, dsmod. Так что можно и из .cmd такие вещи делать. Впрочем и из повершелла эти же утилиты не менее удобно использовать.

    16 марта 2007 г. 12:07
    Модератор
  •  AndreyGupalo написано:

    Добрый день

    Если кто разобрался как создавть из PS учетные записи пользователей в AD, проставлять атрибуты (департамент, организация и пр), задавать пароли - поделитесь примером скрипта.

    Мне нужно сделать bulk вставку в AD несколько сотен учетных записей и создать для них почтовые ящики в Ex2007.

    Ранее делал похожее на VBScript для Ex2003 через CDEX.

    Теперь это делается при помощи cmdlet New-Mailbox в Exchange Managment Shell:
    http://technet.microsoft.com/en-us/library/aa997663.aspx

    И cmdlet Set-User
    http://technet.microsoft.com/en-us/library/aa998221.aspx

    А поверх навешиваете Import-Csv
    http://www.microsoft.com/technet/scriptcenter/topics/msh/cmdlets/import-csv.mspx

    И ForEach-Object
    http://www.microsoft.com/technet/scriptcenter/topics/msh/cmdlets/foreach-object.mspx

    Получаем что-то типа:
    $password = Read-Host "Enter password" -AsSecureString
    Import-Csv c:\users.txt | ForEach-Object {New-mailbox -UserPrincipalName $_.UserPrincipalName -alias $_.alias -database $_.database -Name $_.Name -OrganizationalUnit $_.OrganizationalUnit -password $password -FirstName $_.FirstName -LastName $_.LastName -DisplayName $_.DisplayName -ResetPasswordOnNextLogon $true}

    16 марта 2007 г. 12:22
  • С эксчем 2к7 пока не работал - про set-user не знал :) Странно только то что они не сделали его доступным в стандартном наборе PoSH...

    16 марта 2007 г. 12:38
    Модератор
  • Cпасибо.

    По ходу возник вопрос по работе сmdlet-а Import-Csv.

    Заметил, если строки файла CSV содержат английские символы или цифры, то все работает как надо. Если попадается значение набранное кириллицей, то парсер возвращает пустую строку. Как  с этим бороться?
    Например, хотелось бы создавать СN учетной записи пользователя на русском языке.

    Разобрался. Excel видимо экспортирует  СSV записи в ASCII формате. Конвертнул содержимое CSV файла в Unicode  и все заработало.

    get-content -Path users.csv | out-file outfile.csv -encoding unicode

     

    19 марта 2007 г. 13:00
  • Попробуйте CSV файл из Notepad сохранить в Unicode.
    19 марта 2007 г. 13:19