Microsoft Stream を PowerShell を使用して一括で有効化、無効化する方法について

こんにちは。Stream 担当の砂川です。
先日 (2017 年 6 月 20 日) 、Microsoft Stream が Office 365 上で展開されることが公式ブログより発表されました。

本ブログでは、Microsoft Stream サービスの概要、およびライセンスによる制御方法やスクリプトによる有効化・無効化の方法などについてご案内いたします。

< 目次 > 1. Microsoft Stream の概要
2. Microsoft Stream ライセンスについて
3. PowerShell を使用して一括で有効化、無効化する方法
4. 関連情報


1. Microsoft Stream の概要

Microsoft Stream は新規の動画共有サービスであり、将来的に既存の Office 365 Video に替わるサービスとなることが予定されています。
(※ 現時点においては 2017 年中に移行が開始されることが予定されており、それまでは 2 つのサービスを並行してご利用いただける予定です)

Microsoft Stream においては動画内音声の自動翻訳や動画に登場している人物の顔認識、キーワード検索など様々な機能が追加されています。

 

Microsoft Stream が展開される対象の Office 365 テナント

本日 (6 月 21 日) 以降、以下のライセンスが含まれるお客様の Office 365 環境において順次 Microsoft Stream が展開されていきます。

 

- Office 365 Enterprise (E1 – E5)

- Office 365 Education (A1 – A5)

- Office 365 Kiosk (K1 – K2)

 

<補足>
各ライセンスに応じて Stream にて利用できる機能が異なります。各ライセンスにて利用できる機能の詳細につきましては以下の資料をご確認ください。
タイトル: Licensing overview
アドレス: https://stream.microsoft.com/ja-jp/documentation/stream-license-overview/

 

Microsoft Stream の使用する容量について

Microsoft Stream は Office 365 Video とは異なり、SharePoint Online テナントの容量は一切使用せず、Microsoft Stream 独自の容量を使用します。

既定で、Microsoft Stream が展開されたテナントに対しては 500 GB の容量が割り振られ、ライセンスが割り当てられたユーザーにつき 0.5 GB の容量が追加で割り振られます。

例 : 1,000 名のユーザーが存在するテナントでは、500 + (1,000 × 0.5) = 1,000 GB = 1 TB の容量が提供されます。


2. Microsoft Stream ライセンスについて

現在、Microsoft Streamはユーザー毎のライセンス オプションにスイッチが設けられており、このスイッチを用いることでアプリランチャーの制御やユーザー単位での Microsoft Stream の利用の制御が可能となっております。
(※ Microsoft Stream ライセンスは、既定でオンの状態で追加されます。)

例えば Office 365 E3 の場合は下記の様に Office 365 管理センターのユーザー管理のページにてライセンスの詳細項目を表示することで、Microsoft Stream のライセンスを確認できます。

( 手順: [ユーザー] – [アクティブなユーザー] – [製品ライセンス] の “編集” を選択します)

手動でライセンスの変更を行う場合は、Microsoft Stream ライセンスをオン、もしくはオフにすることで、該当ユーザーの Microsoft Stream の有効化、無効化を行うことができます。
テナント全体でオン、オフにする、といったような設定を行いたい場合は、下記 3.  にて、PowerShell を使用して一括で実行する方法をご検討ください。

3. PowerShell を使用して一括で有効化、無効化する方法

例えば、「当初は Microsoft Stream を使用する予定が無いが、一定期間後に使用するようにしたい」、という場合は、下記手順にて一括してテナント全体のユーザーに対し、ライセンスをオン、オフすることが可能となります。
なお、下記の PowerShell スクリプトでは、それぞれのユーザーに対して Microsoft Stream のライセンスのみオン/オフにする編集を行うため、その他のライセンス (Sway、Yammer 等) を既に無効化している場合でも、その他のライセンスの状態に変化はありません。

 

