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