Назначение ролей администратора учетным записям пользователей Microsoft 365 с помощью PowerShell

Эта статья относится к Microsoft 365 корпоративный и Office 365 корпоративный.

Вы можете легко назначать роли учетным записям пользователей с помощью PowerShell для Microsoft 365.

Примечание.

Узнайте, как назначать роли администратора учетным записям пользователей с помощью Центр администрирования Microsoft 365.

Список дополнительных ресурсов см. в разделе Управление пользователями и группами.

Использование модуля PowerShell Azure Active Directory для Graph

Сначала используйте Azure AD администратора контроллера домена, Администратор облачного приложения или учетную запись глобального администратора для подключения к клиенту Microsoft 365.

Дополнительные сведения см. в статье О ролях администраторов.

Затем укажите имя для входа учетной записи пользователя, которую вы хотите добавить в роль (например, fredsm@contoso.com). Это также называется именем участника-пользователя (UPN).

После этого определите имя роли. См. Azure AD встроенные роли.

Примечание.

Обратите внимание на примечания в этой статье. Некоторые имена ролей для Azure Active Directory (Azure AD) PowerShell отличаются. Например, роль администратора SharePoint в Центр администрирования Microsoft 365 — администратор службы SharePoint в Azure AD PowerShell.

Затем введите имена ролей и входа и выполните следующие команды:

$userName="<sign-in name of the account>"
$roleName="<admin role name>"
$role = Get-AzureADDirectoryRole | Where {$_.displayName -eq $roleName}
if ($role -eq $null) {
$roleTemplate = Get-AzureADDirectoryRoleTemplate | Where {$_.displayName -eq $roleName}
Enable-AzureADDirectoryRole -RoleTemplateId $roleTemplate.ObjectId
$role = Get-AzureADDirectoryRole | Where {$_.displayName -eq $roleName}
}
Add-AzureADDirectoryRoleMember -ObjectId $role.ObjectId -RefObjectId (Get-AzureADUser | Where {$_.UserPrincipalName -eq $userName}).ObjectID

Ниже приведен пример завершенного набора команд, который назначает учетной записи роль belindan@contoso.com администратора службы SharePoint:

$userName="belindan@contoso.com"
$roleName="SharePoint Service Administrator"
$role = Get-AzureADDirectoryRole | Where {$_.displayName -eq $roleName}
if ($role -eq $null) {
$roleTemplate = Get-AzureADDirectoryRoleTemplate | Where {$_.displayName -eq $roleName}
Enable-AzureADDirectoryRole -RoleTemplateId $roleTemplate.ObjectId
$role = Get-AzureADDirectoryRole | Where {$_.displayName -eq $roleName}
}
Add-AzureADDirectoryRoleMember -ObjectId $role.ObjectId -RefObjectId (Get-AzureADUser | Where {$_.UserPrincipalName -eq $userName}).ObjectID

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

$roleName="<role name>"
Get-AzureADDirectoryRole | Where { $_.DisplayName -eq $roleName } | Get-AzureADDirectoryRoleMember | Ft DisplayName

Использование модуля Microsoft Azure Active Directory для Windows PowerShell

Сначала используйте учетную запись глобального администратора для подключения к клиенту Microsoft 365.

Изменение одной роли

Наиболее распространенный способ указать учетную запись пользователя — использовать ее отображаемое имя или имя электронной почты, которое также называется именем входа или именем участника-пользователя (UPN).

Отображение имен учетных записей пользователей

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

  • Учетная запись пользователя, которую вы хотите настроить

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

    Get-MsolUser -All | Sort DisplayName | Select DisplayName | More
    

    Эта команда выводит учетные записи пользователей, отсортированное по отображаемому имени, по одному экрану за раз. Вы можете отфильтровать список, используя командлет Where. См. следующий пример.

    Примечание.

    В PowerShell Core не поддерживается модуль Microsoft Azure Active Directory для Windows PowerShell и командлеты, имена которых содержат Msol. Эти командлеты требуется запускать из Windows PowerShell.

    Get-MsolUser -All | Where DisplayName -like "John*" | Sort DisplayName | Select DisplayName | More
    

    Эта команда выводит только учетные записи пользователей, отображаемое имя которых начинается со слова "John".

  • Роль, которую вы хотите назначить

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

    Get-MsolRole | Sort Name | Select Name,Description
    

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