注意点
下記手順を使用することで、テナント全体のユーザーのライセンス情報を確認し、逐次 Microsoft Stream ライセンスのみを対象にオン/オフにする処理が実施されます。
テナントに含まれるユーザー数が多い場合などは処理完了までに時間がかかることが予想されますので、業務時間外などに実行いただくか、あるいはスクリプトの内容を変更し、一部ユーザーのみに適用する、等をご検討ください。
また、ユーザー数が非常に多い場合、スクリプトの実行完了前に認証タイムアウトになり、エラーとなる場合がございます。この場合は数千人ずつ分けて実行する、等も併せてご検討ください。

< 準備 >
1. 下記弊社 TechNet ページを参照し、Microsoft Online Services サインイン アシスタント、Windows PowerShell 用 Microsoft Azure Active Directory モジュール (64 ビット バージョン) のインストールを行います。

 タイトル : Connect to Office 365 PowerShell
アドレス : https://technet.microsoft.com/ja-jp/library/dn975125.aspx

2. PowerShell の実行ポリシーを変更していない場合は、インストールした Windows PowerShell の Microsoft Azure Active Directory モジュール を管理者権限で起動し、下記コマンドを実行します。(すでに変更済みの場合は 2. の手順は不要です。)

 Set-ExecutionPolicy RemoteSigned

3. インストールした Windows PowerShell の Microsoft Azure Active Directory モジュール を起動します。

4. 以下のコマンドで管理者として Office 365 にアクセスします。
認証ダイアログが表示されますので、ご利用中のテナントの管理者アカウント (adminuser@tenant.onmicrosoft.com 等) およびパスワード情報を入力します。

 Connect-MsolService

5. 以下のコマンドを実行し、表示されたサービスプランの一覧から ”Stream” のプラン名をメモします。 (例: Office 365 E3 ライセンスをお持ちの場合は “STREAM_O365_E3” になります)

 Get-MsolAccountSku | Select -ExpandProperty ServiceStatus

  1. 以下のコマンドを実行し、手順 5 で確認した ”Stream” のプラン名を $service_name プロパティに保存します。※ お客様のご利用いただいているライセンスの種類に応じて “Stream” のプラン名が異なります。
 例) $service_name = “STREAM_O365_E3”

< 手順 >

