グループ管理用の 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                     : 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df
    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」を参照してください。

グループを作成する

新しいグループをディレクトリに作成するには、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                     : 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df
    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

グループ メンバーシップを管理する

メンバーを追加する

新しいメンバーをグループに追加するには、Add-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
--                                   ---------------
71b3857d-2a23-416d-bd22-a471854ddada
fd2d57c7-22ad-42cd-961a-7340fb2eb6b4

メンバーの削除

グループに以前追加したメンバーを削除するには、ここに示したように、Remove-MgGroupMember コマンドレットを使用します。

    PS C:\Windows\system32> Remove-MgGroupMemberByRef -DirectoryObjectId 053a6a7e-4a75-48bc-8324-d70f50ec0d91 -GroupId 2c52c779-8587-48c5-9d4a-c474f2a66cf4

メンバーを確認する

ユーザーのグループ メンバーシップを確認するには、Select-MgGroupIdsUserIsMemberOf コマンドレットを使用します。 このコマンドレットは、グループ メンバーシップを確認する対象のユーザーの ObjectId、およびメンバーシップを確認する対象のグループの一覧を、パラメーターとして使用します。 グループの一覧は “Microsoft.Open.AzureAD.Model.GroupIdsForMembershipCheck” 型の複合変数の形式に指定する必要があるため、最初にその型で変数を作成する必要があります。

Get-MgUserMemberOf -UserId 053a6a7e-4a75-48bc-8324-d70f50ec0d91

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 の設定で制御できるのは、[マイ アプリ] アクセス パネルでの動作だけです。

管理者以外のユーザーによるグループの作成を無効にするには、次のようにします。

  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 全体管理者だけです。 

  • abuse
  • admin
  • administrator
  • hostmaster
  • majordomo
  • postmaster
  • root
  • secure
  • security
  • ssl-admin
  • webmaster

オンプレミスへのグループの書き戻し (プレビュー)

現在でも、多くのグループがオンプレミスの Active Directory で管理されています。 クラウド グループをオンプレミスに同期するという要望に応えるために、Microsoft Entra ID の Microsoft 365 グループ書き戻し機能がプレビューで利用できるようになりました。

Microsoft 365 グループはクラウドで作成および管理されます。 書き戻し機能を使用すると、Exchange がインストールされている Active Directory フォレストに Microsoft 365 グループを配布グループとして書き戻すことができます。 オンプレミスの Exchange メールボックスを持つユーザーは、これらのグループとの間で電子メールを送受信できます。 グループの書き戻し機能は、Microsoft Entra のセキュリティ グループや配布グループをサポートしていません。

詳細については、Microsoft Entra Connect の同期サービスに関するドキュメントを参照してください。

Microsoft 365 のグループの書き戻しは、Microsoft Entra ID のパブリック プレビュー機能であり、すべての有料 Microsoft Entra ID ライセンス プランに付属しています。 プレビューの詳細については、オンライン サービスのユニバーサル ライセンス条項に関するページを参照してください。

次のステップ

Azure Active Directory PowerShell のその他のドキュメントについては、Microsoft Entra コマンドレットに関する記事を参照してください。