PowerShell - Скрипт для добавления пользователей в AD

Ответить
Аватара пользователя
Nord18

PowerShell - Скрипт для добавления пользователей в AD

Сообщение Nord18 »

Доброго времени суток, уважаемые форумчане!



Написал скрипт для добавления пользователей в 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-файл поле с контейнером так же не ясно...
Аватара пользователя
Kazun

Re: PowerShell - Скрипт для добавления пользователей в AD

Сообщение Kazun »

1) полное название страны, отчество сотрудника - Использовать параметр OtherAttributes

-OtherAttributes @{'msDS-PhoneticDisplayName'="GlenJohn"}



2) В чем проблема указать несколько групп? Разделитель ; в csv файле для перечисления групп или заключить поле в двойные кавычки .





Код:

Код: Выделить всё

Import-CSV -Path "D:\scripts\UserAddGpoup.csv"| ForEach-Object {
	$grs = $_.Group.split(";")
	$sam = $_.SamAccountName
	foreach($gr in $grs) {
		Add-ADGroupMember -Identity $gr -Members $sam
	}
}

PS. Необязательно использовать запятую в csv,можно скажем использовать ; и указать Import-CSV -Delimiter ";" и не возникнет проблем с указанием контейнера если там есть запятая.
Аватара пользователя
smol84

Re: PowerShell - Скрипт для добавления пользователей в AD

Сообщение smol84 »

Вот скрипт который позволяет добавлять пользователей в режиме реального времени без файла

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()



как добавить группы самого интересует

может быть данный скрипт будет полозен
Аватара пользователя
smol84

Re: PowerShell - Скрипт для добавления пользователей в AD

Сообщение smol84 »

Если нужно могу выложить VBS скрипт такого же плана только с функцией перевода логина в латиницу состоящим из имя.фамилия
Аватара пользователя
smol84

Re: PowerShell - Скрипт для добавления пользователей в AD

Сообщение smol84 »

Цитата Kazun:



2) В чем проблема указать несколько групп? Разделитель ; в csv файле для перечисления групп или заключить поле в двойные кавычки .





Код:

Код: Выделить всё

Import-CSV -Path "D:\scripts\UserAddGpoup.csv"| ForEach-Object {
	$grs = $_.Group.split(";")
	$sam = $_.SamAccountName
	foreach($gr in $grs) {
 Add-ADGroupMember -Identity $gr -Members $sam
	}
}









Спасибо тебе добрый человек за полезнейший скрипт. Но из-за отсутствия знаний PowerShell намучился с файлом *.csv (Тупил с заголовком)

Посему добавлю формат записи *.csv файла:





Код:

Код: Выделить всё

SamAccountName,Group
User0,GG_test1;GG_test2;GG_test3
User1,GG_test1
User2,GG_test2
Ответить

Вернуться в «Скриптовые языки администрирования Windows»