次の方法で共有


Microsoft Entra ID で静的グループを動的メンバーシップ グループに変更する

Microsoft Entra ID では、グループのメンバーシップを静的から動的 (またはその逆) に変更できます。 Microsoft Entra ID は、システム内で同じグループ名と ID を維持するため、グループに対するすべての既存の参照は、引き続き有効です。 代わりに新しいグループを作成する場合は、それらの参照を更新する必要があります。

動的メンバーシップ グループを作成すると、ユーザーの追加と削除の管理オーバーヘッドがなくなります。 この記事では、Azure portal または PowerShell コマンドレットを使用して、既存のメンバーシップ グループを静的から動的に変換する方法について説明します。 Microsoft Entra では、1 つのテナントに最大 15,000 個の動的メンバーシップ グループを含めることができます。

警告

既存の静的グループを動的グループに変更すると、既存のすべてのメンバーがグループから削除されます。 その後、メンバーシップ ルールが処理され、新しいメンバーが追加されます。 グループを使用してアプリまたはリソースへのアクセスを制御すると、メンバーシップ ルールが完全に処理されるまで、元のメンバーがアクセスできなくなる可能性があります。

グループの新しいメンバーシップが予期したとおりのものになるように、事前に新しいメンバーシップ ルールをテストすることをお勧めします。 テスト中にエラーが発生した場合は、「グループ ライセンスの問題を解決する」をご覧ください。

[前提条件]

  • ポータルを使用してメンバーシップの種類を変更するには、少なくとも グループ管理者 ロールを持つアカウントが必要です。

  • PowerShell を使用して動的グループのプロパティを変更するには、Microsoft Graph PowerShell モジュールのコマンドレットを使用する必要があります。 詳細については、「Microsoft Graph PowerShell SDKをインストールする」を参照してください。

グループのメンバーシップの種類を変更する (ポータル)

  1. Microsoft Entra 管理センターに、少なくともグループ管理者としてサインインします。

  2. [Microsoft Entra ID] を選びます。

  3. [グループ] を選びます。

  4. [ すべてのグループ ] 一覧で、変更するグループを開きます。

  5. [プロパティ] を選択します。

  6. グループの [プロパティ ] ページで、目的の メンバーシップの種類 に応じて、 割り当て済み (静的)動的ユーザー、または 動的デバイスのメンバーシップの種類の値を選択します。 動的メンバーシップ グループの場合は、ルール ビルダーを使用して簡単なルールのオプションを選択したり、メンバーシップ ルールを自分で作成したりすることができます。

    次の手順は、ユーザーのグループを静的メンバーシップ グループから動的メンバーシップ グループに変更する例です。

    1. [ メンバーシップの種類] で、[ 動的ユーザー] を選択します。 動的メンバーシップ グループの変更を説明するダイアログで、[ はい ] を選択して続行します。

      動的ユーザーのメンバーシップの種類を選択するスクリーンショット。

    2. [動的クエリの追加] を選び、ルールを指定します。

      動的グループのルールを入力するスクリーンショット。

  7. ルールを作成したら、[クエリの 追加] を選択します。

  8. グループの [プロパティ ] ページで、[ 保存] を選択して変更を保存します。 グループの一覧でグループの [メンバーシップの種類] がすぐに更新されます。

ヒント

入力したメンバーシップ ルールが正しくない場合、グループ変換が失敗する可能性があります。 ポータルの右上隅に、ルールを受け入れられない理由が通知で示されます。 それをよく読み、有効にするためにできる調整の方法を理解してください。 規則の構文の例、およびメンバーシップ規則用のサポートされているプロパティ、演算子、値の完全な一覧については、「Microsoft Entra ID で動的メンバーシップ グループの規則を管理する」をご覧ください。

グループのメンバーシップの種類を変更する (PowerShell)

既存のグループのメンバーシップ管理を切り替える関数の例を次に示します。 この例では、動的メンバーシップ グループに関係のない値を保持するために、 GroupTypes プロパティを正しく操作します。

#The moniker for dynamic membership groups, as used in the GroupTypes property of a group object
$dynamicGroupTypeString = "DynamicMembership"

function ConvertDynamicGroupToStatic
{
    Param([string]$groupId)

    #Existing group types
    [System.Collections.ArrayList]$groupTypes = (Get-MgGroup -GroupId $groupId).GroupTypes

    if($groupTypes -eq $null -or !$groupTypes.Contains($dynamicGroupTypeString))
    {
        throw "This group is already a static group. Aborting conversion.";
    }


    #Remove the type for dynamic membership groups, but keep the other type values
    $groupTypes.Remove($dynamicGroupTypeString)

    #Modify the group properties to make it a static group: change GroupTypes to remove the dynamic type, and then pause execution of the current rule
    Update-MgGroup -GroupId $groupId -GroupTypes $groupTypes.ToArray() -MembershipRuleProcessingState "Paused"
}

function ConvertStaticGroupToDynamic
{
    Param([string]$groupId, [string]$dynamicMembershipRule)

    #Existing group types
    [System.Collections.ArrayList]$groupTypes = (Get-MgGroup -GroupId $groupId).GroupTypes

    if($groupTypes -ne $null -and $groupTypes.Contains($dynamicGroupTypeString))
    {
        throw "This group is already a dynamic group. Aborting conversion.";
    }
    #Add the dynamic group type to existing types
    $groupTypes.Add($dynamicGroupTypeString)

    #Modify the group properties to make it a static group: change GroupTypes to add the dynamic type, start execution of the rule, and then set the rule
    Update-MgGroup -GroupId $groupId -GroupTypes $groupTypes.ToArray() -MembershipRuleProcessingState "On" -MembershipRule $dynamicMembershipRule
}

グループを静的にするには、次のコマンドを使用します。

ConvertDynamicGroupToStatic "a58913b2-eee4-44f9-beb2-e381c375058f"

グループを動的にするには、次のコマンドを使用します。

ConvertStaticGroupToDynamic "a58913b2-eee4-44f9-beb2-e381c375058f" "user.displayName -startsWith ""Peter"""