Изменение статических групп на динамические группы членства в Microsoft Entra ID

Обзор

Членство в группе можно изменить с статического на динамическую (или наоборот) в Microsoft Entra ID. Microsoft Entra ID сохраняет одинаковое имя и идентификатор группы в системе, поэтому все существующие ссылки на группу по-прежнему допустимы. Если вы создаете новую группу вместо этого, необходимо обновить эти ссылки.

Создание динамических групп членства устраняет затраты на управление добавлением и удалением пользователей. В этой статье показано, как преобразовать существующие группы членства из статического в динамический с помощью портала Azure или командлетов PowerShell. В Microsoft Entra один клиент может иметь не более 15 000 динамических групп членства.

Замечание

При преобразовании статической группы в динамическую группу членства существующие члены, которые соответствуют правилу членства, остаются. Участники, которые не соответствуют требованиям, удаляются. Другие пользователи, удовлетворяющие правилу членства, добавляются автоматически. Если группа используется для управления доступом к приложениям или ресурсам, исходные члены могут потерять доступ, пока правило членства не будет полностью обработано.

Проверьте новое правило членства заранее, чтобы убедиться, что новое членство в группе соответствует ожиданиям. Если во время теста возникают ошибки, см. статью "Устранение проблем с лицензией группы".

Предпосылки

  • Чтобы изменить тип членства с помощью портала, требуется учетная запись, которая имеет по крайней мере роль администратора групп .

  • Чтобы изменить свойства динамической группы с помощью PowerShell, необходимо использовать командлеты из модуля PowerShell Microsoft Graph. Дополнительные сведения см. в разделе Install 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"""