🔥

【ActiveDirectory×PowerShell】他ドメインのオブジェクトをセキュリティグループに追加するPowerShellコマンド

に公開

1. 本記事について

PowerShellを使用し、他ドメインのオブジェクトをセキュリティグループに追加する方法について記載します。

2. 前提条件

・PowerShellにActiveDirectoryのモジュールがインポートされていること。
 (Active Directoryのモジュールは、以下コマンドでインポート可能です。)
コマンド:Import-Module ActiveDirectory
・コマンドを実行するアカウントが、グループへのメンバー追加権限を持っていること。
・オブジェクトの追加先セキュリティグループが存在するドメインと、追加対象オブジェクトが存在するドメイン間で、信頼関係が結ばれていること。

3. 実行コマンド

3.1 他ドメインのユーザーアカウントを追加する場合

$User = Get-ADUser -Identity <"ユーザーアカウント"> -Server <"ユーザーアカウントの所属するドメインのドメインコントローラー">
Add-ADGroupMembers -Identity <"追加先セキュリティグループ"> -Members $User
$User = Get-ADUser -Identity <"ユーザーアカウント"> -Server "DomainController@example.example.com"
Add-ADGroupMembers -Identity "GroupToAdd" -Members $User

3.2 他ドメインのコンピューターアカウントを追加する場合

$Computer = Get-ADComputer -Identity "コンピューターアカウント" -Server <"コンピューターアカウントの所属するドメインのドメインコントローラー">
Add-ADGroupMembers -Identity "追加先セキュリティグループ" -Members $Computer
$Computer = Get-ADComputer -Identity "TestComputer1" -Server "DomainController@example.example.com"
Add-ADGroupMembers -Identity "GroupToAdd" -Members $Computer

3.3 他ドメインのセキュリティグループを追加する場合

$Group = Get-ADGroup -Identity "セキュリティグループ" -Server <"セキュリティグループの所属するドメインのドメインコントローラー">
Add-ADGroupMembers -Identity "追加先セキュリティグループ" -Members $Group
$Group = Get-ADGroup -Identity "TestGroup1" -Server "DomainController@example.example.com"
Add-ADGroupMembers -Identity "GroupToAdd" -Members $Group

4. 解説

まず、Get-ADUser, Get-ADComputer, Get-ADGroup コマンドを使用し、オブジェクトを変数に格納します。
その後、その変数を使用してセキュリティグループへのメンバー追加コマンド(Add-ADGroupMember)を実行します。
※メンバー追加コマンドに直接オブジェクトのUPNなどを指定すると、エラーが発生してしまいます。

5. 補足

追加対象のオブジェクトが作成されたばかりのオブジェクトである場合、グループ追加時にエラーが発生してしまうことがあります。(ドメインコントローラー間の複製タイミングに起因するもの)
オブジェクトを作成したドメインコントローラー上で「repadmin /syncall /AeP」コマンドを実行し、手動で複製をトリガーするか、時間を空けてからセキュリティグループへの追加を行うことで、エラーが発生することなくセキュリティグループに追加することができます。

Discussion