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, molnprogram Admin eller ett globalt administratörskonto 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!

Var uppmärksam på anteckningarna i den här artikeln. 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 rollen SharePoint-tjänstadministratör till belindan@contoso.com 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 }

Se även