Disabilitare l'accesso Microsoft 365 servizi durante l'assegnazione delle licenze utenteDisable access to Microsoft 365 services while assigning user licenses

Questo articolo si applica sia a Microsoft 365 Enterprise che a Office 365 Enterprise.This article applies to both Microsoft 365 Enterprise and Office 365 Enterprise.

Microsoft 365 sono disponibili piani di servizio per singoli servizi.Microsoft 365 subscriptions come with service plans for individual services. Microsoft 365 gli amministratori devono spesso disabilitare determinati piani quando assegnano licenze agli utenti.Microsoft 365 administrators often need to disable certain plans when assigning licenses to users. Con le istruzioni contenute in questo articolo, è possibile assegnare una licenza di Microsoft 365 disabilitando piani di servizio specifici tramite PowerShell per un singolo account utente o più account utente.With the instructions in this article, you can assign a Microsoft 365 license while disabling specific service plans using PowerShell for an individual user account or multiple user accounts.

Usare il modulo di Azure Active Directory PowerShell per GraphUse the Azure Active Directory PowerShell for Graph module

Prima di tutto, connettersi al tenant Microsoft 365 .First, connect to your Microsoft 365 tenant.

Successivamente, elencare i piani di licenza per il tenant con questo comando.Next, list the license plans for your tenant with this command.

Get-AzureADSubscribedSku | Select SkuPartNumber

Successivamente, ottenere il nome di accesso dell'account a cui si desidera aggiungere una licenza, noto anche come nome dell'entità utente (UPN).Next, get the sign-in name of the account to which you want add a license, also known as the user principal name (UPN).

Successivamente, compilare un elenco di servizi da abilitare.Next, compile a list of services to enable. Per un elenco completo dei piani di licenza (noti anche come nomi di prodotto), dei piani di servizio inclusi e dei nomi descrittivi corrispondenti, vedere Nomi dei prodotti e identificatori del piano di servizio per le licenze.For a complete list of license plans (also known as product names), their included service plans, and their corresponding friendly names, see Product names and service plan identifiers for licensing.

Per il blocco di comandi seguente, inserire il nome dell'entità utente dell'account utente, il numero della parte SKU e l'elenco dei piani di servizio per abilitare e rimuovere il testo esplicativo e i < and > caratteri.For the command block below, fill in the user principal name of the user account, the SKU part number, and the list of service plans to enable and remove the explanatory text and the < and > characters. Successivamente, eseguire i comandi risultanti nel prompt dei comandi di PowerShell.Then, run the resulting commands at the PowerShell command prompt.

$userUPN="<user account UPN>"
$skuPart="<SKU part number>"
$serviceList=<double-quoted enclosed, comma-separated list of enabled services>
$user = Get-AzureADUser -ObjectID $userUPN
$skuID= (Get-AzureADSubscribedSku  | Where {$_.SkuPartNumber -eq $skuPart}).SkuID
$SkuFeaturesToEnable = @($serviceList)
$StandardLicense = Get-AzureADSubscribedSku | Where {$_.SkuId -eq $skuID}
$SkuFeaturesToDisable = $StandardLicense.ServicePlans | ForEach-Object { $_ | Where {$_.ServicePlanName -notin $SkuFeaturesToEnable }}
$License = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$License.SkuId = $StandardLicense.SkuId
$License.DisabledPlans = $SkuFeaturesToDisable.ServicePlanId
$LicensesToAssign = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
$LicensesToAssign.AddLicenses = $License
Set-AzureADUserLicense -ObjectId $user.ObjectId -AssignedLicenses $LicensesToAssign

Usare il Modulo di Microsoft Azure Active Directory per Windows PowerShellUse the Microsoft Azure Active Directory Module for Windows PowerShell

Prima di tutto, connettersi al tenant Microsoft 365 .First, connect to your Microsoft 365 tenant.

Eseguire quindi questo comando per visualizzare le sottoscrizioni correnti:Next, run this command to see your current subscriptions:

Get-MsolAccountSku

Nota

PowerShell Core non supporta il modulo di Microsoft Azure Active Directory per Windows PowerShell e i cmdlet con MSOL all'interno del nome.PowerShell Core does not support the Microsoft Azure Active Directory Module for Windows PowerShell module and cmdlets with Msol in their name. Per continuare a usare i cmdlet, è necessario eseguirli in Windows PowerShell.To continue using these cmdlets, you must run them from Windows PowerShell.

