Windows

PowershellでADユーザーをCSVで一括登録する

Windows

自宅のテストAD環境でユーザを一括登録したかったのでPowerShellでスクリプトを作成しました。

あらかじめユーザ情報を記載したCSVファイルを準備し、これをActive Directoryに一括登録するスクリプトです。これを使うことで簡単に一括でユーザを作成できます。必要に応じてパラメータを修正して自分の使いやすいようにください。

ファイル準備

以下の2ファイルを用意します。スクリプトはコピペでOKです。

  • ユーザ情報CSVファイル
  • 一括登録スクリプト

ユーザ情報CSVファイル

ファイル名:ADUserList.csv

Name,DisplayName,EmailAddress
user001,ユーザ001,user001@syachiku.com
user002,ユーザ002,user002@syachiku.com
user003,ユーザ003,user003@syachiku.com

CSVファイルの文字コードは「utf8」にする必要があります。注意してください!

一括登録スクリプト

ファイル名:CreateADUserFromCsv.ps1

<#
[説明]
    CSVファイルの情報からADユーザを一括作成します。
#>
Import-Module ActiveDirectory

# CSVファイルを読み込みS
$CsvUsers = Import-Csv "./ADUserList.csv"

$PATH = "OU=SyachikuUser,DC=syachiku,DC=local"
$PASSWD = "P@ssw0rd"
$DOMAIN = "syachiku.local"

foreach($CsvUser in $CsvUsers){

    Write-Host ("ユーザを登録します:"+$CsvUser.Name)

    New-ADUser -Path $PATH  -Name $CsvUser.DisplayName `
        -DisplayName $CsvUser.DisplayName `
        -sAMAccountName $CsvUser.Name `
        -UserPrincipalName ($CsvUser.Name+'@'+$DOMAIN) `
        -EmailAddress   $CsvUser.EmailAddress `
        -AccountPassword (ConvertTo-SecureString -AsPlainText $PASSWD -Force) `
        -ChangePasswordAtLogon $false `
        -Enabled $true `
        -PasswordNeverExpires $true
}

スクリプトの説明

  • はじめに「ドメイン名」と「ユーザを作成するOU名」を設定して下さい。以下のパラメータを修正してください。
    • $PATH
    • $DOMAIN
  • 初期パスワードは一律同じ「P@ssw0rd」に設定します。変更したい場合には以下のパラメータを修正してください。
    • $PASSWD
  • パラメータ(Name/DisplayName/UserPrincipalName)を設定します。もしパラメータを変更した場合は、ページの最後に属性一覧を載せておきますのでそれを参考にCSVとスクリプトを修正して下さい。
  • ユーザアカウントに関する設定を追加しています。
    • 次回ログオン時にパスワード変更が必要を無効化
    • パスワードを無期限に設定
    • ユーザを有効化

スクリプトの実行

実際にスクリプトを実行します。ADにユーザ登録ができる権限を持っているユーザでPowerShellを開きスクリプトを実行してください。

実行するPCには「リモート サーバー管理ツール (RSAT)」 がインストールされている必要があります。ただし、Window Home Editionではインストールできませんので、その場合にはドメインコントローラー上で実行してください。

> .\CreateADUserFromCsv.ps1
ADユーザを登録します:user001
ADユーザを登録します:user002
ADユーザを登録します:user003
スクリプト実行前
スクリプト実行後

属性一覧

ADで取得できる属性は以下となります。ユーザ作成時に必要な属性を合わせて作成可能です。

PS C:\Users\super> Get-ADUser user001 -Properties *


AccountExpirationDate                :
accountExpires                       :
AccountLockoutTime                   :
AuthenticationPolicy                 : {}
AuthenticationPolicySilo             : {}
BadLogonCount                        :
CannotChangePassword                 : False
CanonicalName                        :
Certificates                         : {}
City                                 :
CN                                   : ユーザ001
codePage                             : 0
Company                              :
CompoundIdentitySupported            : {}
Country                              :
countryCode                          : 0
Created                              :
Deleted                              :
Department                           :
Description                          :
DisplayName                          : ユーザ001
DistinguishedName                    : CN=ユーザ001,OU=SyachikuUser,DC=syachiku,DC=local
Division                             :
EmailAddress                         : user001@syachiku.com
EmployeeID                           :
EmployeeNumber                       :
Fax                                  :
GivenName                            :
HomeDirectory                        :
HomeDrive                            :
HomePage                             :
HomePhone                            :
Initials                             :
instanceType                         :
isDeleted                            :
KerberosEncryptionType               : {}
LastBadPasswordAttempt               :
LastKnownParent                      :
LastLogonDate                        :
LogonWorkstations                    :
mail                                 : user001@syachiku.com
Manager                              :
MemberOf                             : {}
MobilePhone                          :
Modified                             :
Name                                 : ユーザ001
nTSecurityDescriptor                 : System.DirectoryServices.ActiveDirectorySecurity
ObjectCategory                       : CN=Person,CN=Schema,CN=Configuration,DC=syachiku,DC=local
ObjectClass                          : user
ObjectGUID                           : 1d4dc03c-9ce1-4d51-8f2f-637732018237
objectSid                            : S-1-5-21-627644649-3760360526-3829893826-1120
Office                               :
OfficePhone                          :
Organization                         :
OtherName                            :
PasswordLastSet                      :
POBox                                :
PostalCode                           :
PrimaryGroup                         : CN=Domain Users,CN=Users,DC=syachiku,DC=local
primaryGroupID                       : 513
PrincipalsAllowedToDelegateToAccount : {}
ProfilePath                          :
ProtectedFromAccidentalDeletion      : False
SamAccountName                       : user001
sAMAccountType                       : 805306368
ScriptPath                           :
sDRightsEffective                    : 0
ServicePrincipalNames                : {}
SID                                  : S-1-5-21-627644649-3760360526-3829893826-1120
SIDHistory                           : {}
State                                :
StreetAddress                        :
Surname                              :
Title                                :
userCertificate                      : {}
UserPrincipalName                    : user001@syachiku.local

以上となります。

コメント

タイトルとURLをコピーしました