Командлеты Microsoft Entra версии 2 для управления группами

В этой статье содержатся примеры использования PowerShell для управления группами в идентификаторе Microsoft Entra, части Microsoft Entra. Он также рассказывает, как настроиться с помощью модуля 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 можно использовать для получения определенной группы, для которой указывается идентификатор объекта группы:

    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

Примечание.

Командлеты MgGroup PowerShell реализуют стандарт запроса OData. Дополнительные сведения см. в разделе $filter статьи OData system query options using the OData endpoint (Параметры системных запросов OData с использованием конечной точки OData).

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

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. В этом примере изменяется свойство DisplayName группы Intune Administrators. Сначала мы находим группу с помощью командлета 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 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

Управление членством в группах

Добавить участников

Чтобы добавить новых участников в группу, используйте командлет New-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
--                                   ---------------
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. В качестве параметров этот командлет принимает идентификатор объекта пользователя, для которого выполняется проверка членства в группах, и список групп, в которых проверяется членство. Список групп необходимо указать в форме сложной переменной типа 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

Отключение создания групп пользователями

Вы можете запретить пользователям без прав администратора создавать группы безопасности. По умолчанию в службе каталогов MS Online (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
  • администрирование
  • administrator
  • hostmaster
  • majordomo
  • postmaster
  • root
  • secure
  • security
  • ssl-admin
  • webmaster

Обратная запись групп в локальную среду

Сейчас многие группы по-прежнему управляются в Active Directory локально. Чтобы ответить на запросы синхронизации облачных групп обратно с локальной средой, функция обратной записи групп для идентификатора Microsoft Entra с помощью облачной синхронизации Microsoft Entra теперь доступна.

Внимание

Общедоступная предварительная версия групповой обратной записи версии 2 в Microsoft Entra Connect Sync больше не будет доступна после 30 июня 2024 г. С этого дня поддержка этой функции будет прекращена, и Connect Sync больше не будет поддерживать предоставление облачных групп безопасности в Active Directory. Функция будет продолжать работать и после даты прекращения поддержки; однако после этой даты она больше не будет поддерживаться и может прекратить работу в любое время без предварительного уведомления.

В Microsoft Entra Cloud Sync мы предлагаем аналогичную функцию под названием Подготовка группы в Active Directory, которую можно использовать вместо обратной записи группы версии 2 для подготовки облачных групп безопасности в Active Directory. Мы работаем над улучшением этой функции в Cloud Sync вместе с другими новыми функциями, которые мы разрабатываем в Cloud Sync.

Клиенты, использующие эту предварительную версию функции в Connect Sync, должны переключить конфигурацию с Connect Sync на Cloud Sync. Вы можете переместить всю гибридную синхронизацию в Cloud Sync (если она поддерживает ваши потребности). Вы также можете запустить Cloud Sync параллельно и перенести в Cloud Sync только подготовку облачной группы безопасности из Active Directory.

Для клиентов, которые подготавливают группы Microsoft 365 в Active Directory, можно продолжать использовать функцию обратной записи группы версии 1 для этой возможности.

Вы можете оценить переход исключительно на Cloud Sync, используя мастер синхронизации пользователей.

Следующие шаги

Дополнительные сведения о Azure Active Directory PowerShell см. в командлетах Microsoft Entra.