ADオブジェクト一括作成

ADにはユーザーやグループ、OUなど、様々なオブジェクトがあります。


ADを導入する際、これらのオブジェクトを多数作成する必要がありますが、1つずつGUIで作成するのは面倒です。

そんな時は PowerShell を使うことで効率よく作成することが出来ます。


PowerShell を使えると、AD 運用の効率化にも役立つので覚えておいて損はないです。

変更や削除は作成手順を理解すれば比較的簡単に作成することが出来ます。


今回は下記のオブジェクト作成と確認の方法を紹介します。

  • OU
  • ユーザー
  • グループ
  • グループメンバー
  • サブネット



1.OU作成

OU とは「Organization Unit (組織単位)」と呼ばれるもので、OUを階層化することでユーザーやコンピューターなどの ADオブジェクトを効率よく管理出来ます。

コンテナとの違いについてはこちら。
ADのOUとコンテナの違いについて


また、OUはグループポリシーを適用させる範囲でもあるので、実際の企業組織に合わせるだけではなく、グループポリシーを適用させることも考慮して作成しましょう。

※ファイルサーバーなどのアクセス権はOUではなくセキュリティグループに関連します


OU作成コマンド

下記のコマンドで CSV に記載している OU を一括で作成出来ます。


任意のオプションは環境に合わせて変更してください。

CSV ファイルの Path はダブルクォーテーションで囲んでください。

Import-Csv “C:\WORK\Create_OU.csv” -Encoding Default | ForEach-Object {New-ADOrganizationalUnit -Name $_.Name -Description $_.Description -Path $_.Path}


OU確認コマンド

下記のコマンドで OU の一覧を CSV ファイルに出力出来ます。

Get-ADOrganizationalUnit -Filter * -Properties * | Select-Object Name,Description,DistinguishedName | Export-Csv “C:\WORK\Result_OU.csv” -Encoding Default -NoTypeInformation




2.ユーザー

AD を運用する上で必ず作成するのがユーザーです。

OU や グループは一度作成するとあまり変更することはないかもしれませんが、ユーザーは定期的な運用が発生する場合が多いです。


ユーザー作成コマンド

下記のコマンドで CSV に記載しているユーザーを一括登録出来ます。


オプションは環境に合わせて変更してください。

CSV ファイルの Path はダブルクォーテーションで囲んでください。

Import-Csv “C:\WORK\Create_User.csv” -Encoding Default | ForEach-Object {New-ADUser -Name $_.Name -UserPrincipalName $_.UserPrincipalName -DisplayName $_.DisplayName -SurName $_.SurName -GivenName $_.GivenName -EmailAddress $_.EmailAddress -Path $_.Path -EmployeeID $_.EmployeeID -Title $_.Title -AccountPassword (ConvertTo-SecureString $_.Password -AsPlaintext -Force) -ChangePasswordAtLogon $false -Enabled $true}



一部パラメーターについて詳細は下記の通りです。

  • EmployeeID:社員番号
  • Title:役職
  • AccountPassword:パスワード設定
  • ChangePasswordAtLogon:次回ログイン時にパスワードを変更する
  • Enabled:アカウントの有効化



また、オプションが存在しない属性を付与するためには、下記のオプションを追加し、属性値を指定することで設定可能です。

-otherattributes @{‘EmployeeType’=$_.’EmployeeType’,’msDS-PhoneticDisplayName’=$_.’msDS-PhoneticDisplayName’}

  • EmployeeType:雇用形態
  • msDS-PhoneticDisplayName:フリガナ



ユーザー確認コマンド

下記のコマンドでユーザーの一覧を CSV ファイルに出力出来ます。

Get-ADUser -Filter * -Properties * | Select-Object Name,UserPrincipalName,DisplayName,SurName,GivenName,DistinguishedName,EmployeeID,Title,pwdlastset,Enabled | Export-Csv “C:\WORK\Result_User.csv” -Encoding Default -NoTypeInformation




3.グループ

ユーザーを効率よく管理するためにグループを作成しましょう。

セキュリティグループはファイルサーバーなどのアクセス権に利用します。


グループ作成コマンド

下記のコマンドで CSV に記載しているグループを一括登録出来ます。


オプションは環境に合わせて変更してください。

CSV ファイルの Path はダブルクォーテーションで囲んでください。

Import-Csv “C:\WORK\Create_Group.csv” -Encoding Default | ForEach-Object {New-ADGroup -Name $_.Name -GroupScope $_.GroupScope -GroupCategory $_.GroupCategory -Path $_.Path}



GroupScope は下記の中から任意の値を指定してください。

  • DomainLocal:ドメインローカルグループ
  • Global:グローバルグループ
  • Universal:ユニバーサルグループ



GroupCategory は下記の中から任意の値を指定してください。

  • Security:セキュリティグループ
  • Distribution:配布グループ



グループ確認コマンド

下記のコマンドでグループの一覧を CSV ファイルに出力出来ます。

Get-ADGroup -Filter * -Properties * | Select-Object Name,GroupScope,GroupCategory,DistinguishedName | Export-Csv “C:\WORK\Result_Group.csv” -Encoding Default -NoTypeInformation




4.グループメンバー

グループを作成するだけでは意味がないので、作成したグループにメンバーを追加してあげましょう。


ユーザーやグループを作成する時にメンバーも設定できると便利なんですが、オプションが用意されていないので別途メンバー追加作業を実施する必要があります。


グループメンバー追加コマンド

下記のコマンドで CSV に記載しているグループメンバーを一括登録出来ます。


オプションは環境に合わせて変更してください。

Import-Csv “C:\WORK\Add_GroupMember.csv” -Encoding Default | ForEach-Object {Add-ADGroupMember -Identity $_.Identity -Members $_.Members}


グループメンバー確認コマンド

下記のコマンドでグループメンバーの一覧をテキストファイルに出力出来ます。


他のオブジェクトと違って Export-Csv では上手く出力出来なかったので、リダイレクトでテキストファイルに出力しています。

Import-Csv “C:\WORK\ADObject\Check_GroupMember.csv” -Encoding Default | ForEach-Object {echo $_.Identity ; Get-ADGroupMember -Identity $_.Identity | select Name | ft} > “C:\WORK\Result_Group_Member.txt”




5.サブネット

サブネットとは ADサイトに属するネットワークを指定する設定です。

事前にADサイトを作成する必要がありますが、小規模な場合は 2、3個くらいしか作成しないので、基本的には GUI で作成してください。


サブネット作成コマンド

下記のコマンドで CSV に記載しているサブネットを一括登録出来ます。


オプションは環境に合わせて変更してください。

Import-Csv “C:\WORK\Create_Subnet.csv” -Encoding Default | ForEach-Object {New-ADReplicationSubnet -Name $_.Name -Site $_.Site}


サブネット確認コマンド

下記のコマンドでサブネットの一覧を CSV ファイルに出力出来ます。

Get-ADReplicationSubnet -Filter * -Properties * | Select-Object Name,Site | Export-Csv “C:\WORK\Result_Subnet.csv” -Encoding Default -NoTypeInformation


ADのオブジェクト以上です。

コメント

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