Управление группами в Azure AD и Microsoft 365 с помощью PowerShell

Для управления группами в Azure можно использовать графические порталы управления Azure Portal или Microsoft 365 Admin Center. В этой статье мы покажем, как создавать, изменять, обновлять и удалять группы в Azure AD и Microsoft 365 с помощью PowerShell.

Прежде всего нужно отменить, что в Azure (M365) есть несколько типов групп:

  • Группы безопасности Azure AD — используются для управления доступом к приложениям, ресурсам Azure. Такие группы можно предоставить доступ к приложению Azure, назначить политики или привязать лицензии (group-based licensing);
  • Группы Microsoft 365 (ранее назывались группы Office 365 ) – используются как универсальное средство организации доступа к различным продуктам Microsoft 365 (Teams, Yammer, PowerBI, SharePoint, общий ящик в Outlook). По сути, под группами M365 подразумеваются общая рабочая область для участников (команды). При добавлении пользователя в группу M365 он получает доступ ко всему контенту, опубликованному с момента создания группы. Пользователям в такой группе могут удобно обмениваться файлами, документами, рассылками, календарями и т.д.
  • Группы рассылки – используются для email рассылок;
  • Mail-enabled security groups – группы используются как для предоставления доступа, так и для почтовых рассылок.

Вы можете добавлять пользователей в группу Azure AD и Microsoft 365 вручную (assigned membership) или динамически (автоматическое добавление на основании атрибутов пользователя/устройства).

Создать группу безопасности Azure AD с помощью PowerShell

Группы безопасности Azure AD можно создать вручную или синхронизировать из on-prem AD. Рассмотрим, как создать группы безопасности Azure AD и добавить в них пользователей с помощью PowerShell.

Подключитесь к вашему тенанту Azure с помощью PowerShell модуля AzureAD :

Connect-AzureAD

Чтобы создать новую группу безопасности Azure, выполните команду:

New-AzureADGroup –DisplayName grVMadmins -SecurityEnabled $true -Description "Security Group for global VM admins" -MailEnabled $false -MailNickName "NotSet"

Дату создания группы в Azure AD можно получить через Graph API.

Чтобы получить информацию о группе, выполните:

Get-AzureADGroup -SearchString grVMadmins

Чтобы добавить пользователя в группу Azure AD, используйте команду Add-AzureADGroupMember .

Сначала необходимо получить ID пользователя и группы:

$GroupObj = Get-AzureADGroup -SearchString grVMadmins
$UserObj = Get-AzureADUser -SearchString [email protected]

И потом добавить ID пользователя в группу:

Add-AzureADGroupMember -ObjectId $GroupObj.ObjectId -RefObjectId $UserObj.ObjectId

Вывести состав членов группы:

$GroupObj = Get-AzureADGroup -SearchString grVMadmins
Get-AzureADGroupMember -ObjectId $GroupObj.ObjectId| select DisplayName,UserPrincipalName,UserType

Вы можете назначить владельца группы Azure с помощью Add-AzureADGroupOwner.

Add-AzureADGroupMember -ObjectId $GroupObj.ObjectId -RefObjectId $UserObj.ObjectId

Вывести владельца группы:

$GroupObj = Get-AzureADGroup -SearchString grVMadmins
Get-AzureADGroupOwner -ObjectId $GroupObj.ObjectId

Вывести все группы, синхронизированные из on-prem AD через Azure AD Connect (в параметре LastDirSyncTime содержится дата последней синхронизации).

Get-AzureADGroup -Filter 'DirSyncEnabled eq true' | select ObjectId,DisplayName,LastDirSyncTime

Управление группами Microsoft 365 с помощью PowerShell

Группы Microsoft 365 создаются автоматически с помощью приложений M365 (Teams, Share Point, Outlook, Yammer, и т.д.). По-умолчанию, группу Microsoft 365 может создать любой пользователь. Когда пользователь создает новую группу в Outlook или другом приложении (частную или общедоступную), создается ни что иное, как группа Microsoft 365. Группы Microsoft 365 доступны во всех сервисах M365.

Такая группа сразу появится в списке групп на портале Azure, и в Microsoft 365 Admin Center.

Для создания групп Microsoft 365 можно использовать командлет New-UnifiedGroup из модуля Exchange Online PowerShell (EXOv2) .

Подключитесь к тенанту:

Connect-ExchangeOnline

Чтобы создать новую группу M365, выполните команду:

New-UnifiedGroup -DisplayName "IT Department" -Alias "it_dept" -EmailAddresses [email protected] -AccessType Private

В M365 есть два типа групп:

  • Public – открытая группа. Любой пользователь можно присоединится к группе и получить доступ ко всему содержимому;
  • Private – частная группа, доступ только для членов группы. Добавить пользователя в закрытую группу может владелец группу или администратор Azure.

Чтобы добавить в группу пользователей или владельцев используется командлет Add-UnifiedGroupLinks. Добавим в группу пользователя и назначим его владельцем:

Add-UnifiedGroupLinks –Identity it_dept –LinkType Members –Links DiegoS
Add-UnifiedGroupLinks –Identity it_dept –LinkType Owners –Links DiegoS

Можно добавить подписчика в группу. Подписчик будет получать email уведомления:
Add-UnifiedGroupLinks –Identity it_dept –LinkType Subscribers –Links AlexD

