次の方法で共有


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

Microsoft Entra の一部である Microsoft Entra ID で、グループのメンバーシップを静的から動的 (またはその逆) に変更できます。 Microsoft Entra ID は、システム内で同じグループ名と ID を維持するため、グループに対するすべての既存の参照は、引き続き有効です。 新しいグループを作成する場合は、これらの参照を更新する必要があります。 動的メンバーシップ グループの作成は、ユーザーの追加と削除という管理オーバーヘッドを排除します。 この記事では、ポータルまたは PowerShell コマンドレットを使用して、既存のグループを静的メンバーシップ グループから動的メンバーシップ グループに変換する方法について説明します。 Microsoft Entra では、1 つのテナントに最大 15,000 個の動的メンバーシップ グループを含めることができます。

警告

既存の静的グループを動的グループに変更すると、すべての既存のメンバーがグループから削除され、新しいメンバーを追加するためにメンバーシップ ルールが処理されます。 グループを使用してアプリまたはリソースへのアクセスを制御している場合、メンバーシップ ルールが完全に処理されるまで、元のメンバーはアクセス権を失う場合があることに注意してください。

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

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

次の手順は、少なくともグループ管理者ロールが割り当てられているアカウントを使用して実行できます。

  1. グループ管理者以上の権限で Microsoft Entra 管理センターにサインインします。
  2. [Microsoft Entra ID] を選びます。
  3. グループ
  4. [すべてのグループ] の一覧から、変更するグループを開きます。
  5. [プロパティ] を選択します。
  6. グループの [プロパティ] ページで、目的のメンバーシップの種類に応じて、[割り当て済み] (静的)、[動的ユーザー]、または [動的なデバイス] の [メンバーシップの種類] を選びますす。 動的メンバーシップ グループの場合は、ルール ビルダーを使用して簡単なルールのオプションを選択したり、メンバーシップ ルールを自分で作成したりすることができます。

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

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

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

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

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

  3. ルールを作成した後、ページの下部にある [クエリの追加] を選びます。

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

ヒント

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

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

Note

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

既存のグループにおいてメンバーシップの管理を切り替える関数を次に示します。 この例では、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: i) change GroupTypes to remove the dynamic type, ii) 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: i) change GroupTypes to add the dynamic type, ii) start execution of the rule, iii) 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"""

次のステップ

これらの記事では、Microsoft Entra ID でのグループに関する追加情報が提供されています。