Assegnare ruoli di amministratore agli account utente di Microsoft 365 con PowerShell

Questo articolo si applica sia a Microsoft 365 Enterprise che a Office 365 Enterprise.

È possibile assegnare facilmente ruoli agli account utente usando PowerShell per Microsoft 365.

Nota

Informazioni su come assegnare ruoli di amministratore agli account utente con il interfaccia di amministrazione di Microsoft 365.

Per un elenco di risorse aggiuntive, vedere Gestire utenti e gruppi.

Usare il modulo di Azure Active Directory PowerShell per Graph

Usare prima di tutto un amministratore del controller di dominio di Azure AD, un'applicazione cloud Amministrazione o un account amministratore globale per connettersi al tenant di Microsoft 365.

Per altre informazioni, vedere Informazioni sui ruoli di amministratore.

Identificare quindi il nome di accesso dell'account utente che si vuole aggiungere a un ruolo (ad esempio: fredsm@contoso.com). Questo nome è noto anche come nome dell'entità utente (UPN).

Successivamente, determinare il nome del ruolo. Vedere Ruoli predefiniti di Azure AD.

Nota

Prestare attenzione alle note in questo articolo. Alcuni nomi di ruolo sono diversi per Azure Active Directory (Azure AD) PowerShell. Ad esempio, il ruolo amministratore di SharePoint nel interfaccia di amministrazione di Microsoft 365 è Amministratore del servizio SharePoint in Azure AD PowerShell.

Compilare quindi i nomi di accesso e ruolo ed eseguire questi comandi:

$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

Di seguito è riportato un esempio di set di comandi completato che assegna il ruolo di amministratore del servizio SharePoint all'account belindan@contoso.com :

$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

Per visualizzare l'elenco dei nomi utente per un ruolo amministratore specifico, usare questi comandi.

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

Usare il Modulo di Microsoft Azure Active Directory per Windows PowerShell

Usare prima di tutto un account amministratore globale per connettersi al tenant di Microsoft 365.

Per una singola modifica del ruolo

I modi più comuni per specificare l'account utente sono l'uso del nome visualizzato o del nome di posta elettronica, noto anche come nome di accesso o nome dell'entità utente (UPN).

Visualizzare i nomi degli account utente

Se si usa l'uso dei nomi visualizzati degli account utente, determinare le informazioni seguenti:

  • Account utente da configurare

    Per specificare l'account utente, è necessario determinare il nome visualizzato. Per ottenere un elenco completo degli account, usare questo comando:

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

    Questo comando elenca il nome visualizzato degli account utente, ordinati per nome visualizzato, una schermata alla volta. È possibile filtrare l'elenco in un set più piccolo utilizzando il cmdlet Where. Vedere l'esempio seguente.

    Nota

    PowerShell Core non supporta il Modulo di Microsoft Azure Active Directory per Windows PowerShell e i cmdlet con Msol all'interno del nome. Eseguire questi cmdlet da Windows PowerShell.

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

    Questo comando elenca solo gli account utente per cui il nome visualizzato inizia con "John".

  • Il ruolo che si vuole assegnare

    Per visualizzare l'elenco dei ruoli di amministratore disponibili che è possibile assegnare agli account utente, usare questo comando:

    Get-MsolRole | Sort Name | Select Name,Description
    

Dopo aver determinato il nome visualizzato dell'account e il nome del ruolo, usare questi comandi per assegnare il ruolo all'account:

$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

Incollare i comandi nel Blocco note. Per le variabili $dispName e $roleName , sostituire il testo della descrizione con i relativi valori. Rimuovere i < caratteri e > ma mantenere le virgolette. Incollare le righe modificate nel modulo Microsoft Azure Active Directory per Windows PowerShell finestra per eseguirle. È anche possibile utilizzare Windows PowerShell Integrated Scripting Environment (ISE).

Ecco un esempio di set di comandi completato:

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

Nomi di accesso degli account utente

Se si usa l'uso dei nomi di accesso o degli UPN degli account utente, determinare le informazioni seguenti:

  • UPN dell'account utente

    Se non si conosce l'UPN, usare questo comando:

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

    Questo comando elenca l'UPN degli account utente, ordinato in base all'UPN, una schermata alla volta. È possibile usare il cmdlet Where per filtrare l'elenco. Ecco un esempio:

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

    Questo comando elenca solo gli account utente per cui il nome visualizzato inizia con "John".

  • Il ruolo che si vuole assegnare

    Per visualizzare l'elenco dei ruoli disponibili che è possibile assegnare agli account utente, usare questo comando:

    Get-MsolRole | Sort Name | Select Name,Description
    

Dopo aver creato l'UPN dell'account e il nome del ruolo, usare questi comandi per assegnare il ruolo all'account:

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

Copiare i comandi e incollarli nel blocco note. Per le variabili $upnName e $roleName . Sostituire il testo della descrizione con i relativi valori. Rimuovere i < caratteri e > ma mantenere le virgolette. Incollare le righe modificate in Microsoft Azure Active Directory modulo per Windows PowerShell finestra per eseguirle. In alternativa, è possibile usare il Windows PowerShell ISE.

Ecco un esempio di set di comandi completato:

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

Più modifiche al ruolo

Per più modifiche al ruolo, determinare le informazioni seguenti:

  • Account utente da configurare. È possibile usare i metodi nella sezione precedente per raccogliere il set di nomi visualizzati o UPN.

  • Ruoli che si desidera assegnare a ogni account utente. Per visualizzare l'elenco dei ruoli disponibili che è possibile assegnare agli account utente, usare questo comando:

    Get-MsolRole | Sort Name | Select Name,Description
    

Creare quindi un file di testo con valori delimitati da virgole (CSV) con il nome visualizzato o i campi UPN e nome del ruolo. È possibile eseguire questa operazione facilmente in Microsoft Excel.

Ecco un esempio per i nomi visualizzati:

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

Immettere infine il percorso del file CSV ed eseguire i comandi risultanti al prompt dei comandi di 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 }

Ecco un esempio per gli UPN:

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

Immettere infine il percorso del file CSV ed eseguire i comandi risultanti al prompt dei comandi di 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 }

Vedere anche