Отключение доступа к службам Microsoft 365 при назначении лицензий пользователейDisable access to Microsoft 365 services while assigning user licenses

Эта статья относится к Microsoft 365 корпоративный и Office 365 корпоративный.This article applies to both Microsoft 365 Enterprise and Office 365 Enterprise.

Подписки Microsoft 365 приходят с планами служб для отдельных служб.Microsoft 365 subscriptions come with service plans for individual services. Администраторам Microsoft 365 часто требуется отключить некоторые планы при назначении лицензий пользователям.Microsoft 365 administrators often need to disable certain plans when assigning licenses to users. С инструкциями в этой статье можно назначить лицензию Microsoft 365, отключив определенные планы службы с помощью PowerShell для отдельной учетной записи пользователя или нескольких учетных записей пользователей.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.

Использование модуля PowerShell Azure Active Directory для GraphUse the Azure Active Directory PowerShell for Graph module

Во-первых, подключите клиента Microsoft 365.First, connect to your Microsoft 365 tenant.

Далее перечислите планы лицензий для клиента с помощью этой команды.Next, list the license plans for your tenant with this command.

Get-AzureADSubscribedSku | Select SkuPartNumber

Далее получите имя входной записи, к которой нужно добавить лицензию, также именуемую главным именем пользователя (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).

Далее составить список служб, которые необходимо включить.Next, compile a list of services to enable. Полный список лицензионных планов (также известных как имена продуктов), включенных планов обслуживания и соответствующих дружественных имен см. в документе Имена продуктов и идентификаторы плана обслуживания для лицензирования.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.

В командном блоке ниже заполните основное имя пользователя учетной записи пользователя, номер части SKU и список планов служб, чтобы включить и удалить пояснительный текст и < and > символы.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. Затем выполните полученные команды в командной строке 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

Использование модуля Microsoft Azure Active Directory для Windows PowerShellUse the Microsoft Azure Active Directory Module for Windows PowerShell

Во-первых, подключите клиента Microsoft 365.First, connect to your Microsoft 365 tenant.

Затем запустите эту команду, чтобы увидеть текущие подписки:Next, run this command to see your current subscriptions:

Get-MsolAccountSku

Примечание

В PowerShell Core не поддерживается модуль Microsoft Azure Active Directory для Windows PowerShell и командлеты с компонентом Msol в имени.PowerShell Core does not support the Microsoft Azure Active Directory Module for Windows PowerShell module and cmdlets with Msol in their name. Чтобы использовать эти командлеты, необходимо запустить их из Windows PowerShell.To continue using these cmdlets, you must run them from Windows PowerShell.

Значение составляющих команды Get-MsolAccountSku:In the display of the Get-MsolAccountSku command:

  • AccountSkuId is a subscription for your organization in <OrganizationName>:<Subscription> format.AccountSkuId is a subscription for your organization in <OrganizationName>:<Subscription> format. Это значение, которое вы предоставили при регистрации в <OrganizationName> Microsoft 365, и является уникальным для вашей организации.The <OrganizationName> is the value that you provided when you enrolled in Microsoft 365, and is unique for your organization. The <Subscription> value is for a specific subscription.The <Subscription> value is for a specific subscription. For example, for litwareinc:ENTERPRISEPACK, the organization name is litwareinc, and the subscription name is 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 — количество лицензий, которые вы приобрели для подписки.ActiveUnits is the number of licenses that you've purchased for the subscription.

  • WarningUnits — количество лицензий для не продленной подписки, срок действия которой истекает через 30 дней льготного периода.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 — количество лицензий, которые вы назначили пользователям для подписки.ConsumedUnits is the number of licenses that you've assigned to users for the subscription.

Обратите внимание на учетную запись AccountSkuId для подписки Microsoft 365, которая содержит пользователей, которые необходимо лицензировать.Note the AccountSkuId for your Microsoft 365 subscription that contains the users you want to license. Убедитесь, что лицензий для назначения достаточно (отнимите ConsumedUnits от ActiveUnits ).Also, ensure that there are enough licenses to assign (subtract ConsumedUnits from ActiveUnits ).

