はじめに
PowerShellでユーザを作成するためのスクリプトを紹介します。手動で作成しても良いですが、今回は検証用に50ユーザ程作ろうかと思い、手動ではしんどいので一括で作成するためのスクリプトを作成しました。
作成するユーザーはfileuser01からfileuser50を作成し、作成ユーザーはfileusergrpというグループに所属するように設定します。また、ドメインは「jasm.ricecake24book.com」としていますので、流用する際は適宜変えてみてください。
※本記事は下記のファイルサーバ移行検証の一部です。
ユーザ追加
ドメインユーザーの場合とローカルユーザーの場合で分けて紹介します。
AD環境の場合
以下のスクリプトをPowerShellで実行します。
## Active Directory モジュールのインポート
Import-Module ActiveDirectory
# ユーザー名の接頭辞
$userPrefix = "fileuser"
# ユーザー数
$userCount = 50
# ドメイン情報
$domain = "jasm.ricecake24book.com"
# グループ名
$groupName = "fileusergrp"
# 管理者の資格情報を取得
$credential = Get-Credential -Message "Enter domain admin credentials"
# グループが存在するか確認し、存在しない場合は作成
Write-Host "Checking for group $groupName"
$group = Get-ADGroup -Filter { Name -eq $groupName } -Server $domain -Credential $credential
if (-not $group) {
Write-Host "Creating group $groupName"
New-ADGroup -Name $groupName -SamAccountName $groupName -GroupScope Global -Server $domain -Credential $credential
Write-Host "Created group: $groupName"
} else {
Write-Host "Group $groupName already exists."
}
# ユーザーを作成するループ
for ($i = 1; $i -le $userCount; $i++) {
$username = $userPrefix + "{0:d2}" -f $i
$password = ConvertTo-SecureString -AsPlainText "Share_test01!" -Force
$userParams = @{
Name = $username
SamAccountName = $username
UserPrincipalName = "$username@$domain"
Path = "CN=Users,DC=jasm,DC=ricecake24book,DC=com"
AccountPassword = $password
Enabled = $true
PasswordNeverExpires = $true
GivenName = "File"
Surname = "User$i"
DisplayName = "File User $i"
Description = "File User Account"
Server = $domain
Credential = $credential
}
Write-Host "Creating user: $username"
try {
New-ADUser @userParams
Write-Host "Created user: $username"
} catch {
Write-Host "Failed to create user: $username"
Write-Host $_.Exception.Message
continue
}
Write-Host "Adding $username to group: $groupName"
try {
Add-ADGroupMember -Identity $groupName -Members $username -Server $domain -Credential $credential
Write-Host "Added $username to group: $groupName"
} catch {
Write-Host "Failed to add $username to group: $groupName"
Write-Host $_.Exception.Message
}
}
※以下は実行前の状態

実行後の結果は下記の通りです。

グループにもユーザが追加されています。

WORKGROUPの場合
以下はWORKGROUPの場合のスクリプトです。
# ユーザー名の接頭辞
$userPrefix = "fileuser"
# ユーザー数
$userCount = 50
# グループ名
$groupName = "fileusergrp"
# グループの存在を確認し、なければ作成する
if (-Not (Get-LocalGroup -Name $groupName -ErrorAction SilentlyContinue)) {
New-LocalGroup -Name $groupName -Description "Group for file users"
Write-Host "Created group: $groupName"
} else {
Write-Host "Group $groupName already exists"
}
# ユーザーを作成するループ
for ($i = 1; $i -le $userCount; $i++) {
$username = $userPrefix + "{0:d2}" -f $i
$password = ConvertTo-SecureString -AsPlainText "Share_test01!" -Force
New-LocalUser -Name $username -Password $password -FullName "File User $i" -Description "File User Account" -PasswordNeverExpires
Write-Host "Created user: $username"
# ユーザーをグループに追加
Add-LocalGroupMember -Group $groupName -Member $username
Write-Host "Added user: $username to group: $groupName"
}
※AD環境と同様に、ユーザーとグループが作成されます。
次に、テスト用のファイルとフォルダを作成します。

