web-dev-qa-db-ja.com

PowerShellでActive Directoryユーザーアカウントを作成する方法

Active Directoryアカウントを必要とする研究開発環境を常にセットアップしています。これらの環境は隔離されたネットワークに配置されるため、各環境には独自のActive Directoryが必要です。 PowerShellを使用して新しいActive Directoryアカウントを作成するにはどうすればよいですか。

19
Rob Murdoch

名前、パスワードなどのリストを取得するスクリプトを探しているかどうかはわかりませんが、次のコマンドを使用して1人の新しいユーザーを作成します。 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を追加します

19
sejong

クエストの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の場合、ShaderがIderaのスクリプトを提案すると、追加のコマンドレットを使用する手間が省けます。スクリプトをダウンロードする問題に行く場合は、クエストコマンドレットをダウンロードすることもできます。

6
fenster

私は上記のブラッドの回答を取り、以下にもう少し詳細を追加しました(この方向で考えさせてくれたブラッドに感謝します)。

入力CSVファイル:

cn,givenname,sn,sAMAccountName,displayname,UserPrincipalName
Joe Smith,Joe,Smith,jsmith,Joe Smith,[email protected]
Susan Johnson,Susan,Johnson,sjohnson,Susan Johnson,[email protected]

コード:

$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
}    

幸運を!

5
Bobby T

異なるネットワーク/ドメインで同じユーザーを設定するだけの場合は、単純な古い.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など)はActive Directoryの役割とともにインストールされるため、ADを起動して実行すると使用できるようになります。

2
brad.lane