$dispName="<The Display Name of the account>"
$roleName="<The admin role name you want to assign to the account>"
Add-MsolRoleMember -RoleMemberEmailAddress (Get-MsolUser -All | Where DisplayName -eq $dispName).UserPrincipalName -RoleName $roleName

Вставьте команды в Блокнот. Для переменных $dispName и $roleName замените текст описания их значениями. Удалите символы < и , > но оставьте кавычки. Вставьте измененные строки в окно модуль Microsoft Azure Active Directory для Windows PowerShell, чтобы запустить их. Кроме того, можно использовать интегрированную среду сценариев Windows PowerShell.

Ниже приведен пример завершенного набора команд:

$dispName="Scott Wallace"
$roleName="SharePoint Service Administrator"
Add-MsolRoleMember -RoleMemberEmailAddress (Get-MsolUser -All | Where DisplayName -eq $dispName).UserPrincipalName -RoleName $roleName

Имена входа учетных записей пользователей

Если вы привыкли работать с именами входа или именами участника-пользователя учетных записей пользователей, определите следующие сведения:

  • Имя участника-пользователя учетной записи пользователя

    Если вы не знаете имя участника-пользователя, используйте следующую команду:

    Get-MsolUser -All | Sort UserPrincipalName | Select UserPrincipalName | More
    

    Эта команда выводит список имени участника-пользователя учетных записей пользователей, отсортированных по имени участника-пользователя, по одному экрану за раз. Для фильтрации списка можно использовать командлет Where . Пример:

    Get-MsolUser -All | Where DisplayName -like "John*" | Sort UserPrincipalName | Select UserPrincipalName | More
    

    Эта команда выводит только учетные записи пользователей, отображаемое имя которых начинается со слова "John".

  • Роль, которую вы хотите назначить

    Чтобы отобразить список доступных ролей, используйте эту команду:

    Get-MsolRole | Sort Name | Select Name,Description
    

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

$upnName="<The UPN of the account>"
$roleName="<The role name you want to assign to the account>"
Add-MsolRoleMember -RoleMemberEmailAddress $upnName -RoleName $roleName

Скопируйте команды в Блокнот. Переменные $upnName и $roleName . Замените текст описания их значениями. Удалите символы < и , > но оставьте кавычки. Вставьте измененные строки в модуль Microsoft Azure Active Directory для Windows PowerShell окна, чтобы запустить их. Кроме того, можно использовать Windows PowerShell ISE.

Ниже приведен пример завершенного набора команд:

$upnName="scottw@contoso.com"
$roleName="SharePoint Service Administrator"
Add-MsolRoleMember -RoleMemberEmailAddress $upnName -RoleName $roleName

Несколько изменений ролей

Для нескольких изменений ролей определите следующие сведения:

  • Какие учетные записи пользователей вы хотите настроить. Методы из предыдущего раздела можно использовать для сбора набора отображаемых имен или имен участников-пользователей.

  • Какие роли вы хотите назначить каждой учетной записи пользователя. Чтобы отобразить список доступных ролей, используйте эту команду:

    Get-MsolRole | Sort Name | Select Name,Description
    

Затем создайте текстовый файл с раздели-запятыми (CSV), который содержит отображаемое имя или имя участника-пользователя и имя роли. Это можно легко сделать в Microsoft Excel.

Ниже приведен пример отображаемых имен:

DisplayName,RoleName
"Belinda Newman","Billing Administrator"
"Scott Wallace","SharePoint Service Administrator"

Затем укажите расположение CSV-файла и запустите получившиеся команды в командной строке PowerShell.

$fileName="<path and file name of the input CSV file that has the role changes, example: C:\admin\RoleUpdates.CSV>"
$roleChanges=Import-Csv $fileName | ForEach {Add-MsolRoleMember -RoleMemberEmailAddress (Get-MsolUser | Where DisplayName -eq $_.DisplayName).UserPrincipalName -RoleName $_.RoleName }

Ниже приведен пример для имен субъектов-служб.

UserPrincipalName,RoleName
"belindan@contoso.com","Billing Administrator"
"scottw@contoso.com","SharePoint Service Administrator"

Затем укажите расположение CSV-файла и запустите получившиеся команды в командной строке PowerShell.

$fileName="<path and file name of the input CSV file that has the role changes, example: C:\admin\RoleUpdates.CSV>"
$roleChanges=Import-Csv $fileName | ForEach { Add-MsolRoleMember -RoleMemberEmailAddress $_.UserPrincipalName -RoleName $_.RoleName }

См. также