作成済みのOffice365ユーザアカウントに対して、一部のサービスを使用不可にしたい場合の一括設定方法です。
年度始まりや毎月の新規ユーザに対してミスなく同一の設定を割り当てることができます。
CSVファイルを準備
準備するファイルが2つあります。
・無効にするサービスの一覧
まずはサービスを設定するユーザアカウントの一覧をCSV形式で準備します。
UserPrincipalName
user1@example.com
user2@example.com
user3@example.com
CSVファイルはUTF-8形式で保存してください。
※Excelで作成して、保存する時に「CSV UTF-8(コンマ区切り)(*.csv)」を選択
続いて、無効にするサービスの一覧をtxt形式で作成します。
※ヘッダーは不要です
TEAMS1
SWAY
BPOS_S_TODO_1
新規でユーザを作成するとライセンスに紐づく全てのサービスが「有効」になっているため、不要なサービスを「無効」にします。
注意して欲しいのは無効にするサービスの一覧であって、有効にするサービスの一覧ではありません。
ライセンスに紐づくサービスの一覧はこちらのコマンドで取得できます。
下記構文の「xxxx:ENTERPRISEPACK」を環境に合わせて書き換えてください。
(Get-MsolAccountSku | where {$_.AccountSkuId -eq "xxxx:ENTERPRISEPACK"}).ServiceStatus
ここで問題なのはここで表示されたサービス名が管理画面上のどのサービスなの?ってことです。
ちょっと分かりづらいものもあります。
(Get-MsolUser -UserPrincipalName "template@exmple.com").Licenses.ServiceStatus
ProvisioningStatusが「Disabled」のServicePlanをリスト化してtxt形式で保存します。
PowerShellファイルの作成
次の条件でPowerShellのファイルを作成します。
・サービスを無効にするユーザの一覧「C:\temp\UserList.csv」
・無効にするサービスの一覧「C:\temp\DisabledServiceList.txt」
下記構文の「xxxx:ENTERPRISEPACK」を環境に合わせて書き換えてください。
$UserFile = "C:\temp\UserList.csv"
$ServicePlans = Get-Content -Path "C:\temp\DisabledServiceList.txt"
$UserLists = Import-Csv -Path $UserFile
$License = "xxxx:ENTERPRISEPACK"
foreach($User in $UserLists){
$Licenseoptions = New-MsolLicenseOptions -AccountSkuId $License -DisabledPlans $ServicePlans
Set-MsolUserLicense -UserPrincipalName $User.UserPrincipalName -LicenseOptions $Licenseoptions
}
これをテキストエディタ(メモ帳など)で作成して、C:\tempにファイル名「ChangeServicePlans.ps1」保存します。
PowerShellの実行
作成したChangeServicePlans.ps1を実行します。
Azure Active Directory PowerShellモジュールを使用します。
PowerShellを管理者で起動してAzure ADに接続します。
接続方法についてはこちらをご覧ください。
PS C:\Windows\system32> cd C:\temp
PS C:\temp> .\ChangeServicePlans.ps1