ライセンスプランとサービスとは
Office365 には様々なライセンスプランがあり、ライセンスプラン内には多数のサービスが含まれている。
たとえば Office 365 E1 というライセンスプラン内には、Exhange Online、SharePoint Online、Teams、Sway、などなど様々なサービスが含まれている。
Powershell でライセンスプラン内のサービスを無効にする
例えば、ユーザに対して Office 365 E1 ライセンスは有効にするが、そこに含まれる Sway は使わせたくない、というような要望があるだろう。このような要望にはツールが用意されている。
Office 365 PowerShell を使ったサービスへのアクセスを無効にする | Microsoft Docs
上記リンク先の記事の通りに操作すれば、一括で特定サービスへのアクセスを無効にすることができる。
ライセンスプランのテンプレートを適用するというイメージなので、厳密には特定のサービスだけを無効にするのではなく、特定サービスを無効にしたサービス一覧を適用するという形になる。セットした全員が同じ設定になる。
バラバラのサービス付与状態の中から、特定サービスを選んで無効にするということは、このツールではできない。
Powershell で、MSOLLicenseManagement を使ってサービスを有効化・無効化する
特定サービスだけを無効化したい、または、逆に特定サービスだけを有効化したい、そういう要望には Powershell の MSOLLicenseManagement が便利である。
PowerShell Gallery | MSOLLicenseManagement 2.1.0
これを書いている現在バージョンは 2.1.0 が公開されている。とにかく便利。簡単に手順を書く。
事前準備をする
サービスを有効化・無効化したいユーザ一覧ファイルを作る。1行1ユーザIDを列挙したテキストファイルを用意する。たとえば userlist01.txt としよう。
username01@example.com
username02@example.com
username03@example.com
対象の SKU を調べておこう。
Get-MsolAccountSku
たとえばテナント名が tenant01 で対象のライセンスが Office 365 E1 の場合、tenant01:STANDARDPACK となる。
MSOLLicenseManagement をインストールし、Office 365 に接続しておこう。
Set-ExecutionPolicy RemoteSigned
Install-Module MSOnline
Install-Module MSOLLicenseManagement
Connect-MsolService
Powershell で流し込む
MSOLLicenseManagement を使って一気に設定変更しよう。
対象ユーザの SWAY を有効にしたい
$UserList = (Get-Content ".\userlist01.txt") -as [string[]]
Update-MSOLUserLicenseplan -Users $UserList -Logfile .\msol01.log -SKU tenant01:STANDARDPACK -PlanstoEnable SWAY
対象ユーザの TEAMS を有効にしたい
$UserList = (Get-Content ".\userlist01.txt") -as [string[]]
Update-MSOLUserLicenseplan -Users $UserList -Logfile .\msol01.log -SKU tenant01:STANDARDPACK -PlanstoDisable TEAMS1
実行したらあとは待つだけ。
とっても簡単だ。自分でコードを書かなくていい。