Active Directoryのユーザ登録をPower Shellで

Posted by onodai.


GUIでポチポチはめんどくさいからPowerShellで楽をしよう。

たとえば以下のようなユーザを作りたいとき。

項目
表示名(フルネーム) ユーザ1
ユーザログオン名 user1@example.com
ユーザログオン名(Windows 2000より前) example.com\user1
パスワード P@ssw0rd
ユーザは次回ログオン時にパスワード変更が必要 無効
パスワードを無期限にする 有効
アカウントは無効 無効
 
Import-Module activedirectory # AD用のモジュールを読み込む
New-ADUser -Path "CN=Users,DC=example,DC=com" -Name "ユーザ1" -DisplayName "ユーザ1" -UserPrincipalName user1@example.com -sAMAccountName "user1" -AccountPassword (ConvertTo-SecureString -AsPlainText "P@ssw0rd" -Force) -ChangePasswordAtLogon $false -Enabled $true -PasswordNeverExpires $true

New-ADUserコマンドレットは平文の文字列をパスワードとして受け付けてくれないので、ConvertTo-SecureStringコマンドレットを使っているのがポイント。

また、以下のようなCSVをImport-Csvコマンドレットに食わせて、New-ADUserコマンドレットにパイプで渡すことで、複数のユーザを作成することも出来る。
このとき、CSVは文字コードをUTF-8で保存すること。

Name,DisplayName,UserPrincipalName,Password
user1,ユーザ001,user1@example.com,P@ssw0rd
user2,ユーザ002,user2@example.com,P@ssw0rd
user3,ユーザ003,user3@example.com,P@ssw0rd

コマンドレットは以下のとおり。

 
Import-Csv "C:\Users\Administrator\Desktop\users.txt" | %{New-ADUser -Name $_.DisplayName -DisplayName $_.DisplayName -UserPrincipalName $_.UserPrincipalName -sAMAccountName $_.Name -AccountPassword (ConvertTo-SecureString -AsPlainText $_.Password -Force) -ChangePasswordAtLogon $false -Enabled $true -PasswordNeverExpires $true}

参考:New-ADUser

comments powered by Disqus