|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Скрипт для добавления пользователей в AD |
|
PowerShell - Скрипт для добавления пользователей в AD
|
Пользователь Сообщения: 72 |
Профиль | Отправить PM | Цитировать
Доброго времени суток, уважаемые форумчане!
Написал скрипт для добавления пользователей в AD с помощью импорта из CSV-файла. Скрипт полностью жизнеспособный, но не могу понять как допилить его чтобы еще пользователи добавлялись в Группы безопасности. Так же не очень понятно как добавить скриптом некоторые атрибуты учетной записи (например полное название страны, отчество сотрудника). Параметр добавления кода страны указал в скрипте, возможно ли добавить параметр в CSV-файл? Тот же вопрос и с контейнером, в который добавляются пользователи (указан в скрипте). Import-CSV -Path "D:\Scripts\CreateNewUsersAD.csv"|ForEach-Object -process {New-ADUser -Name $_.Name -SamAccountName $_.SamAccountName -UserPrincipalName $_.UserPrincipalName -AccountPassword $_.Password -GivenName $_.GivenName -Surname $_.Surname -DisplayName $_.DisplayName -Company $_.Company -Department $_.Department -Title $_.Title -OfficePhone $_.OfficePhone -MobilePhone $_.MobilePhone -State $_.State -City $_.City -Country "RU" -StreetAddress $_.StreetAddress -PostalCode $_.PostalCode -CannotChangePassword $false -ChangePasswordAtLogon $false -PasswordNotRequired $true -Enabled $true -Path "ou=Users_Test,dc=domain,dc=ru"} В одну группу безопасности пользователей добавил запуском второго скрипта: Import-CSV -Path "D:\scripts\UserAddGpoup.csv"|ForEach-Object -process{Add-ADGroupMember -Identity $_.Group-Members $_.SamAccountName} Код страны добавил соответствующим столбцом Country и значением RU. Как добавить в CSV-файл поле с контейнером так же не ясно... |
|
Отправлено: 13:45, 02-08-2014 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать 1) полное название страны, отчество сотрудника - Использовать параметр OtherAttributes
-OtherAttributes @{'msDS-PhoneticDisplayName'="GlenJohn"} 2) В чем проблема указать несколько групп? Разделитель ; в csv файле для перечисления групп или заключить поле в двойные кавычки . PS. Необязательно использовать запятую в csv,можно скажем использовать ; и указать Import-CSV -Delimiter ";" и не возникнет проблем с указанием контейнера если там есть запятая. |
Последний раз редактировалось Kazun, 03-08-2014 в 23:26. Отправлено: 23:15, 03-08-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Вот скрипт который позволяет добавлять пользователей в режиме реального времени без файла
Write-Host “Welcome to corp” # Set Variables from User Input $FirstName = Read-Host “Введите Имя” $LastName = Read-Host “Введите фамилию” $ThirdName = Read-Host "Введите отчество" $Login = Read-Host "Введите Login" $domain = "corp.int" $maildomain = "@corp.int" $DisplayName = ($LastName + " " + $FirstName +" "+ $ThirdName) $Title = Read-Host “Enter Empolyee’s Title” $Department = Read-Host “Enter Employee’s Department” $IPPhone = Read-Host “Enter Employee’s IPPhone Number” $CN = (“CN=” + $LastName + ” ” + $FirstName + " "+ $ThirdName) $mail = ($Login+ "" + $maildomain) $user = ($Login+ "@" + $domain) $Class = “User” $strUserName = $CN #connect to AD and create user $objADSI = [ADSI]“LDAP://OU=Users,DC=corp,DC=int” $objUser = $objADSI.Create($Class, $strUserName) $objUser.Put(“sAMAccountName”, $FirstName) # Commit the object in AD $objUser.setInfo() #Set General Tab Properties #Bind to the user Object $objADSI = [ADSI]“LDAP://$CN,OU=User,DC=corp,DC=int” $objUser.Put(“userPrincipalName”, “$firstName”) $objUser.Put(“givenName”, “$User”) $objUser.Put(“SN”, “$LastName”) $objUser.Put(“DisplayName”, “$DisplayName”) $objUser.Put(“sAMAccountName”, “$Login”) $objUser.Put(“Title”, “$Title”) $objUser.Put(“Department”, “$department”) $objUser.Put(“IPphone”, “$IPphone”) $objUser.Put(“mail”, “$mail”) $objUser.Put(“l”, “город”) $objUser.Put(“streetAddress”, “улица”) $objUser.Put(“company”, “ООО ""название"”") $objUser.Put(“telephoneNumber”, “+7 .....”) #set UserAccessControl $objUser.put(“userAccountControl”, 544) #Commit changes $objUser.setInfo() как добавить группы самого интересует может быть данный скрипт будет полозен |
Отправлено: 15:17, 04-08-2014 | #3 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Если нужно могу выложить VBS скрипт такого же плана только с функцией перевода логина в латиницу состоящим из имя.фамилия
|
Отправлено: 16:21, 04-08-2014 | #4 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата Kazun:
Спасибо тебе добрый человек за полезнейший скрипт. Но из-за отсутствия знаний PowerShell намучился с файлом *.csv (Тупил с заголовком) Посему добавлю формат записи *.csv файла: |
||
Отправлено: 15:52, 10-03-2016 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2008 R2 - Скрипт для перемещения пачки пользователей в AD | diga | Скриптовые языки администрирования Windows | 19 | 24-01-2012 10:40 | |
VBS/WSH/JS - HELP!. Не работает скрипт заведения пользователей в AD | userovich2 | Скриптовые языки администрирования Windows | 3 | 24-10-2010 23:17 | |
Любой язык - [решено] Нужен скрипт cmd,vbs,PowerShell для проверки списка пользователей и их удаление из AD | alex_frog | Скриптовые языки администрирования Windows | 6 | 22-07-2009 18:41 | |
Скрипт для проверки списка пользователей и их удаление из AD | alex_frog | Microsoft Windows NT/2000/2003 | 0 | 22-07-2009 13:16 | |
CuteNews - скрипт для добавления новостей. | ran71me3rr0r | Вебмастеру | 5 | 11-07-2004 10:16 |
|