番外: Microsoft Flow/PowerApps (Dynamics 365)の非表示について

こんにちは。SQL Server サポートチームです。

マイクロソフトの新たなサービスとして、Microsoft Flow と PowerApps が最近リリースされました。すでにご購入されている契約に Flow やPowerApps のライセンスが含まれる場合には、これらのサービスが自動的に Office 365 のポータルやアプリケーションランチャーに表示されています。(Dynamics 365 も含む)

 

こちらを一括で非表示にする方法については、下記ブログでご紹介させていただいております。

 

Microsoft Flow/PowerApps (Dynamics 365)の非表示について https://blogs.msdn.microsoft.com/jpsql/2016/11/21/microsoft-flowpowerapps-%E3%81%AE%E9%9D%9E%E8%A1%A8%E7%A4%BA%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/

 

先のブログに関連し CSV ファイルにユーザー情報を出力して、特定のユーザーのみのライセンスを制御したいとお問合せをいただくことがございましたので、ご参考までにご案内いたします。

例えば、Enterprise E3 や E5 プランなど複数のご契約があるテナントの場合、以下のように CSV ファイルを用いて各プランごとのユーザー情報を CSV ファイルに出力し、Office365向けフロー、Office365向け PowerApps のライセンス を一括で制御することができます。

 

Azure Active Directory PowerShell をご利用いただく際のご留意点

====================================================

1. 本ブログでご案内する内容はあくまで参考情報となります。

2. 本ブログの内容を実行いただくにあたり、環境固有に対するトラブルシュートについてはサポートいたしておりません。

3. 本ブログをご参考いただきライセンスを削除いただく場合は、事前にライセンス名をご確認いただいた上で実行してください。

 

==========================

◆ 1. 指定したライセンスが付与されたユーザー一覧の CSV ファイルを出力する

==========================

 

【コマンドレット】

Get-MsolUser -All | ForEach-Object {$upn=$_.UserPrincipalName; $dpn =$_.DisplayName; $_.Licenses | ForEach-Object {if($_.AccountSkuId -eq "ドメイン名:ライセンス名"){$upn+","+$dpn}}}|select @{n="UserPrincipalName"; e={$upn}}, @{n="DisplayName"; e={$dpn}} | Export-Csv -Encoding UTF8 "<ファイルの保存先のパス>"

【実行例】 以下の実行例では E3 プランが割り当たったユーザーを出力します

Get-MsolUser -All | ForEach-Object {$upn=$_.UserPrincipalName; $dpn =$_.DisplayName; $_.Licenses | ForEach-Object {if($_.AccountSkuId -eq "o365xxxx:ENTERPRISEPACK"){$upn+","+$dpn}}}|select @{n="UserPrincipalName"; e={$upn}}, @{n="DisplayName"; e={$dpn}} | Export-Csv -Encoding UTF8 "C:\temp\Userlist.csv" -NoTypeInformation

 

【出力例】

UserPrincipalName                  DisplayName User01@o365xxxx.onmicrosoft.com ユーザー1 User02@o365xxxx.onmicrosoft.com ユーザー2 User03@o365xxxx.onmicrosoft.com ユーザー3

 

※ ライセンスを付け替えるユーザーのみを残して保存を行なっていただきます。

※ ネットワークに負荷が生じる恐れがございますので、作成する 1 つの CSV ファイルでは、1000 ユーザー以内で作成いただくことをおすすめいたします。

 

==========================

◆ 2. ライセンスオプションの作成

==========================

 

以下のコマンドレットにてライセンスから一部のプランを除外をする、ライセンスオプションを作成します。

以下の例では Enterprise E3 から [Microsoft Power Apps]、[Flow] を無効化する手順をご案内させていただきます。

【コマンドレット】

$<任意のライセンスオプション名> = New-MsolLicenseOptions -AccountSkuId <ドメイン名 : ライセンス名> -DisabledPlans <機能を無効化する ServicePlan>

 

【実行例】

$MY365Sku = New-MsolLicenseOptions -AccountSkuId o365xxxx:ENTERPRISEPACK -DisabledPlans FLOW_O365_P2,POWERAPPS_O365_P2

※ コマンドレットの実行結果は表示されません。

※ ライセンスオプションの付与は、現在のライセンス割り当てをすべて上書きする動作となります。

※ 上記コマンドレットは、ライセンスオプションを変数として一時的に保存するものとなりますため、PowerShell ウィンドウを閉じると、作成した情報が消滅します。

そのため、カスタマイズされたライセンスオプションは、作成後ウィンドウを閉じる前にご利用くださいますようお願い申し上げます。

 

==========================

◆ 3. 複数ユーザーに一括でライセンスオプションを付与する

==========================

 

CSV ファイルを利用して、対象のユーザーに上記手順 ◆ 2. で作成したライセンスオプションを割り当てます。

【コマンドレット】

Import-CSV "<ファイル名を含んだ保存先のパス>" | foreach { Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -LicenseOptions $<作成したライセンスオプション名> }

【実行例】

Import-CSV "C:\temp\Userlist.csv" | foreach { Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -LicenseOptions $MY365Sku }

 

以上です。参考になりましたら、幸いです。