Как создать учетную запись пользователя Active Directory с powershell

19

Я постоянно настраиваю среды исследований и разработок, которые требуют активных учетных записей каталогов. Поскольку мы размещаем эти среды в изолированных сетях, каждая среда нуждается в своем собственном активном каталоге. Как я могу создать новую учетную запись активного каталога с помощью powershell.

Роб Мердок
источник

Ответы:

19

Я не уверен, что вы ищете скрипт, который будет принимать список имен, паролей и т. Д., Но следующая команда работает для создания одного нового пользователя. 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'

Если вы хотите создать пользователя в доверенном домене, добавьте -server dns.domain к вышеуказанной команде

Седжонг
источник
1
Это v2-специфично. Роб, ты используешь v1 или v2?
Даг Чейз
4
"PasswordNeverExpires $ true" !!!!!! :-)
Пауска
Вам нужен модуль PowerShell, если у вас его нет:
northben
1
add-windowsfeature rsat-ad-powershell; ipmo activedirectory
Northben
6

Я бы порекомендовал изучить командлеты AD Quest:

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.

Fenster
источник
5

Я взял ответ Брэда выше и добавил немного больше деталей ниже (спасибо Брэду за то, что он заставил меня задуматься в этом направлении):

Входной файл 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
}    

Удачи!

Бобби Т
источник
2

если вы просто настраиваете одних и тех же пользователей в разных сетях / доменах, вам нужно просто старый файл .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.

brad.lane
источник