Массовое создание пользователей на MS Server 2008 R2
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 5 из 5

Комбинированный просмотр

  1. #1
    Morzil
    Гость

    По умолчанию

    А метод наследования прав, чем вас не устраивает?

  2. #2
    Пришел за помощью

    Регистрация
    27.11.2009
    Адрес
    Deutschland
    Сообщений
    15
    Сказал(а) спасибо
    0
    Поблагодарили 1 раз в 1 сообщении

    По умолчанию

    Все устраивает. Просто надо вбить около 1000 пользователей с профилями итд.

  3. #3
    Гость форума

    Регистрация
    13.01.2010
    Сообщений
    4
    Сказал(а) спасибо
    0
    Поблагодарили 1 раз в 1 сообщении

    Wink Создание множества пользователей на основе таблицы Excel

    Наконец-то я разобрался с этой проблемой:)
    Так что готов поделиться результатом:D

    В общем задача состоит из двух частей:
    1. получение значения ячеек в excel
    2. добавление пользователя в AD

    все эти задачи я решил с помощью powerShell (про него есть хорошая базовая бесплатная книжка http://blogs.technet.com/abeshkov/ar...4/3172943.aspx)

    И так, приступим к решению задач
    1.
    $xl = new-object -com Excel.Application
    $wbk="filename";
    $xl.Workbooks.open($wbk) | out-null #drop the object info output

    В этих строчках мы открываем екселевский документ с именем filename

    доступ к конкретной ячейке осуществляется следующим способом:
    $xl.Cells.Item(2,3).Value()
    или
    $xl.Cells.Item($i,3).Value(), где $i - переменная

    Я проверяю, что в ячейке ничего не содержится с помощью условия:
    ($xl.Cells.Item($i,3).Value() -match ".+") (Прочитав базовую тут всё будт понятно)

    В конце работы с книгой её нужно закрыть

    $xl.Workbooks.Close()

    2. создать пользователя в АД

    $objDomain = New-Object System.DirectoryServices.DirectoryEntry
    $objUser = $objDomain.Create("user", "CN=" + $UserDisplayName+",CN=Users")

    Изначально нужно задать значение переменно $UserDisplayName
    Теперь, как присвоить значение полям у пользователя:

    $objUser.Put("givenName",$UserFirstName)
    "givenName" - имя пользователя (не логин!)
    все названия атрибутов пользователя можно посмотреть в свойствах любого пользователя в АД в части Exstensions во вкладке Attribute Editor.

    Приведу самые полезные атрибуты
    $objUser.Put("initials",$UserMiddleInit)
    $objUser.Put("homeDirectory",$homeDir)
    $objUser.Put("profilePath",$profilePath)
    $objUser.Put("sn",$UserLastName)
    $objUser.Put("sAMAccountName",$UserLoginID)
    $objUser.Put("displayName",$UserDisplayName)
    $objUser.Put("userPrincipalName",$UserPrincipalNam e)

    после задания всех атрибутов:

    $objUser.SetInfo() - установить значения атрибутов
    $objUser.AccountDisabled = $false -активировать аккаунт
    $objUser.SetPassword("") - установать пароль
    $objUser.SetInfo()

    Вот в программной реализации и всё.

    Теперь как добавить пользователей в группу, и заставить их сменить пароль после первого входа в систему. Для этого выделяем вновь созданных пользователей в АД нажимаем Add to Group и выбираем соответствующую группу. Далее опять выделяем всех пользователей и нажимаем Properties и ставим активным переключатель User must change password at next log on.

    Вот и всё, теперь создание множества пользователей не проблема.

    И напоследок приведу исходный код:
    $xl = new-object -com Excel.Application
    $wbk="c:\tmp\09bimag.xls";
    $xl.Workbooks.open($wbk) | out-null #drop the object info output
    $i=2;
    $group="09BI_MAG"
    do
    {
    $name=$xl.Cells.Item($i,3).Value()
    $initial=$xl.Cells.Item($i,4).Value()
    $second=$xl.Cells.Item($i,5).Value()
    $user=$xl.Cells.Item($i,6).Value()
    $profilePath="\\neptune\winProfiles\"+$user
    $homeDir="\\neptune\winProfiles\"+$group
    $domainName="bim.hse.nnov.ru"
    $i++
    $UserFirstName = $name #givenName (i.e. First Name)
    $UserMiddleInit = $initial #initials (i.e. Middel Initial)
    $UserLastName = $second #sn or SurName (i.e. Last Name)
    $UserLoginID = $user #sAMAccountName; Pre-Windows 2000 login ID
    $UserPrincipalName = $user #secondary login ID or Active Directory Login ID
    $UserPrincipalName = $UserPrincipalName + "@" + $domainName #append your domain name here

    If ($UserMiddleInit -ne "")
    {
    $UserDisplayName = $UserFirstName + " " + $UserMiddleInit + ". " + $UserLastName #DisplayName & CN Name
    }
    else
    {
    $UserDisplayName = $UserFirstName + " " + $UserLastName #DisplayName & CN Name
    }
    $objDomain = New-Object System.DirectoryServices.DirectoryEntry
    $objUser = $objDomain.Create("user", "CN=" + $UserDisplayName+",CN=Users") #This creates a local object for you to update
    $objUser.Put("givenName",$UserFirstName)
    $objUser.Put("initials",$UserMiddleInit)
    $objUser.Put("homeDirectory",$homeDir)
    $objUser.Put("profilePath",$profilePath)
    $objUser.Put("sn",$UserLastName)
    $objUser.Put("sAMAccountName",$UserLoginID)
    $objUser.Put("displayName",$UserDisplayName)
    $objUser.Put("userPrincipalName",$UserPrincipalNam e)
    $objUser.SetInfo() #This will create the User ID on the domain, disabled. This is required for you to set a password or enable the ID.
    $objUser.AccountDisabled = $false #By default the User ID is disabled and must be enabled to use.
    $objUser.SetPassword("") #Set this password to anything you need it to be
    $objUser.SetInfo()
    }
    while ($xl.Cells.Item($i,3).Value() -match ".+")
    $xl.Workbooks.Close()

  4. Пользователь сказал cпасибо:

    artcont (01.09.2011)

Похожие темы

  1. Для Windows server 2008 r2 (Украшенства, активация)
    от evgeny2009 в разделе Операционные системы
    Ответов: 2
    Последнее сообщение: 07.11.2010, 18:07
  2. Антивирус на Windows Server 2008
    от Cross в разделе СОФТ (SOFT)
    Ответов: 4
    Последнее сообщение: 29.01.2010, 07:13
  3. Хранение профилей пользователей на MS Server 2008 R2
    от EAndreyF в разделе В помощь системному администратору
    Ответов: 3
    Последнее сообщение: 25.01.2010, 13:51
  4. VirtualBox на MS Server 2003
    от Александр7 в разделе В помощь системному администратору
    Ответов: 4
    Последнее сообщение: 19.11.2009, 22:55
  5. Terminal Server на Server 2008
    от hipjitikara в разделе В помощь системному администратору
    Ответов: 1
    Последнее сообщение: 30.09.2009, 08:39

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •