Deshabilitar el acceso a los servicios de Microsoft 365 al asignar licencias de usuario

Este artículo afecta tanto a Office 365 Enterprise como a Microsoft 365 Enterprise

Las suscripciones de Microsoft 365 incluyen planes de servicio para servicios individuales. Los administradores de Microsoft 365 suelen tener que deshabilitar determinados planes al asignar licencias a los usuarios. Con las instrucciones de este artículo, puede asignar una licencia de Microsoft 365 al deshabilitar planes de servicio específicos mediante PowerShell para una cuenta de usuario individual o varias cuentas de usuario.

Use el módulo de PowerShell Azure Active Directory para Graph

En primer lugar, conéctese a su inquilino de Microsoft 365.

A continuación, enumere los planes de licencia del inquilino con este comando.

Get-AzureADSubscribedSku | Select SkuPartNumber

A continuación, obtenga el nombre de inicio de sesión de la cuenta a la que desea agregar una licencia, también conocida como nombre principal de usuario (UPN).

A continuación, compile una lista de servicios para habilitar. Para obtener una lista completa de los planes de licencia (también conocidos como nombres de producto), sus planes de servicio incluidos y sus nombres descriptivos correspondientes, consulte Nombres de producto e identificadores de plan de servicio para licencias.

Para el bloque de comandos siguiente, rellene el nombre principal de usuario de la cuenta de usuario, el número de parte de SKU y la lista de planes de servicio para habilitar y quitar el texto explicativo y los < caracteres y > . A continuación, ejecute los comandos resultantes en el símbolo del sistema de PowerShell.

$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

Use el Módulo Microsoft Azure Active Directory para Windows PowerShell

En primer lugar, conéctese a su inquilino de Microsoft 365.

A continuación, ejecute este comando para ver las suscripciones actuales:

Get-MsolAccountSku

Nota:

PowerShell Core no es compatible con el Módulo Microsoft Azure Active Directory para Windows PowerShell ni los cmdlet que llevan Msol en su nombre. Para seguir usando estos cmdlets, debe ejecutarlos desde Windows PowerShell.

En la presentación del Get-MsolAccountSku comando:

  • AccountSkuId es una suscripción para su organización en <formato OrganizationName>:<Subscription> . OrganizationName <> es el valor que proporcionó al inscribirse en Microsoft 365 y es único para su organización. El <valor de Suscripción> es para una suscripción específica. Por ejemplo, para litwareinc:ENTERPRISEPACK, el nombre de la organización es litwareinc y el nombre de la suscripción es ENTERPRISEPACK (Office 365 Enterprise E3).

  • ActiveUnits es el número de licencias que ha comprado para la suscripción.

  • WarningUnits es el número de licencias de una suscripción que no ha renovado y que expirarán después del período de gracia de 30 días.

  • ConsumedUnits es el número de licencias que ha asignado a los usuarios para la suscripción.

Tenga en cuenta el AccountSkuId de la suscripción de Microsoft 365 que contiene los usuarios que desea licenciar. Además, asegúrese de que hay suficientes licencias para asignar (reste ConsumedUnits de ActiveUnits).

A continuación, ejecute este comando para ver los detalles sobre los planes de servicio de Microsoft 365 que están disponibles en todas las suscripciones:

Get-MsolAccountSku | Select -ExpandProperty ServiceStatus

En la presentación de este comando, determine qué planes de servicio desea deshabilitar al asignar licencias a los usuarios.

Esta es una lista parcial de los planes de servicio y sus servicios de Microsoft 365 correspondientes.

En la tabla siguiente se muestran los planes de servicio de Microsoft 365 y sus nombres descriptivos para los servicios más comunes. Su lista de planes de servicio puede ser diferente.

Plan de servicio Descripción
SWAY
Sway
TEAMS1
Microsoft Teams
YAMMER_ENTERPRISE
Viva Engage
RMS_S_ENTERPRISE
Azure Rights Management (RMS)
OFFICESUBSCRIPTION
Aplicaciones Microsoft 365 para empresas (anteriormente denominado Office 365 ProPlus)
MCOSTANDARD
Skype Empresarial Online
SHAREPOINTWAC
Office
SHAREPOINTENTERPRISE
SharePoint Online
EXCHANGE_S_ENTERPRISE
Plan 2 de Exchange Online

Para obtener una lista completa de los planes de licencia (también conocidos como nombres de producto), sus planes de servicio incluidos y sus nombres descriptivos correspondientes, consulte Nombres de producto e identificadores de plan de servicio para licencias.

Ahora que tiene accountSkuId y los planes de servicio para deshabilitar, puede asignar licencias para un usuario individual o para varios usuarios.

Para un único usuario

Para un único usuario, rellene el nombre principal de usuario de la cuenta de usuario, accountSkuId y la lista de planes de servicio para deshabilitar y quitar el texto explicativo y los < caracteres y > . A continuación, ejecute los comandos resultantes en el símbolo del sistema de PowerShell.

$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

Este es un bloque de comandos de ejemplo para la cuenta denominada belindan@contoso.com, para la licencia contoso:ENTERPRISEPACK y los planes de servicio que se van a deshabilitar son RMS_S_ENTERPRISE, SWAY, INTUNE_O365 y 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

Para varios usuarios

Para realizar esta tarea de administración para varios usuarios, cree un archivo de texto de valores separados por comas (CSV) que contenga los campos UserPrincipalName y UsageLocation. A continuación le mostramos un ejemplo:

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

A continuación, rellene la ubicación de los archivos CSV de entrada y salida, el identificador de SKU de la cuenta y la lista de planes de servicio que se van a deshabilitar y, a continuación, ejecute los comandos resultantes en el símbolo del sistema de PowerShell.

$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
}

Este bloque de comandos de PowerShell:

  • Muestra el nombre principal de usuario de cada usuario.

  • Asigna licencias personalizadas a cada usuario.

  • Crea un archivo CSV con todos los usuarios que se procesaron y muestra su estado de licencia.

Vea también

Deshabilitar el acceso a los servicios de Microsoft 365 con PowerShell

Deshabilitar el acceso a Sway con PowerShell

Administrar cuentas de usuario, licencias y grupos de Microsoft 365 con PowerShell

Administrar Microsoft 365 con PowerShell