使用 PowerShell 从用户帐户中删除 Microsoft 365 许可证
此文章适用于 Microsoft 365 企业版和 Office 365 企业版。
注意
了解如何使用 Microsoft 365 管理中心从用户帐户中删除许可证。 有关其他资源的列表,请参阅 管理用户和组。
使用 Microsoft Graph PowerShell SDK
首先, 连接到 Microsoft 365 租户。
为用户分配和删除许可证需要 User.ReadWrite.All 权限范围或“分配许可证”图形 API参考页中列出的其他权限之一。
读取租户中可用的许可证需要 Organization.Read.All 权限范围。
Connect-Graph -Scopes User.ReadWrite.All, Organization.Read.All
若要查看组织中的许可计划信息,请参阅以下文章:
从用户帐户中删除许可证
要从现有的用户帐户中删除许可证,请使用以下语法:
Set-MgUserLicense -UserId "<Account>" -RemoveLicenses @("<AccountSkuId1>") -AddLicenses @{}
此示例从用户 BelindaN@litwareinc.com中删除SPE_E5 (Microsoft 365 E5) 许可计划:
$e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'
Set-MgUserLicense -UserId "belindan@litwareinc.com" -RemoveLicenses @($e5Sku.SkuId) -AddLicenses @{}
若要从一组现有许可用户中删除所有许可证,请使用以下语法:
$licensedUsers = Get-MgUser -Filter 'assignedLicenses/$count ne 0' `
-ConsistencyLevel eventual -CountVariable licensedUserCount -All `
-Select UserPrincipalName,DisplayName,AssignedLicenses
foreach($user in $licensedUsers)
{
$licensesToRemove = $user.AssignedLicenses | Select -ExpandProperty SkuId
$user = Set-MgUserLicense -UserId $user.UserPrincipalName -RemoveLicenses $licensesToRemove -AddLicenses @{}
}
若要从文本文件中的用户列表中删除特定许可证,请执行以下步骤。 此示例从文本文件 C:\My Documents\Accounts.txt 中定义的用户帐户中删除 SPE_E5 (Microsoft 365 企业版 E5) 许可证。
创建文本文件并将其保存到 C:\My Documents\Accounts.txt,每行包含一个帐户,如下所示:
akol@contoso.com tjohnston@contoso.com kakers@contoso.com
使用以下命令:
$x=Get-Content "C:\My Documents\Accounts.txt" $e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5' for ($i=0; $i -lt $x.Count; $i++) { Set-MgUserLicense -UserId $x[$i] -RemoveLicenses @($e5Sku.SkuId) -AddLicenses @{} }
释放许可证的另一种方法是删除用户帐户。 有关详细信息,请参阅 使用 PowerShell 删除和还原用户帐户。
另请参阅
使用 PowerShell 管理 Microsoft 365 用户帐户、许可证和组