グループ管理用の Microsoft Entra バージョン 2 のコマンドレット
この記事では、PowerShell を使用して、Microsoft Entra の一部である Microsoft Entra ID でグループを管理する方法の例を掲載しています。 また、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
注意
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 Administrators" グループの 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 Device Administrators" に変更します。
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 であり、-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 を使用すると、指定されたグループの一覧の連絡先、グループ、またはサービス プリンシパルのメンバーシップを確認することもできます。
ユーザーによるグループの作成を無効にする
管理者以外のユーザーがセキュリティ グループを作成できないようにできます。 MS Online Directory Service (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 全体管理者だけです。
- abuse
- admin
- administrator
- hostmaster
- majordomo
- postmaster
- root
- secure
- security
- ssl-admin
- webmaster
オンプレミスへのグループの書き戻し
現在でも、多くのグループがオンプレミスの Active Directory で管理されています。 クラウド グループをオンプレミスに同期するという要望に応えるために、Microsoft Entra クラウド同期を使用した Microsoft Entra ID のグループ 書き戻し機能が利用できるようになりました。
重要
Microsoft Entra Connect Sync のグループ ライトバック v2 のパブリック プレビューは、2024 年 6 月 30 日以降は利用できなくなります。 この機能はこの日に廃止され、クラウド セキュリティ グループを Active Directory にプロビジョニングするために Connect Sync でサポートされなくなります。 この機能は、提供終了日を過ぎても引き続き動作しますが、この日以降はサポートを受けなくなり、常に予告なしに機能しなくなる可能性があります。
Microsoft Entra Cloud Sync には、Active Directory へのグループ プロビジョニングと呼ばれる同様の機能が用意されています。これは、クラウド セキュリティ グループを Active Directory にプロビジョニングするためにグループ書き戻し v2 の代わりに使用できます。 Cloud Sync で開発しているその他の新機能と共に、Cloud Sync でこの機能の強化に取り組んでいます。
Connect Sync でこのプレビュー機能を使用しているお客様は、構成を Connect Sync から Cloud Sync に切り替える必要があります。すべてのハイブリッド同期を Cloud Sync に移動することを選択できます (ニーズがサポートされている場合)。 また、クラウド同期をサイド バイ サイドで実行し、クラウド セキュリティ グループ のプロビジョニングのみを Active Directory に Cloud Sync に移動することもできます。
Microsoft 365 グループを Active Directory にプロビジョニングするお客様は、この機能にグループ書き戻し v1 を使用し続けることができます。
ユーザー同期ウィザードを使用して、Cloud Sync への移動のみを評価できます。
次のステップ
Azure Active Directory PowerShell のその他のドキュメントについては、Microsoft Entra コマンドレットに関する記事を参照してください。