自宅のテスト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
以上となります。
コメント