使用 Office 365 PowerShell 移除使用者帳戶中的授權

 

適用版本:Office 365 Enterprise, Office 365 Midsize Business, Office 365 Small Business

上次修改主題的時間:2017-05-17

說明如何使用 Office 365 PowerShell 移除先前指派給使用者的 Office 365 授權。

本節僅呈現程序,但不提供詳盡或多餘的說明。如果您有任何問題或需要詳細資訊,您可以閱讀本主題的其餘部分。

若要移除現有使用者帳戶中的授權,使用下列語法:

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

此範例會刪除使用者帳戶 BelindaN@litwareinc.com 的 litwareinc:ENTERPRISEPACK (Office 365 Enterprise E3) 授權。

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

若要移除現有的經授權使用者群組的授權,使用下列方法之一:

  • 根據現有的帳戶屬性篩選帳戶   若要這麼做,使用下列語法:

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

    此範例會移除美國境內銷售部門中所有使用者帳戶的 litwareinc:ENTERPRISEPACK (Office 365 Enterprise E3) 授權。

    $USSales = Get-MsolUser -All -Department "Sales" -UsageLocation "US" | where {$_.isLicensed -eq $true}; $USSales | foreach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicenses "litwareinc:ENTERPRISEPACK"}
    
  • 使用特定帳戶清單   若要這樣做,執行下列步驟:

    1. 建立一個每一行一個帳戶的文字檔,像這樣:

      akol@contoso.com
      tjohnston@contoso.com
      kakers@contoso.com
      
    2. 使用下列語法:

      Get-Content "<FileNameAndPath>" | Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicenses "<AccountSkuId1>", "<AccountSkuId2>"...
      

      此範例會移除 C:\My Documents\Accounts.txt 文字檔案中定義的使用者帳戶的 litwareinc:ENTERPRISEPACK (Office 365 Enterprise E3) 授權。

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

若要移除所有現有使用者帳戶中的授權,使用下列語法:

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

此範例會移除所有現有經授權使用者帳戶的 litwareinc:ENTERPRISEPACK (Office 365 Enterprise E3) 授權。

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

沒有什麼是永久的,Office 365 授權也一樣:您遲早都必須從使用者帳戶中移除此授權。也許是因為使用者離職,也許是因為使用者不再需要此授權;總之,移除使用者授權的原因可說是百百種。

在繼續深入討論前,請您注意,想要移除授權,您必須做的不外乎就是移除授權:停用授權的所有服務,並不等同於移除授權本身。例如,假設我們已經用完所有的 Office 365 授權;換句話說,我們已完全沒有可用的授權。您決定要遵循<使用 Office 365 PowerShell 停用服務存取權>的程序停用某個帳戶 (例如 Belinda Newman) 的所有服務。執行此操作後,我們將會有多少個可用的授權?沒錯:零。是的,上述主題中的程序會停用與 Belinda 的授權相關的所有服務,但是不會停用 (即刪除) 授權本身。授權將仍然有效,並且仍然指派給 Belinda Newman。她只是無法使用該授權存取任何 Office 365 服務而已。

重點是:如果您想要從使用者移除某個授權,您必須實際移除該授權。停用所有服務會讓使用者無法登入 Office 365,但不會釋出其授權。如果您想要收回目前指派給使用者的授權,您將需要執行如下的命令;此命令會使用 RemoveLicenses 參數實際移除指派給 Belinda 的授權:

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

執行該命令之後,Belinda Newman 就不再被授權使用 Office 365。

註記注意事項:
您可以看到,當您使用 RemoveLicenses 參數時,您必須指定要移除之授權的名稱。如果您不確定是使用哪個授權方案將授權指派給使用者,則應執行如下的命令:
Get-MsolUser -UserPrincipalName BelindaN@litwareinc.com | Format-List DisplayName,Licenses

若要驗證授權已確實移除,請使用 Get-MsolUser 檢查使用者帳戶:

Get-MsolUser -UserPrincipalName BelindaN@litwareinc.com

如果一切都如預期運作,Belinda 的 isLicensed 屬性現在應會設為 False

UserPrincipalName            DisplayName         isLicensed
-----------------            -----------         ----------
BelindaN@litwareinc.com      Newman, Belinda     False

另一個釋出授權的方式,是刪除使用者帳戶。如需詳細資訊,請參閱<使用 Office 365 PowerShell 刪除及還原使用者帳戶>。

 
顯示: