ActiveDirectory PowerShellモジュールを使用すると、Get-AdGroupを使用してADグループをクエリできます。グループとグループメンバーの追加、更新、削除もできます。このブログ記事では、Active DirectoryグループPowerShellコマンドレットについて少し学び、参考のためにたくさんの例を紹介します。
Active Directoryグループのコマンドレット
ActiveDirectory PowerShellモジュールをインストールすると、グループを管理するためのいくつかのコマンドレットが利用できます。
Cmdlet Name | Description |
Add-ADGroupMember | Used to add members to an AD group. |
Add-ADPrincipalGroupMembership | Used to add an AD principal to AD groups. |
Get-ADGroup | Used to return a group or groups from AD. |
Get-ADGroupMember | Used to return the members of an AD group. |
Get-ADPrincipalGroupMembership | Used to get the groups an AD principal is a member of. |
New-ADGroup | Used to create a new AD group. |
Remove-ADGroup | Used to delete an AD group. |
Remove-ADGroupMember | Used to remove members from an AD group. |
Remove-ADPrincipalGroupMembership | Used to remove an AD principal from AD groups. |
Set-ADGroup | Used to set the properties of an AD group. |
これらのコマンドレットと少しのPowerShellの技術を使えば、PowerShellでActive Directoryグループのあらゆる側面を管理できます。
Get-ADGroupMemberを使用してグループのメンバーを検索する
Get-AdGroupMember
コマンドレットは、グループのすべてのメンバーを返します。
または、Get-Aduser
コマンドレットを使用して、特定のユーザーのmemberOf
プロパティを参照することもできます。フィルターの作成方法については、PowerShellでActive DirectoryとLDAPフィルターを学ぶを参照してください。
以下に2つの例を示します。
これにより、ADPrincipalオブジェクトのコレクションが返されます。
グループのメンバーをCSVファイルにエクスポートします
これは、各ユーザーの名前、姓、およびメールアドレスをエクスポートします。 Get-ADGroupMember
の結果をパイプして、Get-ADUser
を使用します。なぜなら、これらは ADPrincipal オブジェクトであり、ADUser オブジェクトが持つすべてのプロパティを持っていないからです。
Export-CSV
のNoTypeInformation
パラメーターを使用して、CSV ファイルが他のアプリケーションと互換性があることを確認してください。
Get-ADGroup を使用してメンバーのいないグループを検索します。
フィルターを使用してグループを検索するには、Get-AdGroup
を使用します。以下に2つの例を示します。
New-ADGroup を使用して新しいセキュリティグループを作成します。
New-AdGroup
コマンドを使用して新しいセキュリティグループを作成します。
Path
パラメーターが指定されていない場合、新しいグループは Users コンテナに作成されます。グループのスコープは、DomainLocal
、Global
、または Universal
のいずれかである必要があります。
New-ADGroup を使用して新しい配布グループを作成します。
再び New-AdGroup
を使用して配布グループを作成します。今回は GroupCategory
を Distribution
に設定します。
Add-ADGroupMember を使用してグループにメンバーを追加します。
PowerShell を使用して Active Directory グループにユーザーを追加するには、Add-AdGroupMember
コマンドレットまたは Add-ADPrincipalGroupMembership
コマンドレットを使用できます。
このコマンドでは、グループを Identity として指定します。
このコマンドでは、AD プリンシパルを Identity として指定します。
Set-AdGroupのNotes
プロパティに書き込んでください。
ADUCのNotesというフィールドは、Get-AdGroup
から返されるInfo
プロパティで表されます。
まず、変更するグループを見つけて、Info
プロパティを設定し、それからSet-AdGroup
を使用して変更をADに反映します。
Remove-ADGroupMemberを使用してグループメンバーを削除します。
すべてのPowerShellのコマンドレットと同様に、Confirm
パラメータを使用して変更を行う前にプロンプトが表示されます。この動作は、Remove-AdGroupMember
およびRemove-ADPrincipalGroupMembership
のコマンドレットにも適用されます。
以下のコードは、確認なしでグループメンバーを削除します。
または、Confirm
パラメータを使用して確認付きでグループメンバーを削除することもできます。
Remove-ADGroupを使用してグループを削除します。
確認なしでグループを削除するか、確認付きでグループを削除するかを選択できます。
Rename-ADObjectを使用してグループの名前を変更します。
Rename-ADObject
を使用して、ワンライナーでグループの名前を変更できます。
Get-ADGroupを使用してグループの数を取得します。
Get-AdGroup
によって返されるグループの総数を取得する必要がありますか?Count
プロパティを使用します。
Get-ADGroupを使用して、マネージャーが割り当てられたグループを検索します。
Get-AdGroup
と適切に作成されたLDAPフィルタを使用して、マネージャーが割り当てられたすべてのグループをフィルタリングします。
これに対応するPowerShellフィルタはありません。
Get-ADGroupを使用して、特定のユーザーが管理するグループを見つけます
フィルターのスキルを向上させ、PowerShellフィルターまたはLDAPフィルターを使用して特定のユーザーが管理するすべてのグループを見つけます。
Set-ADGroupを使用してグループのマネージャーを設定します
グループの「管理者」タブでは、グループのメンバーシップを担当する人を指定することができます。これは自動的にグループのメンバーシップを変更することを意味しません。それを実現するには、対象のグループの「メンバー」プロパティのセキュリティ権限を変更する必要があります。
「グループのメンバーシップリストを更新できる管理者」ボックスをチェックすると、これを許可するためのアクセス許可が変更されます。

Set-ADGroup
を使用してManagedBy属性を設定します:
アクセス制御リストを更新するには、さらにいくつかの手順が必要です。次のコードスニペットは、ユーザーKristin Diazがグループのメンバーシップを管理できるようにします。bf9679c0-0de6-11d0-a285-00aa003049e2は、グループのMember
プロパティのGUIDです。
もしKristinがグループのマネージャーにも設定されている場合、チェックボックスがチェックされます。そうでない場合、Kristinはグループのメンバーシップを管理することができますが、ADUCでマネージャーとして表示されません。
Active Directory内の漏洩したパスワードや安全でないパスワードを、NCSCパスワードリストと照合して検出します。
すべてのセキュリティグループを検索
PowerShellを使用して、これらの2つの例に基づいて、Active Directory内のすべてのセキュリティグループをリストアップします。LDAPフィルターについては、どうですか?LDAPフィルターについてすべてを学びましょう。
配布グループを検索
これらの2つの例を使用して、セキュリティグループを除外したActive Directoryグループ(配布)をリストアップします。
ユーザーのグループメンバーシップを取得するには、Get-ADPrincipalGroupMembershipを使用します。
なお、このコマンドはグローバルカタログへのアクセスが必要です。
OU内のグループを検索し、サブOUは含まない
これらの2つの例を使用して、検索を単一のOUに制限するためにSearchBaseパラメーターを使用します。
OU内のグループを検索し、サブOUも含む
すべての子OUでグループを検索する必要がありますか?SearchScopeをSubTreeに設定します。
まとめ
これで、PowerShellを使用したADグループの管理の例示が終わりました。いくつか試してみて、組織内で自動化を始めましょう!