Затем запустите эту команду, чтобы ознакомиться с подробными сведениями о планах служб Microsoft 365, доступных во всех подписках.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

Просмотрите результаты команды и определите, какие планы обслуживания нужно отключить при назначении лицензий пользователям.From the display of this command, determine which service plans you would like to disable when you assign licenses to users.

Вот неполный список планов служб и соответствующих служб Microsoft 365.Here is a partial list of service plans and their corresponding Microsoft 365 services.

В следующей таблице показаны планы служб Microsoft 365 и их дружественные имена для наиболее распространенных служб.The following table shows the Microsoft 365 service plans and their friendly names for the most common services. Ваш список планов обслуживания может отличаться.Your list of service plans might be different.

План обслуживанияService plan ОписаниеDescription
SWAY
SwaySway
TEAMS1
Microsoft TeamsMicrosoft Teams
YAMMER_ENTERPRISE
YammerYammer
RMS_S_ENTERPRISE
Azure Rights Management (RMS)Azure Rights Management (RMS)
OFFICESUBSCRIPTION
Приложения Microsoft 365 для предприятия (ранее названные Office 365 ProPlus)Microsoft 365 Apps for enterprise (previously named Office 365 ProPlus)
MCOSTANDARD
Skype для бизнеса OnlineSkype for Business Online
SHAREPOINTWAC
OfficeOffice
SHAREPOINTENTERPRISE
SharePoint OnlineSharePoint Online
EXCHANGE_S_ENTERPRISE
Exchange Online (план 2)Exchange Online Plan 2

Полный список лицензионных планов (также известных как имена продуктов), включенных планов обслуживания и соответствующих дружественных имен см. в документе Имена продуктов и идентификаторы плана обслуживания для лицензирования.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.

Теперь, когда у вас есть AccountSkuId и планы обслуживания, которые нужно отключить, вы можете назначить лицензии для одного или нескольких пользователей.Now that you have the AccountSkuId and the service plans to disable, you can assign licenses for an individual user or for multiple users.

Для одного пользователяFor a single user

Для одного пользователя заполните основное имя учетной записи пользователя, AccountSkuId и список планов служб по отключению и удалению пояснительных текстов и < and > символов.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. Затем выполните полученные команды в командной строке 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

Ниже приведен пример блока команд для учетной записи belindan@contoso.com. В этом случае указана лицензия contoso:ENTERPRISEPACK, а отключить нужно планы обслуживания RMS_S_ENTERPRISE, SWAY, INTUNE_O365 и 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

Для нескольких пользователейFor multiple users

Чтобы выполнить эту задачу администрирования для нескольких пользователей, создайте текстовый файл с разделителями-запятыми (CSV-файл), содержащий поля UserPrincipalName и UsageLocation. Пример: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

После этого укажите расположение входного и выходного CSV-файлов, ИД SKU учетной записи и список планов обслуживания, которые нужно отключить. Затем выполните полученные команды в командной строке 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
}

Что делает этот блок команд PowerShell:This PowerShell command block:

  • Отображает имя участника-пользователя для каждого пользователя.Displays the user principal name of each user.

  • Назначает настраиваемые лицензии для каждого пользователя.Assigns customized licenses to each user.

  • Создает CSV-файл со всеми обработанными пользователями и отображает состояние их лицензий.Creates a CSV file with all the users that were processed and shows their license status.

См. такжеSee also

Отключение доступа к службам Microsoft 365 с помощью PowerShellDisable access to Microsoft 365 services with PowerShell

Отключение доступа к Sway с помощью PowerShellDisable access to Sway with PowerShell

Управление учетными записями пользователей Microsoft 365, лицензиями и группами с помощью PowerShellManage Microsoft 365 user accounts, licenses, and groups with PowerShell

Управление Microsoft 365 с помощью PowerShellManage Microsoft 365 with PowerShell