Nella visualizzazione del comando Get-MsolAccountSku:In the display of the Get-MsolAccountSku command:

  • AccountSkuId è un abbonamento per l'organizzazione nel formato <OrganizationName>:<Subscription>.AccountSkuId is a subscription for your organization in <OrganizationName>:<Subscription> format. Il valore specificato al momento della registrazione a Microsoft 365 <OrganizationName> ed è univoco per l'organizzazione.The <OrganizationName> is the value that you provided when you enrolled in Microsoft 365, and is unique for your organization. Il valore <Subscription> è per una sottoscrizione specifica.The <Subscription> value is for a specific subscription. Ad esempio, per litwareinc:ENTERPRISEPACK, il nome dell'organizzazione è litwareinc e il nome della sottoscrizione è ENTERPRISEPACK (Office 365 Enterprise E3).For example, for litwareinc:ENTERPRISEPACK, the organization name is litwareinc, and the subscription name is ENTERPRISEPACK (Office 365 Enterprise E3).

  • ActiveUnits è il numero di licenze acquistate per la sottoscrizione.ActiveUnits is the number of licenses that you've purchased for the subscription.

  • WarningUnits è il numero di licenze in una sottoscrizione non rinnovata e che scadrà dopo il periodo di prova di 30 giorni.WarningUnits is the number of licenses in a subscription that you haven't renewed, and that will expire after the 30-day grace period.

  • ConsumedUnits è il numero di licenze assegnate agli utenti per la sottoscrizione.ConsumedUnits is the number of licenses that you've assigned to users for the subscription.

Nota accountSkuId per la sottoscrizione Microsoft 365 che contiene gli utenti di cui vuoi ottenere la licenza.Note the AccountSkuId for your Microsoft 365 subscription that contains the users you want to license. Inoltre, assicurarsi che siano disponibili licenze sufficienti da assegnare (sottrarre ConsumedUnits da ActiveUnits ).Also, ensure that there are enough licenses to assign (subtract ConsumedUnits from ActiveUnits ).

Eseguire quindi questo comando per visualizzare i dettagli sui piani di Microsoft 365 disponibili in tutte le sottoscrizioni:Next, run this command to see the details about the Microsoft 365 service plans that are available in all your subscriptions:

Get-MsolAccountSku | Select -ExpandProperty ServiceStatus

Dalla visualizzazione di questo comando, stabilire quali piani di servizio si desidera disattivare quando si assegnano le licenze agli utenti.From the display of this command, determine which service plans you would like to disable when you assign licenses to users.

Ecco un elenco parziale dei piani di servizio e dei servizi Microsoft 365 corrispondenti.Here is a partial list of service plans and their corresponding Microsoft 365 services.

Nella tabella seguente vengono illustrati i Microsoft 365 e i relativi nomi descrittivi per i servizi più comuni.The following table shows the Microsoft 365 service plans and their friendly names for the most common services. L'elenco dei piani di servizio degli utenti potrebbe essere diverso.Your list of service plans might be different.

Piano di servizioService plan DescrizioneDescription
SWAY
SwaySway
TEAMS1
Microsoft TeamsMicrosoft Teams
YAMMER_ENTERPRISE
YammerYammer
RMS_S_ENTERPRISE
Azure Rights Management (RMS)Azure Rights Management (RMS)
OFFICESUBSCRIPTION
Microsoft 365 Apps for enterprise (precedentemente denominato Office 365 ProPlus)Microsoft 365 Apps for enterprise (previously named Office 365 ProPlus)
MCOSTANDARD
Skype for Business OnlineSkype for Business Online
SHAREPOINTWAC
OfficeOffice
SHAREPOINTENTERPRISE
SharePoint OnlineSharePoint Online
EXCHANGE_S_ENTERPRISE
Exchange Online, piano 2Exchange Online Plan 2

Per un elenco completo dei piani di licenza (noti anche come nomi di prodotto), dei piani di servizio inclusi e dei nomi descrittivi corrispondenti, vedere Nomi dei prodotti e identificatori del piano di servizio per le licenze.For a complete list of license plans (also known as product names), their included service plans, and their corresponding friendly names, see Product names and service plan identifiers for licensing.

Dopo aver creato AccountSkuId e i piani di servizio da disabilitare, è possibile assegnare licenze per un singolo utente o per più utenti.Now that you have the AccountSkuId and the service plans to disable, you can assign licenses for an individual user or for multiple users.

Per un utente singoloFor a single user

Per un singolo utente, inserire il nome dell'entità utente dell'account utente, l'AccountSkuId e l'elenco dei piani di servizio per disabilitare e rimuovere il testo esplicativo e i < and > caratteri.For a single user, fill in the user principal name of the user account, the AccountSkuId, and the list of service plans to disable and remove the explanatory text and the < and > characters. Successivamente, eseguire i comandi risultanti nel prompt dei comandi di PowerShell.Then, run the resulting commands at the PowerShell command prompt.

