次の方法で共有


Microsoft Entra でのグループ管理用のバージョン 2 コマンドレット

この記事では、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 の設定は、マイ グループ ポータルでの動作のみを制御します。

標準ユーザーのグループ作成を無効にするには:

  1. 標準ユーザーがグループの作成を許可されていることを確認します。

    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
    
  2. 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 コマンドレットを参照してください。