はじめに
PowerShellでユーザを作成するためのスクリプトを紹介します。手動で作成しても良いですが、今回は検証用に50ユーザ程作ろうかと思い、手動ではしんどいので一括で作成するためのスクリプトを作成しました。
作成するユーザーはfileuser01からfileuser50を作成し、作成ユーザーはfileusergrpというグループに所属するように設定します。また、ドメインは「jasm.ricecake24book.com」としていますので、流用する際は適宜変えてみてください。
※本記事は下記のファイルサーバ移行検証の一部です。
ユーザ追加
ドメインユーザーの場合とローカルユーザーの場合で分けて紹介します。
AD環境の場合
以下のスクリプトをPowerShellで実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
## 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 } } |
※以下は実行前の状態
![](https://www.ricecake24book.com/wp-content/uploads/2024/06/image-129-800x498.png)
実行後の結果は下記の通りです。
![](https://www.ricecake24book.com/wp-content/uploads/2024/06/image-130-800x567.png)
グループにもユーザが追加されています。
![](https://www.ricecake24book.com/wp-content/uploads/2024/06/image-131.png)
WORKGROUPの場合
以下はWORKGROUPの場合のスクリプトです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# ユーザー名の接頭辞 $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環境と同様に、ユーザーとグループが作成されます。
次に、テスト用のファイルとフォルダを作成します。