Потребовалось создать несколько сот пользователей в тестовой среде. Вручную сделать было совсем не вариант так как пользователей более сотни и трудозатраты создать такое количество исчисляются часами. В итоге почитав google на тему “bulk create users active directory powershell” я выполнял задачу скриптом на PowerShell.
Пользователи создаются следующим образом:
- Имеют имена “Demo101…Demo599”
- Имеют предустановленный пароль “Passw0rd!”
- Имеют описание как “demo пользователь”
- Установлена домашняя директория “\\dc01\DemoPF$” подключаемая как диск ” H”(внимание: директория одна для всех!!!)
- Установлен путь профиля “c:\Users\MandatoryUser”
- Пользователям разрешен заход (logon) только на компьютер с именем “terminal”
- При входе в терминальный сервер систему запускается программа с параметрами (‘”C:\Program Files\Microsoft Office\Office15\EXCEL.EXE” X:\excel.xlsx’)
- При входе в терминальный сервер устанавливается рабочая папка “%temp%”
- При входе в терминальный сервер не подключаются диски клиента (ConnectClientDrivesAtLogon”,0)
- При входе в терминальный сервер не подключаются принтера клиента(“ConnectClientPrintersAtLogon”,0)
- При входе в терминальный сервер не подключается основной принтер клиента (“DefaultToMainPrinter”,0)
Сам скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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() } |