この記事では、Microsoft Entra ID (Microsoft Entra の一部) で PowerShell を使用してグループを管理する方法の例を示します。 また、Microsoft Graph PowerShell モジュールをセットアップする方法も説明します。 まず、Microsoft Graph PowerShell モジュールをダウンロードする必要があります。
Microsoft Graph PowerShell モジュールをインストールする
MgGroup PowerShell モジュールをインストールするには、次のコマンドを使用します。
PS C:\Windows\system32> Install-module Microsoft.Graph
モジュールを使用する準備ができているかどうかを確認するには、次のコマンドを使用します。
PS C:\Windows\system32> Get-Module -Name "*graph*"
ModuleType Version PreRelease Name ExportedCommands
---------- ------- ---------- ---- ----------------
Script 1.27.0 Microsoft.Graph.Authentication {Add-MgEnvironment, Connect-MgGraph, Disconnect-MgGraph, Get-MgContext…}
Script 1.27.0 Microsoft.Graph.Groups {Add-MgGroupDriveListContentTypeCopy, Add-MgGroupDriveListContentTypeCopyF…
これで、モジュールのコマンドレットの使用を開始できます。 Microsoft Graph モジュールのコマンドレットの詳しい説明については、Microsoft Graph PowerShell のオンライン リファレンス ドキュメントを参照してください。
ディレクトリに接続する
Microsoft Graph PowerShell のコマンドレットを使用したグループの管理を開始するには、管理するディレクトリに PowerShell セッションを接続する必要があります。 次のコマンドを使用します。
PS C:\Windows\system32> Connect-MgGraph -Scopes "Group.ReadWrite.All"
このコマンドレットでは、ディレクトリへのアクセスに使用する資格情報の入力を求められます。 この例では、karen@drumkit.onmicrosoft.com を使用してデモンストレーション ディレクトリにアクセスします。 コマンドレットは、セッションがディレクトリに正常に接続されたことを表示する確認メッセージを返します。
Welcome To Microsoft Graph!
これで、MgGraph コマンドレットを使用してディレクトリ内のグループを管理できます。
グループを取得する
既存のグループをディレクトリから取得するには、Get-MgGroups コマンドレットを使用します。
ディレクトリ内のすべてのグループを取得するには、パラメーターなしでコマンドレットを使用します。
PS C:\Windows\system32> Get-MgGroup -All
このコマンドレットは、接続されたディレクトリ内のすべてのグループを返します。
特定のグループを取得するには、-GroupId パラメーターでグループの objectID を指定します。
PS C:\Windows\system32> Get-MgGroup -GroupId 5e3eba05-6c2b-4555-9909-c08e997aab18 | fl
コマンドレットは次のように、入力したパラメーターの値に一致する objectID のグループを返します。
AcceptedSenders :
AllowExternalSenders :
AppRoleAssignments :
AssignedLabels :
AssignedLicenses :
AutoSubscribeNewMembers :
Calendar : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCalendar
CalendarView :
Classification :
Conversations :
CreatedDateTime : 14-07-2023 14:25:49
CreatedOnBehalfOf : Microsoft.Graph.PowerShell.Models.MicrosoftGraphDirectoryObject
DeletedDateTime :
Description : Sales and Marketing
DisplayName : Sales and Marketing
Id : f76cbbb8-0581-4e01-a0d4-133d3ce9197f
IsArchived :
IsAssignableToRole :
IsSubscribedByMail :
LicenseProcessingState : Microsoft.Graph.PowerShell.Models.MicrosoftGraphLicenseProcessingState
Mail : SalesAndMarketing@M365x64647001.onmicrosoft.com
MailEnabled : True
MailNickname : SalesAndMarketing
RejectedSenders :
RenewedDateTime : 14-07-2023 14:25:49
SecurityEnabled : True
-filter パラメーターを使用して、特定のグループを検索できます。 次の例に示すように、このパラメーターは ODATA フィルター句を使用し、フィルターに一致するすべてのグループを返します。
PS C:\Windows\system32> Get-MgGroup -Filter "DisplayName eq 'Intune Administrators'"
DeletionTimeStamp :
ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
ObjectType : Group
Description : Intune Administrators
DirSyncEnabled :
DisplayName : Intune Administrators
LastDirSyncTime :
Mail :
MailEnabled : False
MailNickName : 4dd067a0-6515-4f23-968a-cc2ffc2eff5c
OnPremisesSecurityIdentifier :
ProvisioningErrors : {}
ProxyAddresses : {}
SecurityEnabled : True
Note
MgGroup PowerShell コマンドレットは OData クエリ標準を実装しています。 詳しくは、「OData エンドポイントを使用する OData システム クエリ オプション」の「 $filter」を参照してください。
次に、有効期限ポリシーが適用されていないすべてのグループを取得する例を示します。
Connect-MgGraph -Scopes 'Group.Read.All'
Get-MgGroup -ConsistencyLevel eventual -Count groupCount -Filter "NOT (expirationDateTime+ge+1900-01-01T00:00:00Z)" | Format-List Id
次の例では、前のスクリプトの結果を CSV にエクスポートしています。
Connect-MgGraph -Scopes 'Group.Read.All'
Get-MgGroup -ConsistencyLevel eventual -Count groupCount -Filter "NOT (expirationDateTime+ge+1900-01-01T00:00:00Z)" | Format-List Id |Export-Csv -Path {path} -NoTypeInformation
この最後の例では、Teams に属するグループのみを取得する方法を示します。
Get-MgGroup -ConsistencyLevel eventual -Count groupCount -Filter "NOT (expirationDateTime+ge+1900-01-01T00:00:00Z) and resourceProvisioningOptions/any(p:p eq 'Team')" | Format-List Id, expirationDateTime, resourceProvisioningOptions
グループの作成
新しいグループをディレクトリに作成するには、New-MgGroup コマンドレットを使用します。 このコマンドレットでは、"Marketing" という新しいセキュリティ グループを作成します。
$param = @{
description="My Demo Group"
displayName="DemoGroup"
mailEnabled=$false
securityEnabled=$true
mailNickname="Demo"
}
New-MgGroup @param
グループを更新する
既存のグループを更新するには、Update-MgGroup コマンドレットを使用します。 この例では、グループ "Intune 管理者" の DisplayName プロパティを変更しています。まず、Get-MgGroup コマンドレットを使用してグループを検索し、DisplayName 属性を使用してフィルター処理します。
PS C:\Windows\system32> Get-MgGroup -Filter "DisplayName eq 'Intune Administrators'"
DeletionTimeStamp :
ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
ObjectType : Group
Description : Intune Administrators
DirSyncEnabled :
DisplayName : Intune Administrators
LastDirSyncTime :
Mail :
MailEnabled : False
MailNickName : 4dd067a0-6515-4f23-968a-cc2ffc2eff5c
OnPremisesSecurityIdentifier :
ProvisioningErrors : {}
ProxyAddresses : {}
SecurityEnabled : True
次に、Description プロパティを新しい値 "Intune デバイス管理者" に変更します。
PS C:\Windows\system32> Update-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b -Description "Demo Group Updated"
ここで、もう一度グループを検索する場合は、Description プロパティが更新され、新しい値が反映されていることを確認します。
PS C:\Windows\system32> Get-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b | select displayname, description
DisplayName Description
----------- -----------
DemoGroup Demo Group Updated
グループを削除する
ディレクトリからグループを削除するには、次のように Remove-MgGroup コマンドレットを使用します。
PS C:\Windows\system32> Remove-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b
グループ メンバーシップを管理する
メンバーの追加
新しいメンバーをグループに追加するには、New-MgGroupMember コマンドレットを使用します。 このコマンドは、前の例で使用した Intune Administrators グループにメンバーを追加します。
PS C:\Windows\system32> New-MgGroupMember -GroupId f76cbbb8-0581-4e01-a0d4-133d3ce9197f -DirectoryObjectId a88762b7-ce17-40e9-b417-0add1848eb68
-GroupId パラメーターは、ObjectID グループです。 使用しているグループの ObjectID を指定する必要があります。 -DirectoryObjectId は、グループ メンバーとして追加するユーザーの ObjectID です。
メンバーを取得する
グループの既存のメンバーを取得するには、この例のように、Get-MgGroupMember コマンドレットを使用します。
PS C:\Windows\system32> Get-MgGroupMember -GroupId 2c52c779-8587-48c5-9d4a-c474f2a66cf4
Id DeletedDateTime
-- ---------------
aaaaaaaa-bbbb-cccc-1111-222222222222
bbbbbbbb-cccc-dddd-2222-333333333333
メンバーの削除
グループに既に追加されているメンバーを削除するには、ここに示すように、Remove-MgGroupMember コマンドレットを使用します。
PS C:\Windows\system32> Remove-MgGroupMemberByRef -DirectoryObjectId 00aa00aa-bb11-cc22-dd33-44ee44ee44ee -GroupId 2c52c779-8587-48c5-9d4a-c474f2a66cf4
メンバーを確認する
ユーザーのグループ メンバーシップを確認するには、Select-MgGroupIdsUserIsMemberOf コマンドレットを使用します。 このコマンドレットは、グループ メンバーシップを確認する対象のユーザーの ObjectId、およびメンバーシップを確認する対象のグループの一覧を、パラメーターとして使用します。 グループの一覧は “Microsoft.Open.AzureAD.Model.GroupIdsForMembershipCheck” 型の複合変数の形式に指定する必要があるため、最初にその型で変数を作成する必要があります。
Get-MgUserMemberOf -UserId 00aa00aa-bb11-cc22-dd33-44ee44ee44ee
Id DisplayName Description GroupTypes AccessType
-- ----------- ----------- ---------- ----------
5dc16449-3420-4ad5-9634-49cd04eceba0 demogroup demogroup {Unified}
返される値は、このユーザーがメンバーであるグループの一覧です。 このメソッドを適用して、Select-MgGroupIdsContactIsMemberOf、Select-MgGroupIdsGroupIsMemberOf、または Select-MgGroupIdsServicePrincipalIsMemberOf を使用して、特定のグループの一覧の連絡先、グループ、またはサービス プリンシパルのメンバーシップを確認することもできます。
ユーザーによるグループの作成を無効にする
標準ユーザーがセキュリティ グループを作成できないようにすることができます。 Microsoft Online Directory Services (MSODS) の既定の動作は、セルフサービス グループ管理 (SSGM) も有効になっているかどうかにかかわらず、標準ユーザーがグループを作成できるようにすることです。 SSGM の設定は、マイ グループ ポータルでの動作のみを制御します。
標準ユーザーのグループ作成を無効にするには:
標準ユーザーがグループの作成を許可されていることを確認します。
PS C:\> Get-MgBetaDirectorySetting | select -ExpandProperty values Name Value ---- ----- NewUnifiedGroupWritebackDefault true EnableMIPLabels false CustomBlockedWordsList EnableMSStandardBlockedWords false ClassificationDescriptions DefaultClassification PrefixSuffixNamingRequirement AllowGuestsToBeGroupOwner false AllowGuestsToAccessGroups true GuestUsageGuidelinesUrl GroupCreationAllowedGroupId AllowToAddGuests true UsageGuidelinesUrl ClassificationList EnableGroupCreation true
EnableGroupCreation : True
が返された場合、標準ユーザーはグループを作成できます。 この機能を無効にするには、次のコマンドを実行します。Install-Module Microsoft.Graph.Beta.Identity.DirectoryManagement Import-Module Microsoft.Graph.Beta.Identity.DirectoryManagement $params = @{ TemplateId = "62375ab9-6b52-47ed-826b-58e47e0e304b" Values = @( @{ Name = "EnableGroupCreation" Value = "false" } ) } Connect-MgGraph -Scopes "Directory.ReadWrite.All" New-MgBetaDirectorySetting -BodyParameter $params
グループの所有者を管理する
グループに所有者を追加するには、New-MgGroupOwner コマンドレットを使用します。
PS C:\Windows\system32> New-MgGroupOwner -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497 -DirectoryObjectId 92a0dad0-7c9e-472f-b2a3-0fe2c9a02867
-GroupId パラメーターは、所有者を追加するグループの ObjectID です。 -DirectoryObjectId は、所有者として追加するユーザーまたはサービス プリンシパルの ObjectID です。
グループの所有者を取得するには、Get-MgGroupOwner コマンドレットを使用します。
PS C:\Windows\system32> Get-MgGroupOwner -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497
コマンドレットは、指定したグループの所有者 (ユーザーおよびサービス プリンシパル) の一覧を返します。
Id DeletedDateTime
-- ---------------
8ee754e0-743e-4231-ace4-c28d20cf2841
85b1df54-e5c0-4cfd-a20b-8bc1a2ca7865
4451b332-2294-4dcf-a214-6cc805016c50
グループから所有者を削除する場合は、Remove-MgGroupOwnerByRef コマンドレットを使用します。
PS C:\Windows\system32> Remove-MgGroupOwnerByRef -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497 -DirectoryObjectId 92a0dad0-7c9e-472f-b2a3-0fe2c9a02867
予約済みのエイリアス
グループを作成するときに、ユーザーは、グループのメール アドレスの一部としてシステムが使用する mailNickname またはエイリアスを指定します。 高い特権を持つ電子メール エイリアスが一覧表示されているグループの作成は、Microsoft Entra グローバル管理者に限定されます。
- 濫用
- 管理者
- 管理者
- ホストマスター
- majordomo
- ポストマスタ
- 根
- secure
- 安全
- ssl-admin
- ウェブサイト管理者
オンプレミスへのグループの書き戻し
現在でも、多くのグループがオンプレミスの Active Directory で管理されています。 クラウド グループをオンプレミスに同期させたいというご要望にお応えするため、Microsoft Entra ID に、Microsoft Entra クラウド同期を使用したグループ書き戻し機能が実装されました。
重要
Microsoft Entra Connect Sync のグループ ライトバック v2 のパブリック プレビューは 、2024 年 6 月 30 日の時点で利用できなくなりました。 この機能はこの日に廃止され、クラウド セキュリティ グループを Active Directory にプロビジョニングするために Microsoft Entra Connect Sync でサポートされなくなりました。 この機能は、廃止日を超えて動作し続けます。ただし、サポートを受けなくなり、通知なしにいつでも機能を停止する可能性があります。
Microsoft Entra Cloud Sync には、Active Directory へのグループ プロビジョニングと呼ばれる同様の機能が用意されています。これは、クラウド セキュリティ グループを Active Directory にプロビジョニングするためにグループ書き戻し v2 の代わりに使用できます。 Microsoft Entra Cloud Sync のこの機能と、Microsoft Entra Cloud Sync で開発しているその他の新機能の強化に取り組んでいます。
Microsoft Entra Connect Sync でこのプレビュー機能を使用しているお客様は、 構成を Microsoft Entra Connect Sync から Microsoft Entra Cloud Sync に切り替える必要があります。すべてのハイブリッド同期を Microsoft Entra Cloud Sync に移動することを選択できます (ニーズがサポートされている場合)。 Microsoft Entra Cloud Sync をサイド バイ サイドで実行し、クラウド セキュリティ グループ プロビジョニングのみを Active Directory に Microsoft Entra Cloud Sync に移動することもできます。
Microsoft 365 グループを Active Directory にプロビジョニングするお客様は、この機能にグループ書き戻し v1 を使用し続けることができます。
ユーザー同期ウィザードを使用して、Microsoft Entra Cloud Sync への移動のみを評価できます。
次のステップ
その他の Microsoft Entra ID PowerShell ドキュメントについては、Microsoft Entra コマンドレットを参照してください。