7. 有効化を行う場合は、下記の有効化のスクリプト内容をコピーし、ps1 ファイルとして保存します。(例 : EnableStreamLicense.ps1)
また、無効化を行う場合は、下記の無効化のスクリプト内容をコピーし、ps1 ファイルとして保存します。(例 : DisableStreamLicense.ps1

8. EnableStreamLicense.ps1 ファイル、あるいは DisableStreamLicense.ps1 ファイルを保存したフォルダーに移動し、下記の様に実行します。(下記は c:\temp 配下に ps1 ファイルを保存した場合の例となります。)

 有効化を行う場合
cd c:\temp
.\EnableStreamLicense.ps1 

無効化を行う場合
cd c:\temp
.\DisableStreamLicense.ps1

9. 処理中の内容が表示されますので、プロンプトが戻るまで待ちます。

10. 処理完了後、ブラウザーにて Office 365 を表示していた場合は一度ブラウザーを終了させ、再度 Office 365 にサインインします。

11. Office 365 管理センター等でユーザーのライセンス付与状況を確認し、Microsoft Streamライセンスが期待通りとなっていることを確認します。また、各ユーザーのアプリケーション ランチャー上の Stream のタイルの表示が期待通りとなっていることを確認します。

 

有効化を行う場合のスクリプト内容

 #connect-msolservice -credential $msolcred
 
# ライセンスが割り当てられた全ユーザーの列挙
$users = Get-MsolUser -All | where {$_.isLicensed -eq "True"}
 
# ユーザー毎のライセンス/サービスの確認と変更
foreach ($user in $users)
{
    write-host ("Processing " + $user.UserPrincipalName)
    $licensetype = $user | Select-Object -ExpandProperty Licenses | Sort-Object { $_.Licenses }
    
 
    foreach ($license in $user.Licenses) 
    {
        write-host (" " + $license.accountskuid)
 
        $includeSTREAM = $false
        $disableplan = @()
 
            foreach ($row in $($license.ServiceStatus)) {
            if ( $row.ServicePlan.ServiceName -eq $service_name) { $includeSTREAM=$true }
            if ( $row.ProvisioningStatus -eq "Disabled" -and $row.ServicePlan.ServiceName -ne $service_name) {
                $disableplan += $row.ServicePlan.ServiceName
            }
}
  
        # STREAM が含まれる SKU の場合、現在の設定に加え、STREAM を有効化 (Enable)
        if ($includeSTREAM){
            write-host ("      found Stream service in " + $license.accountskuid)
            write-host ("      current disabled services : " + $disableplan )
            $x = New-MsolLicenseOptions -AccountSkuId $license.accountskuid -DisabledPlans $disableplan
            Set-MsolUserLicense -UserPrincipalName $user.UserPrincipalName -LicenseOptions $x
        } 
    }
}

無効化を行う場合のスクリプト内容

 #connect-msolservice -credential $msolcred
 
# ライセンスが割り当てられた全ユーザーの列挙
$users = Get-MsolUser -All | where {$_.isLicensed -eq "True"}
 
# ユーザー毎のライセンス/サービスの確認と変更
foreach ($user in $users)
{
    write-host ("Processing " + $user.UserPrincipalName)
    $licensetype = $user | Select-Object -ExpandProperty Licenses | Sort-Object { $_.Licenses }
    
 
    foreach ($license in $user.Licenses) 
    {
        write-host (" " + $license.accountskuid)
 
        $includeSTREAM = $false
        $disableplan = @()
 
            foreach ($row in $($license.ServiceStatus)) {
            if ( $row.ServicePlan.ServiceName -eq $service_name) { $includeSTREAM=$true }
            if ( $row.ProvisioningStatus -eq "Disabled" -and $row.ServicePlan.ServiceName -ne $service_name) {
                $disableplan += $row.ServicePlan.ServiceName
            }
}
        # STREAM が含まれる SKU の場合、現在の設定に加え、STREAM を無効化 (Disable)
        if ($includeSTREAM){
            $disableplan += $service_name
            write-host ("      found STREAM service in " + $license.accountskuid)
            write-host ("      disabled services : " + $disableplan )
            $x = New-MsolLicenseOptions -AccountSkuId $license.accountskuid -DisabledPlans $disableplan
            Set-MsolUserLicense -UserPrincipalName $user.UserPrincipalName -LicenseOptions $x
        }
    }
}

<補足>
Microsoft Stream ライセンスを無効化した場合、アプリケーション ランチャー上から Stream のタイルが削除される動作となりますが、直接Stream のサイトへアクセスし、サインインすることは可能となっております。ライセンスが無効なユーザーは Microsoft Stream 上では閲覧のみが可能となります。

また、テナントに対して Stream ライセンスの無効化処理を実施した場合でも、それ以降に新規に作成した Office 365 ユーザーに Office 365 Enterprise E3 等の (Stream を含む) ライセンスを付与すると、Stream が有効な状態で Office 365 ユーザーが作成されます。
このため、追加した Office 365 ユーザーに対して再度 Stream ライセンスの無効化を実施する等の運用をご検討ください。

 

4. 関連情報

タイトル: What is Microsoft Stream?
アドレス: https://stream.microsoft.com/ja-jp/documentation/stream-overview/

タイトル: Microsoft Stream now available worldwide—new intelligent features take enterprise video to new heights

アドレス: https://blogs.office.com/2017/06/20/microsoft-stream-now-available-worldwide-new-intelligent-features-take-enterprise-video-to-new-heights/

タイトル: Licensing Overview

アドレス: https://stream.microsoft.com/en-us/documentation/stream-migrate-from-o365/

 

 

今回の投稿は以上です。

本情報の内容は、作成日時点でのものであり、予告なく変更される場合があります。