Массовое создание пользователей домена Active Directory в тестовой среде

Потребовалось создать несколько сот пользователей в тестовой среде. Вручную сделать было совсем не вариант так как пользователей более сотни и трудозатраты создать такое количество исчисляются часами.  В итоге почитав google на тему «bulk create users active directory powershell» я выполнял задачу скриптом на PowerShell.

Пользователи создаются следующим образом:

  1. Имеют имена «Demo101…Demo599»
  2. Имеют предустановленный пароль «Passw0rd!»
  3. Имеют описание как «demo пользователь»
  4. Установлена домашняя директория «\\dc01\DemoPF$» подключаемая как диск » H»(внимание: директория одна для всех!!!)
  5. Установлен путь профиля «c:\Users\MandatoryUser»
  6. Пользователям разрешен заход (logon) только на компьютер с именем «terminal»
  7. При входе в терминальный сервер систему запускается программа с параметрами (‘»C:\Program Files\Microsoft Office\Office15\EXCEL.EXE» X:\excel.xlsx’)
  8. При входе в терминальный сервер устанавливается рабочая папка «%temp%»
  9. При входе в терминальный сервер не подключаются диски клиента (ConnectClientDrivesAtLogon»,0)
  10. При входе в терминальный сервер не подключаются принтера клиента(«ConnectClientPrintersAtLogon»,0)
  11. При входе в терминальный сервер не подключается основной принтер клиента («DefaultToMainPrinter»,0)

Сам скрипт:

cls
$org = "OU=TestUser,OU=_OU-Users,OU=_OU-Test,DC=newdomain,DC=local"
$username = "Demo"
$count = 101..599
foreach ($i in $count)
{ New-AdUser -Name $username$i -Path $org -Enabled $True -ChangePasswordAtLogon $false -AccountPassword (ConvertTo-SecureString "Passw0rd!" -AsPlainText -force) -passThru 

$user = "$username" + "$i"
$varUPN = $user + '@newdomain.local'
$varName1 = "$username"
$varname2 = "$i"
$varName3 = $varName1 + ' ' + $varname2
Set-ADUser -Identity $user -Replace @{samaccountname=$user}
Set-ADUser -Identity $user -GivenName $varName1 -Surname $varname2 -DisplayName $varName3 -UserPrincipalName $varUPN -Description "demo пользователь"
Set-ADUser -Identity $User -CannotChangePassword $True -PasswordNeverExpires $True
Set-ADUser -Identity $User -HomeDrive "X:" -HomeDirectory "\\dc01\DemoPF$" -ProfilePath "c:\Users\MandatoryUser"
Set-ADUser -Identity $User -LogonWorkstations "terminal" 
$dn  = (Get-ADUser $user).DistinguishedName 
$ext = [ADSI]"LDAP://$dn" 
$ext.PSBase.InvokeSet("TerminalServicesInitialProgram",'"C:\Program Files\Microsoft Office\Office15\EXCEL.EXE" X:\excel.xlsx')
$ext.PSBase.InvokeSet("TerminalServicesWorkDirectory","%temp%")
$ext.PSBase.InvokeSet("ConnectClientDrivesAtLogon",0)
$ext.PSBase.InvokeSet("ConnectClientPrintersAtLogon",0)
$ext.PSBase.InvokeSet("DefaultToMainPrinter",0) 
$ext.SetInfo()
}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *