Я постоянно настраиваю среды для исследований и разработок, требующие учетных записей Active Directory. Поскольку мы помещаем эти среды в изолированные сети, каждой среде нужен собственный активный каталог. Как я могу создать новую учетную запись Active Directory с помощью PowerShell.
Я не уверен, ищете ли вы сценарий, который будет принимать список имен, паролей и т. Д., Но следующая команда работает для создания одного нового пользователя. UserPrincipalName не является обязательным. В этом случае электронная почта не используется.
New-ADUser -SamAccountName nnn2 -Name "nnn2" -UserPrincipalName nnn2@jj -AccountPassword (ConvertTo-SecureString -AsPlainText "somePassword" -Force) -Enabled $true -PasswordNeverExpires $true -Path 'CN=Users,DC=jjdomain,DC=net'
Если вы хотите создать пользователя в доверенном домене, добавьте -сервер dns.domain к вышеуказанной команде
Я бы порекомендовал изучить командлеты Quest AD:
http://www.quest.com/powershell/activeroles-server.aspx
Новым пользователем AD будет:
new-QADUser -name 'user1' -ParentContainer 'OU=companyOU,DC=company,DC=com' -samAccountName 'user1' -UserPassword 'P@ssword'
Однако для «чистого» Powershell предложение Шэя сценариев Idera избавило бы вас от необходимости использования дополнительных командлетов. Имейте в виду, что если вы собираетесь загрузить скрипты, вы также можете загрузить командлеты Quest.
Я взял ответ Брэда выше и добавил немного подробностей ниже (спасибо Брэду за то, что он заставил меня задуматься в этом направлении):
Входной файл CSV:
cn,givenname,sn,sAMAccountName,displayname,UserPrincipalName
Joe Smith,Joe,Smith,jsmith,Joe Smith,jsmith@domain.com
Susan Johnson,Susan,Johnson,sjohnson,Susan Johnson,sjohnson@domain.com
Код:
$inputFile = Import-CSV <insert filepath here>
foreach($line in $inputFile)
{
## need to add quotes around DSN
$dsn = "`"cn="+$line.cn+",ou=userou,dc=domain,dc=com`""
$samid = $line.sAMAccountName
$ln = $line.sn
$fn = $line.givenname
$dn = $line.displayname
## need to add quotes around display name
$dn2 = "`"$dn`""
$upn = $line.UserPrincipalName
cmd /c "dsadd user $dsn -samid $samid -ln $ln -fn $fn -display $dn2
-upn $upn -mustchpwd yes -pwd TempP@assw0rd"
write-host `n
}
Удачи!
если вы просто настраиваете одних и тех же пользователей в разных сетях / доменах, вам подойдет простой старый файл .cmd. Просто позвоните в dsadd команда для каждого пользователя.
вызов dsadd или dsmod также будет работать в середине сценария PowerShell. у вас даже может быть CSV-файл с именами пользователей и паролями, который вы можете импортировать с помощью сценария PowerShell и прокручивать каждую строку с помощью вызова dsadd или dsmod следующим образом:
$inputFile = Import-CSV <insert filepath here>
foreach($line in $inputFile)
{
dsadd user -samid $line.Username -pwd $line.Password
}
Команды ds (dsadd, dsmod и т. Д.) Устанавливаются с ролью активного каталога, поэтому они доступны после того, как у вас будет запущена AD.