Если нужно добавить в группу Microsoft 365 сразу несколько пользователей, можно импортировать их список из CSV файла :

Import-CSV "C:PSadd_m365_members.csv" | ForEach-Object {
Add-UnifiedGroupLinks –Identity it_dept –LinkType Members –Links $_.member
}

Вывести всех пользователей в группе:

Get-UnifiedGroupLinks –Identity it_dept –LinkType Members

Показать владельцев группы:

Get-UnifiedGroupLinks –Identity it_dept –LinkType Owners

Можно скрыть группу M365 в глобальной адресной книге (GAL):

Set-UnifiedGroup -Identity it_dept -HiddenFromAddressListsEnabled $true

Создаем динамические группы в Azure AD с помощью PowerShell

Вы можете создать динамическую группу пользователей или устройств в Azure AD. Состав такой группы определяется динамически на основании атрибутов пользователей Azure. Динамическое членство поддерживается для групп безопасности Azure, так и для групп Microsoft 365. Для создания динамических групп используется командлет New-AzureADMSGroup из модуля AzureAD.

Для использования динамических групп нужна лицензия Azure AD Premium P1 или P2.

Например, вы можете сделать динамическую группу, которая включает в себя всех пользователей из Москвы (user.city -eq «Moscow»), у которых в должности указано (user.jobTitle -like “инженер”). Создадим динамическую группу безопасности Azure для этого примера:

New-AzureADMSGroup -Description "msk_engineers" -DisplayName "All MSK IT engineers (dyn)" -MailEnabled $false -SecurityEnabled $true -MailNickname msk_engineers -GroupTypes "DynamicMembership" -MembershipRule "(user.city -eq ""Moscow"" -and user.jobTitle -contains ""инженер"")" -MembershipRuleProcessingState "On"

К сожалению, модуль AzureAD при попытке запустить такую команду возвращает ошибку:
New-AzureADMSGroup : A parameter cannot be found that matches parameter name 'MembershipRule'.

Чтобы создать динамическую группу в Azure, пока приходится использовать модуль AzureADPreview:
Import-Module AzureADPreview
get-command New-AzureADMSGroup

Для создания динамической группы Microsoft 365, нужно указать тип группы Unified :

New-AzureADMSGroup -DisplayName "M365 Admins" -Description "Dynamic Microsoft 365 Group for tenant administrators" -MailEnabled $True -SecurityEnabled $True -MailNickname M365GAdmins -GroupTypes "DynamicMembership", "Unified" -MembershipRule "(User.JobTitle -eq ""Microsoft 365 Administrator"")" -MembershipRuleProcessingState "On

Состав динамических групп в организации обновляется при изменении свойств любого пользователя или устройства. Если вы вносите массовые изменения в AD, импортируете большое количество пользователей, или еще как-то меняете архитектуру групп/пользователей, желательно временно приостановить автоматическое обновление динамических групп:

$dynGroupObj = Get-AzureADMSGroup -SearchString “All MSK IT engineers (dyn)”
Set-AzureADMSGroup -Id $dynGroupObj.id -MembershipRuleProcessingState "Paused"

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

Set-AzureADMSGroup -Id $dynGroupObj.id -MembershipRuleProcessingState "On"

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

Тип Атрибут Пример
Bool accountEnabled user.accountEnabled -eq true
Bool dirSyncEnabled user.dirSyncEnabled -eq true
String city (user.city -eq “значение”)
String country (user.country -eq “значение”)
String companyName (user.companyName -eq “значение”)
String department (user.department -eq “значение”)
String displayName (user.displayName -eq “значение”)
String employeeId (user.employeeId -eq “значение”)
String facsimileTelephoneNumber (user.facsimileTelephoneNumber -eq “значение”)
String givenName (user.givenName -eq “значение”)
String jobTitle (user.jobTitle -eq “значение”)
String mail (user.mail -eq “значение”)
String mailNickName (user.mailNickName -eq “значение”)
String mobile (user.mobile -eq “значение”)
String objectId (user.objectId -eq “значение”)
String onPremisesSecurityIdentifier (user.onPremisesSecurityIdentifier -eq “значение”)
String passwordPolicies (user.passwordPolicies -eq “DisableStrongPassword”)
String physicalDeliveryOfficeName (user.physicalDeliveryOfficeName -eq “значение”)
String postalCode (user.postalCode -eq “значение”)
String preferredLanguage (user.preferredLanguage -eq “ru-RU”)
String sipProxyAddress (user.sipProxyAddress -eq “значение”)
String state (user.state -eq “значение”)
String streetAddress (user.streetAddress -eq “значение”)
String surname (user.surname -eq “значение”)
String telephoneNumber (user.telephoneNumber -eq “значение”)
String usageLocation (user.usageLocation -eq “US”)
String userPrincipalName (user.userPrincipalName -eq “ [email protected] ”)
String userType (user.userType -eq “Member”)
String collection otherMails (user.otherMails -contains “ [email protected] ”)
String collection proxyAddresses (user.proxyAddresses -contains “SMTP: [email protected] ”)
В on-prem Active Directory вы можете использовать только динамические группы распространения (рассылки) Exchange . Создать динамические группы безопасности можно только с помощью скриптов PowerShell (см. пример ). Подробнее про управление группами в наземном Active Directory из PowerShell .
admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 недели ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 недели ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 недели ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 недели ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 недели ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 недели ago