Tilldela administratörsroller till Microsoft 365-användarkonton med PowerShell
Denna artikel gäller för både Microsoft 365 Enterprise och Office 365 Enterprise.
Du kan enkelt tilldela roller till användarkonton med hjälp av PowerShell för Microsoft 365.
Obs!
Lär dig hur du tilldelar administratörsroller till användarkonton med Administrationscenter för Microsoft 365.
En lista över ytterligare resurser finns i Hantera användare och grupper.
Tilldela roller till användarkonton med hjälp av Microsoft Graph PowerShell
Obs!
Azure Active Directory-modulen ersätts av Microsoft Graph PowerShell SDK. Du kan använda Microsoft Graph PowerShell SDK för att komma åt alla Microsoft Graph API:er. Mer information finns i Komma igång med Microsoft Graph PowerShell SDK.
Använd först ett Microsoft Entra DC-administratör eller cloud application Admin-konto för att ansluta till din Microsoft 365-klientorganisation. Cmdletarna i den här artikeln kräver behörighetsomfånget RoleManagement.ReadWrite.Directory eller någon av de andra behörigheterna som anges i "List subscribedSkus" Graph API referenssida. Vissa kommandon i den här artikeln kan kräva olika behörighetsomfång, i vilket fall detta anges i det relevanta avsnittet.
Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory"
Mer information finns i Om administratörsroller.
Identifiera sedan inloggningsnamnet för det användarkonto som du vill lägga till i en roll (exempel: fredsm@contoso.com). Detta kallas även användarens huvudnamn (UPN).
Bestäm sedan namnet på rollen. Se Microsoft Entra inbyggda roller.
Obs!
Vissa rollnamn skiljer sig åt för Azure Active Directory (Azure AD) PowerShell. SharePoint-administratörsrollen i Administrationscenter för Microsoft 365 är till exempel SharePoint-tjänstadministratör i Azure AD PowerShell.
Fyll sedan i upn- och rollnamnen för användaren och kör följande kommandon:
$userUPN="<user UPN>"
$roleName="<role name>"
$role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
if ($role -eq $null) {
$roleTemplate = (Get-MgDirectoryRoleTemplate | Where-Object {$_.displayName -eq $roleName}).id
New-MgDirectoryRole -DisplayName $roleName -RoleTemplateId $roleTemplate
$role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
}
$userId = (Get-MgUser -Filter "userPrincipalName eq '$userUPN'").Id
$newRoleMember =@{
"@odata.id"= "https://graph.microsoft.com/v1.0/users/$userId"
}
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $newRoleMember
Här är ett exempel på en slutförd kommandouppsättning som tilldelar exchange-administratörsrollen adelev@contoso.com till kontot:
$userUPN="adelev@contoso.com"
$roleName="Exchange Administrator"
$role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
if ($role -eq $null) {
$roleTemplate = (Get-MgDirectoryRoleTemplate | Where-Object {$_.displayName -eq $roleName}).id
New-MgDirectoryRole -DisplayName $roleName -RoleTemplateId $roleTemplate
$role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
}
$userId = (Get-MgUser -Filter "userPrincipalName eq '$userUPN'").Id
$newRoleMember =@{
"@odata.id"= "https://graph.microsoft.com/v1.0/users/$userId"
}
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $newRoleMember
Om du vill visa listan över användar-ID:t för en specifik administratörsroll använder du dessa kommandon.
$roleName="<role name>"
Connect-MgGraph -Scopes "Directory.Read.All"
Get-MgDirectoryRole | Where-Object { $_.DisplayName -eq $roleName } | ForEach-Object { Get-MgDirectoryRoleMember -DirectoryRoleId $_.Id }