Использование PowerShell в Office 365 для удаления лицензий из учетных записей пользователейRemove licenses from user accounts with Office 365 PowerShell

Сводка: В этой статье объясняется, как использовать PowerShell для Office 365 для удаления лицензий Office 365, которые ранее были назначены пользователям.Summary: Explains how to use Office 365 PowerShell to remove Office 365 licenses that were previously assigned to users.

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

Сначала подключитесь к своему клиенту Office 365.First, connect to your Office 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 for which you want remove a license, also known as the user principal name (UPN).

Наконец, укажите имена пользователей для входа и планов лицензирования, удалите символы "Лт" и "Гт", а затем выполните следующие команды.Finally, specify the user sign-in and license plan names, remove the "<" and ">" characters, and run these commands.

$userUPN="<user sign-in name (UPN)>"
$planName="<license plan name from the list of license plans>"
$license = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$licenses = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
$license.SkuId = (Get-AzureADSubscribedSku | Where-Object -Property SkuPartNumber -Value $planName -EQ).SkuID
$licenses.AddLicenses = $license
Set-AzureADUserLicense -ObjectId $userUPN -AssignedLicenses $licenses
$Licenses.AddLicenses = @()
$Licenses.RemoveLicenses =  (Get-AzureADSubscribedSku | Where-Object -Property SkuPartNumber -Value $planName -EQ).SkuID
Set-AzureADUserLicense -ObjectId $userUPN -AssignedLicenses $licenses

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

Сначала подключитесь к своему клиенту Office 365.First, connect to your Office 365 tenant.

Сведения о плане лицензирования (AccountSkuID ) в Организации можно просмотреть в следующих разделах:To view the licensing plan (AccountSkuID ) information in your organization, see the following topics:

Если использовать командлет Get-MsolUser без параметра -All, возвращаются только первые 500 учетных записей.If you use the Get-MsolUser cmdlet without using the -All parameter, only the first 500 accounts are returned.

Удаление лицензий из учетных записей пользователейRemoving licenses from user accounts

Чтобы удалить лицензии из учетной записи пользователя, используйте следующий синтаксис:To remove licenses from an existing user account, use the following syntax:

Set-MsolUserLicense -UserPrincipalName <Account> -RemoveLicenses "<AccountSkuId1>", "<AccountSkuId2>"...

В этом примере удаляется лицензия litwareinc:ENTERPRISEPACK (Office 365 корпоративный E3) из учетной записи пользователя BelindaN@litwareinc.com.This example removes the litwareinc:ENTERPRISEPACK (Office 365 Enterprise E3) license from the user account BelindaN@litwareinc.com.

Set-MsolUserLicense -UserPrincipalName belindan@litwareinc.com -RemoveLicenses "litwareinc:ENTERPRISEPACK"

Чтобы удалить лицензии из группы лицензированных пользователей, используйте один из следующих способов:To remove licenses from a group of existing licensed users, use either of the following methods:

  • Фильтрация учетных записей на основе существующего атрибута учетной записи Для этого используйте следующий синтаксис:Filter the accounts based on an existing account attribute To do this, use the following syntax:
$x = Get-MsolUser -All <FilterableAttributes> | where {$_.isLicensed -eq $true}
$x | foreach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicenses "<AccountSkuId1>", "<AccountSkuId2>"...}

В этом примере показано litwareinc:ENTERPRISEPACK , как удалить лицензии (Office 365 корпоративный E3) из всех учетных записей для пользователей в отделе продаж в США.This example removes the litwareinc:ENTERPRISEPACK (Office 365 Enterprise E3) licenses from all accounts for users in the Sales department in the United States.

$USSales = Get-MsolUser -All -Department "Sales" -UsageLocation "US" | where {$_.isLicensed -eq $true}
$USSales | foreach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicenses "litwareinc:ENTERPRISEPACK"}
  • Использование списка определенных учетных записей Для этого выполните указанные ниже действия.Use a list of specific accounts To do this, perform the following steps:
  1. Создайте и сохраните текстовый файл, в котором в каждой строке будет по одной учетной записи, как в примере ниже.Create and save a text file that contains one account on each line like this:
akol@contoso.com
tjohnston@contoso.com
kakers@contoso.com
  1. Используйте следующий синтаксис:Use the following syntax:
Get-Content "<FileNameAndPath>" | ForEach { Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicenses "<AccountSkuId1>", "<AccountSkuId2>"... }

В этом примере удаляется лицензия litwareinc:ENTERPRISEPACK (Office 365 корпоративный E3) из учетных записей пользователей, определенных в текстовом файле "\ мои Documents\Accounts.txt.".This example removes the litwareinc:ENTERPRISEPACK (Office 365 Enterprise E3) license from the user accounts defined in the text file C:\My Documents\Accounts.txt.

Get-Content "C:\My Documents\Accounts.txt" | ForEach { Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicenses "litwareinc:ENTERPRISEPACK" }

Чтобы удалить лицензии из всех учетных записей пользователей, используйте следующий синтаксис:To remove licenses from all existing user accounts, use the following syntax:

$x = Get-MsolUser -All  | Where {$_.isLicensed -eq $true}
$x | ForEach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicenses "<AccountSkuId1>", "<AccountSkuId2>"...}

В этом примере удаляется лицензия litwareinc:ENTERPRISEPACK (Office 365 корпоративный E3) со всех существующих лицензированных учетных записей пользователей.This example removes the litwareinc:ENTERPRISEPACK (Office 365 Enterprise E3) license from all existing licensed user accounts.

$x = Get-MsolUser -All  | Where {$_.isLicensed -eq $true}
$x | ForEach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicenses "litwareinc:ENTERPRISEPACK"}

Еще один способ освободить лицензию — удалить учетную запись пользователя.Another way to free up a license is by deleting the user account. Дополнительные сведения см. в статье Удаление и восстановление учетных записей пользователей с помощью Office 365 PowerShell.For more information, see Delete and restore user accounts with Office 365 PowerShell.

См. такжеSee also

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

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

Начало работы с Office 365 PowerShellGetting started with Office 365 PowerShell

Никогда не работали с Office 365?New to Office 365?

Совет

Логотип LinkedIn Впервые в Office 365?LinkedIn logo New to Office 365?

Ознакомьтесь с бесплатными видеокурсами для администраторов Office 365 и ИТ-специалистов, предоставленными на платформе LinkedIn Learning.Discover free video courses for Office 365 admins and IT pros, brought to you by LinkedIn Learning.