青空 Jumping Box(仮)

Windows Server 2025 で地味目なラボを作る。

PowerShell で Windows Server 2025 AD に検証用アカウントを作成してみる。

Windows Server 2025 の Active Directory で、検証用の OU、ユーザー、グループ一式を、PowerShell で作成してみます。

 

今回の構成

下記のような AD オブジェクトを作成してみます。

  • hv.go-lab.jp(ドメイン)
    •  Demo-OU(OU)
      • demo-group-a(セキュリティ グループ)
        • demo-user-01(ユーザー #1)
        • demo-user-02(ユーザー #2)
        • demo-user-03(ユーザー #3)

 

1. PowerShell とモジュールのインポート

まず、ドメイン コントローラーで PowerShell コンソールを開き、ActiveDirectory モジュールを読み込んでおきます。まだモジュールがインストールされていない場合は、エラーになるはずです。

Import-Module ActiveDirectory

 

2. OU の作成

グループとユーザーを格納する、OU を作成します。

New-ADOrganizationalUnit -Path "DC=hv,DC=go-lab,DC=jp" -Name "Demo-OU"

 

3. グループとユーザーの作成

グループを作成します。

New-ADGroup `
-Name "demo-group-a" `
-GroupScope Global `
-GroupCategory Security `
-Path "OU=Demo-OU,DC=hv,DC=go-lab,DC=jp"

 

ユーザーを作成します。

New-ADUser `
-Name "demo-user-01" `
-SamAccountName "demo-user-01" `
-UserPrincipalName "demo-user-01@hv.go-lab.jp" `
-EmailAddress "demo-user-01@hv.go-lab.jp" `
-Surname "demo" `
-GivenName "demo-user-01" `
-DisplayName "demo-user-01" `
-AccountPassword (ConvertTo-SecureString "Hyperv1!" -AsPlainText -Force) `
-Path "OU=Demo-OU,DC=hv,DC=go-lab,DC=jp" `
-Enabled $true `
-PasswordNeverExpires $true

 

作成したユーザーを、グループに追加します。

Add-ADGroupMember `
-Identity "demo-group-a" `
-Members "demo-user-01"

 

これで、「Active Directory ユーザーとグループ」を確認すると、下記のようにグループとユーザーが作成されるはずです。

 

ユーザーのプロパティを開くと、オプション(-EmailAddress)で指定したメール アドレスが設定されています。

 

「-PasswordNeverExpires $true」オプションを指定したので、パスワードが無期限になっています。

 

そして、「demo-group-a」グループにも参加できています。

 

4. オブジェクトの作成(スクリプト)

ここまでの PowerShell コマンドをまとめて、下記のようなスクリプトを用意してみました。

  • OUは、事前に作成しておきます。
  • L3~L10 の変数に、パラメータを指定しておきます。

gist.github.com

 

PowerShell コンソールで実行すると、下記のようにグループとユーザーが作成されます。グループと1つめのユーザーは、すでに作成されているのでスキップされています。

PS C:\work> .\create_lab_users.ps1
SKIP Create Group: demo-group-a
SKIP Create User: demo-user-01
Create User: demo-user-02
Create User: demo-user-03

 

これで、下記のようにグループとユーザーが作成された状態になりました。

 

おまけ:オブジェクトの削除

今回作成したグループとユーザーを、OU ごと削除してみます。

OU「Demo-OU」は、下記のように Get-ADOrganizationalUnit で取得できます。

PS C:\> Get-ADOrganizationalUnit -Filter "Name -eq 'Demo-OU'"

City                     :
Country                  :
DistinguishedName        : OU=Demo-OU,DC=hv,DC=go-lab,DC=jp
LinkedGroupPolicyObjects : {}
ManagedBy                :
Name                     : Demo-OU
ObjectClass              : organizationalUnit
ObjectGUID               : 1c3a7e1a-66c3-4371-9d7d-807559aaddaf
PostalCode               :
State                    :
StreetAddress            :

 

デフォルトでは、OU が間違って削除されないように保護されているので、保護設定を解除します。

Get-ADOrganizationalUnit -Filter "Name -eq 'Demo-OU'"  | Set-ADOrganizationalUnit -ProtectedFromAccidentalDeletion $false

 

OU を削除します。「-Recursive」オプションを付与することで、OU に格納されているグループやユーザーも、まとめて削除できます。

Get-ADOrganizationalUnit -Filter "Name -eq 'Demo-OU'"  | Remove-ADOrganizationalUnit -Recursive -Confirm:$false

 

以上。