$userUPN="<the user's account name in email format>"
$accountSkuId="<the AccountSkuId from the Get-MsolAccountSku command>"
$planList=@( <comma-separated, double-quote enclosed list of the service plans to disable> )
$licenseOptions=New-MsolLicenseOptions -AccountSkuId $accountSkuId -DisabledPlans $planList
Set-MsolUserLicense -UserPrincipalName $userUpn -AddLicenses $accountSkuId -ErrorAction SilentlyContinue
Sleep -Seconds 5
Set-MsolUserLicense -UserPrincipalName $userUpn -LicenseOptions $licenseOptions -ErrorAction SilentlyContinue

Ecco un blocco di comando di esempio per l'account denominato belindan@contoso.com, per la licenza contoso:ENTERPRISEPACK e i piani di servizio da disabilitare sono RMS_S_ENTERPRISE, SWAY, INTUNE_O365 e YAMMER_ENTERPRISE:Here is an example command block for the account named belindan@contoso.com, for the contoso:ENTERPRISEPACK license, and the service plans to disable are RMS_S_ENTERPRISE, SWAY, INTUNE_O365, and YAMMER_ENTERPRISE:

$userUPN="belindan@contoso.com"
$accountSkuId="contoso:ENTERPRISEPACK"
$planList=@( "RMS_S_ENTERPRISE","SWAY","INTUNE_O365","YAMMER_ENTERPRISE" )
$licenseOptions=New-MsolLicenseOptions -AccountSkuId $accountSkuId -DisabledPlans $planList
Set-MsolUserLicense -UserPrincipalName $userUpn -AddLicenses $accountSkuId -ErrorAction SilentlyContinue
Sleep -Seconds 5
Set-MsolUserLicense -UserPrincipalName $userUpn -LicenseOptions $licenseOptions -ErrorAction SilentlyContinue

Per più utentiFor multiple users

Per eseguire questa attività di amministrazione per più utenti, creare un file CSV contenente i campi UserPrincipalName e UsageLocation. Ecco un esempio:To perform this administration task for multiple users, create a comma-separated value (CSV) text file that contains the UserPrincipalName and UsageLocation fields. Here is an example:

UserPrincipalName,UsageLocation
ClaudeL@contoso.onmicrosoft.com,FR
LynneB@contoso.onmicrosoft.com,US
ShawnM@contoso.onmicrosoft.com,US

Successivamente, immettere il percorso dei file CSV di input e output, l'ID SKU dell'account e l'elenco dei piani di servizio da disabilitare, quindi eseguire i comandi risultanti nel prompt dei comandi di PowerShell.Next, fill in the location of the input and output CSV files, the account SKU ID, and the list of service plans to disable, and then run the resulting commands at the PowerShell command prompt.

$inFileName="<path and file name of the input CSV file that contains the users, example: C:\admin\Users2License.CSV>"
$outFileName="<path and file name of the output CSV file that records the results, example: C:\admin\Users2License-Done.CSV>"
$accountSkuId="<the AccountSkuId from the Get-MsolAccountSku command>"
$planList=@( <comma-separated, double-quote enclosed list of the plans to disable> )
$users=Import-Csv $inFileName
$licenseOptions=New-MsolLicenseOptions -AccountSkuId $accountSkuId -DisabledPlans $planList
ForEach ($user in $users)
{
$user.Userprincipalname
$upn=$user.UserPrincipalName
Set-MsolUserLicense -UserPrincipalName $upn -AddLicenses $accountSkuId -ErrorAction SilentlyContinue
sleep -Seconds 5
Set-MsolUserLicense -UserPrincipalName $upn -LicenseOptions $licenseOptions -ErrorAction SilentlyContinue
$users | Get-MsolUser | Select UserPrincipalName, Islicensed,Usagelocation | Export-Csv $outFileName
}

Blocco di comando di PowerShell:This PowerShell command block:

  • Visualizza il nome dell'entità utente di ogni utente.Displays the user principal name of each user.

  • Assegna licenze personalizzate a ogni utente.Assigns customized licenses to each user.

  • Crea un file CSV con tutti gli utenti che sono stati elaborati e mostra il relativo stato della licenza.Creates a CSV file with all the users that were processed and shows their license status.

Vedere ancheSee also

Disabilitare l'accesso Microsoft 365 servizi con PowerShellDisable access to Microsoft 365 services with PowerShell

Disabilitare l'accesso a Sway con PowerShellDisable access to Sway with PowerShell

Gestire gli account utente, le licenze e i gruppi di Microsoft 365 con PowerShellManage Microsoft 365 user accounts, licenses, and groups with PowerShell

Gestire Microsoft 365 con PowerShellManage Microsoft 365 with PowerShell