在指派使用者授權時停用對Microsoft 365服務的存取

本文適用於 Microsoft 365 企業版和 Office 365 企業版。

Microsoft 365訂用帳戶隨附個別服務的服務方案。 Microsoft 365系統管理員通常需要在將授權指派給使用者時停用特定方案。 透過本文中的指示,您可以在針對個別使用者帳戶或多個使用者帳戶使用 PowerShell 停用特定服務方案時,指派Microsoft 365授權。

針對 Graph 模組,請使用 Azure Active Directory PowerShell

首先,連線到您的Microsoft 365租使用者

接下來,使用此命令列出租使用者的授權方案。

Get-AzureADSubscribedSku | Select SkuPartNumber

接下來,取得您要新增授權之帳戶的登入名稱,也稱為 UPN) (使用者主體名稱。

接下來,編譯要啟用的服務清單。 如需授權方案的完整清單 (也稱為產品名稱) 、其包含的服務方案及其對應的易記名稱,請參閱 授權的產品名稱和服務方案識別碼

針對下列命令區塊,填入使用者帳戶的使用者主體名稱、SKU 元件編號,以及啟用和移除解說文字和 < and > 字元的服務方案清單。 然後,在 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

使用適用於 Windows PowerShell 的 Microsoft Azure Active Directory 模組。

首先,連線到您的Microsoft 365租使用者

接下來,執行此命令以查看您目前的訂用帳戶:

Get-MsolAccountSku

注意

PowerShell Core 不支援適用於 Windows PowerShell 的 Microsoft Azure Active Directory 模組和名稱有 Msol 的 Cmdlet。 若要繼續使用這些 Cmdlet,您必須從 Windows PowerShell 執行。

在 命令的顯示中 Get-MsolAccountSku

  • AccountSkuId 是貴組織的訂用 <OrganizationName> 帳戶: <Subscription> 格式。 <OrganizationName>是您在Microsoft 365註冊時所提供的值,對您的組織而言是唯一的。 此 <Subscription> 值適用于特定訂用帳戶。 例如,針對 litwareinc:ENTERPRISEPACK,組織名稱是 litwareinc,而訂用帳戶名稱為 ENTERPRISEPACK (Office 365 企業版 E3) 。

  • ActiveUnits 是您為訂用帳戶購買的授權數目。

  • WarningUnits 是您尚未更新之訂用帳戶中的授權數目,且將在 30 天寬限期之後到期。

  • ConsumedUnits 是您指派給訂用帳戶使用者的授權數目。

請記下您Microsoft 365訂用帳戶的 AccountSkuId,其中包含您想要授權的使用者。 此外,請確定有足夠的授權可指派 (從 ActiveUnits) 減去 ConsumedUnits

接下來,執行此命令,以查看所有訂用帳戶中可用Microsoft 365服務方案的詳細資料:

Get-MsolAccountSku | Select -ExpandProperty ServiceStatus

從此命令的顯示中,判斷當您將授權指派給使用者時,您想要停用哪些服務方案。

以下是服務方案的部分清單及其對應的Microsoft 365服務。

下表顯示Microsoft 365服務方案及其最常見服務的易記名稱。 您的服務方案清單可能不同。

服務計劃 描述
SWAY
Sway
TEAMS1
Microsoft Teams
YAMMER_ENTERPRISE
Yammer
RMS_S_ENTERPRISE
Azure 版權管理 (RMS)
OFFICESUBSCRIPTION
Microsoft 365 Apps 企業版 (先前命名為 Office 365 專業增強版)
MCOSTANDARD
商務用 Skype Online
SHAREPOINTWAC
Office
SHAREPOINTENTERPRISE
SharePoint Online
EXCHANGE_S_ENTERPRISE
Exchange Online Plan 2

如需授權方案的完整清單 (也稱為產品名稱) 、其包含的服務方案及其對應的易記名稱,請參閱 授權的產品名稱和服務方案識別碼

既然您已經有 AccountSkuId 和要停用的服務方案,您可以為個別使用者或多個使用者指派授權。

單一使用者

對於單一使用者,請填入使用者帳戶的使用者主體名稱、AccountSkuId,以及要停用和移除解說文字和 < and > 字元的服務方案清單。 然後,在 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

以下是名為 belindan@contoso.com 的帳戶 contoso:ENTERPRISEPACK 授權的範例命令區塊,而要停用的服務方案為 RMS_S_ENTERPRISE、SWAY、INTUNE_O365 和 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

針對多個使用者

若要為多位使用者執行此管理工作,請 (包含 UserPrincipalName 和 UsageLocation 欄位的 CSV) 文字檔建立逗號分隔值。 範例如下:

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

接下來,填寫輸入和輸出 CSV 檔案的位置、帳戶 SKU 識別碼,以及要停用的服務方案清單,然後在 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
}

此 PowerShell 命令區塊:

  • 顯示每個使用者的使用者主體名稱。

  • 將自訂授權指派給每個使用者。

  • 建立 CSV 檔案,其中包含已處理並顯示其授權狀態的所有使用者。

另請參閱

使用 PowerShell 停用對Microsoft 365服務的存取

使用 PowerShell 停用存取Sway

以 PowerShell 管理 Microsoft 365 使用者帳戶、授權和群組

使用 PowerShell 管理 Microsoft 365