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