Office365 ライセンスプラン内の特定サービスを Enable にする

ライセンスプランとサービスとは

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

実行したらあとは待つだけ。

とっても簡単だ。自分でコードを書かなくていい。