Назначение ролей администратора учетным записям пользователей 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 }