Quantcast
Channel: Japan SharePoint Support Team Blog
Viewing all articles
Browse latest Browse all 182

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

$
0
0

こんにちは、SharePoint サポートの森村です。
本記事では Office 365 にて公開予定の Office 365 Planner (以下 Planner) について、PowerShell スクリプトを使用して一括でテナント全体のユーザーのライセンスを有効化、無効化する方法をご案内いたします。

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

1. Planner のライセンスについて
Planner 製品のライセンスは Office 365 E1/E3/E5、Office 365 Business Premium、Office 365 Business Essentials、および Office 365 Education に含まれております。
例えば、Office 365 E3 の場合は下記の様に Office 365 管理センターのユーザー管理のページにてライセンスの詳細項目を表示することで、確認可能できます。
テナント上で Planner 製品が利用可能になった時点で、既定でオンの状態で追加されます。

PlannerLicense

手動でライセンスの変更を行う場合は、上記にて Office 365 Planner をオン、もしくはオフにすることで、該当ユーザーの Planner の有効化、無効化を行うことができます。
しかしながら、テナント全体でオン、オフにする、といったような設定方法はないため、下記 2. にて、PowerShell を使用して一括で実行する方法をご案内いたします。

2. PowerShell を使用して一括で有効化、無効化する方法
例えば、「当初は Planner 製品を使用する予定が無いが、一定期間後に再度使用するようにしたい」、という場合は、下記手順にて一括してテナント全体のユーザーに対し、ライセンスをオン、オフすることが可能となります。

※注意点※
下記手順を使用することで、テナント全体のユーザーのライセンス情報を確認し、逐次 Planner ライセンスをオフにする処理が実施されます。
テナントに含まれるユーザー数が多い場合などは処理完了までに時間がかかることが予想されますので、業務時間外などに実行いただくか、あるいはスクリプトの内容を変更し、一部ユーザーのみに適用する、等をご検討ください。

  1. 64 Bit OS が動作している Windows 10/8.1/8/7 PC を準備します。
  2. Windows 7 PC で使用する場合は、前提条件を満たすために、最新の Windows Update をすべて適用します。Windows Update 適用後に再起動を行い、その後下記リンクから Windows Management Framework 3.0 をインストールし、 Windows PowerShell 3.0 を使用可能とします。(Windows 8 以降の場合は 2. の手順は不要です。)
    タイトル : Windows Management Framework 3.0
    アドレス : http://www.microsoft.com/en-us/download/details.aspx?id=34595
  3. 下記弊社 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
  4. PowerShell の実行ポリシーを変更していない場合は、インストールした Windows PowerShell の Microsoft Azure Active Directory モジュール を管理者権限で起動し、下記コマンドを実行します。(すでに変更済みの場合は 4. の手順は不要です。)
    Set-ExecutionPolicy RemoteSigned
  5. インストールした Windows PowerShell の Microsoft Azure Active Directory モジュール を起動します。
  6. 有効化を行う場合は、下記の有効化のスクリプト内容をコピーし、ps1 ファイルとして保存します。(例 : EnablePlannerLicense.ps1)
    また、無効化を行う場合は、下記の無効化のスクリプト内容をコピーし、ps1 ファイルとして保存します。(例 : DisablePlannerLicense.ps1)
  7. EnablePlannerLicense.ps1 ファイル、あるいは DisablePlannerLicense.ps1 ファイルを保存したフォルダーに移動し、下記の様に実行します。(下記は c:\temp 以下に ps1 ファイルを保存した場合の例となります。)
    ・有効化を行う場合
    cd c:\temp
    .\EnablePlannerLicense.ps1
    
    ・無効化を行う場合
    cd c:\temp
    .\DisablePlannerLicense.ps1
  8. 認証ダイアログが表示されますので、ご利用中のテナントの管理者アカウント (adminuser@tenant.onmicrosoft.com 等) およびパスワード情報を入力します。
  9. 処理中の内容が表示されますので、プロンプトが戻るまで待ちます。
  10. 処理完了後、ブラウザーにて Office 365 を表示していた場合は一度ブラウザーを終了させ、再度 Office 365 にサインインします。
  11. ユーザーのライセンス付与状況を確認し、Planner 製品のライセンスが期待通りとなっていることを確認します。また、アプリケーション ランチャー上の Planner のタイルの表示が期待通りとなっていることを確認します。

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

# Planner のサービス名
$service_name = "PROJECTWORKMANAGEMENT"

connect-msolservice -credential $msolcred

# ライセンスが割り当てられた全ユーザーの列挙 (この例では -All を指定しています。必要に応じて変更ください。)
$users = Get-MsolUser -All | where {$_.isLicensed -eq "True"}

# *********************************************************************
# 記述変更 例
# *********************************************************************
# 特定のライセンス保有者 (AccountSkuId は Get-MsolAccountSku で確認した値を指定します。)
# $users = Get-MsolUser -All | Where-Object {$_.Licenses[0].AccountSkuId -eq "testtenant:STANDARDPACK" -and $_.isLicensed -eq $True}
# $users = Get-MsolUser -All | Where-Object {$_.Licenses.AccountSkuId -eq "testtenant:STANDARDPACK" -and $_.isLicensed -eq $True}

# 特定ユーザーの指定
# $users = Get-MsolUser -UserPrincipalName "test@testtenant.onmicrosoft.com"

<#
# 改行単位で UPN が記述されたユーザー一覧から取得
# $users.Clear()
$users = New-Object System.Collections.ArrayList
$list = Get-Content "UserList.txt"
foreach ($temp in $list)
{
    $users = $users + (Get-MsolUser -UserPrincipalName $temp)
}
#>

# ユーザー毎のライセンス/サービスの確認と変更
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)

        $includeService = $false
        $disableplan = @()

    	foreach ($row in $($license.ServiceStatus)) {
            if ( $row.ServicePlan.ServiceName -eq $service_name ) { $includeService=$true }
            if ( $row.ProvisioningStatus -eq "Disabled" -and $row.ServicePlan.ServiceName -ne $service_name) {
                $disableplan += $row.ServicePlan.ServiceName
            }
		}
<#
        # 指定したサービス が含まれる SKU の場合、現在の設定に加え、指定したサービス を無効化 (Disable)
        if ($includeService){
            $disableplan += $service_name
            write-host ("      found Target service in " + $license.accountskuid)
            write-host ("      disabled services : " + $disableplan )
            $x = New-MsolLicenseOptions -AccountSkuId $license.accountskuid -DisabledPlans $disableplan
            Set-MsolUserLicense -UserPrincipalName $user.UserPrincipalName -LicenseOptions $x
        }
#>

        # 指定したサービス が含まれる SKU の場合、現在の設定に加え、指定したサービス を有効化 (Enable)
        if ($includeService){
            write-host ("      found Target 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
        }


    }
}

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

# Planner のサービス名
$service_name = "PROJECTWORKMANAGEMENT"

connect-msolservice -credential $msolcred

# ライセンスが割り当てられた全ユーザーの列挙 (この例では -All を指定しています。必要に応じて変更ください。)
$users = Get-MsolUser -All | where {$_.isLicensed -eq "True"}

# *********************************************************************
# 記述変更 例
# *********************************************************************
# 特定のライセンス保有者 (AccountSkuId は Get-MsolAccountSku で確認した値を指定します。)
# $users = Get-MsolUser -All | Where-Object {$_.Licenses[0].AccountSkuId -eq "testtenant:STANDARDPACK" -and $_.isLicensed -eq $True}
# $users = Get-MsolUser -All | Where-Object {$_.Licenses.AccountSkuId -eq "testtenant:STANDARDPACK" -and $_.isLicensed -eq $True}

# 特定ユーザーの指定
# $users = Get-MsolUser -UserPrincipalName "test@testtenant.onmicrosoft.com"

<#
# 改行単位で UPN が記述されたユーザー一覧から取得
# $users.Clear()
$users = New-Object System.Collections.ArrayList
$list = Get-Content "UserList.txt"
foreach ($temp in $list)
{
    $users = $users + (Get-MsolUser -UserPrincipalName $temp)
}
#>

# ユーザー毎のライセンス/サービスの確認と変更
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)

        $includeService = $false
        $disableplan = @()

    	foreach ($row in $($license.ServiceStatus)) {
            if ( $row.ServicePlan.ServiceName -eq $service_name ) { $includeService=$true }
            if ( $row.ProvisioningStatus -eq "Disabled" -and $row.ServicePlan.ServiceName -ne $service_name) {
                $disableplan += $row.ServicePlan.ServiceName
            }
		}

        # 指定したサービス が含まれる SKU の場合、現在の設定に加え、指定したサービス を無効化 (Disable)
        if ($includeService){
            $disableplan += $service_name
            write-host ("      found Target service in " + $license.accountskuid)
            write-host ("      disabled services : " + $disableplan )
            $x = New-MsolLicenseOptions -AccountSkuId $license.accountskuid -DisabledPlans $disableplan
            Set-MsolUserLicense -UserPrincipalName $user.UserPrincipalName -LicenseOptions $x
        }

        <#
        # 指定したサービス が含まれる SKU の場合、現在の設定に加え、指定したサービス を有効化 (Enable)
        if ($includeService){
            write-host ("      found Target 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
        }
        #>

    }
}

3. 関連情報
関連ブログ記事、および上記の PowerShell スクリプトに関連する情報をご案内いたします。

タイトル : Office 365 Planner の関連情報について
アドレス : https://blogs.technet.microsoft.com/sharepoint_support/2016/05/26/office-365-planner-related-information/

タイトル : PowerShell による詳細なライセンス割り当て
アドレス : https://community.office365.com/ja-jp/w/manage/1077

タイトル : Office 365 ライセンスと Windows PowerShell: ユーザーのライセンスの状態を確認する
アドレス : https://technet.microsoft.com/ja-jp/library/dn771772.aspx

タイトル : ユーザーへのライセンスの割り当て
アドレス : https://technet.microsoft.com/ja-jp/library/dn771770.aspx

タイトル : サービスのライセンス情報を表示する
アドレス : https://technet.microsoft.com/ja-jp/library/dn771771.aspx

タイトル : サービスにアクセスを割り当てる
アドレス : https://technet.microsoft.com/ja-jp/library/dn771769.aspx

今回の投稿は以上です。


本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。


Viewing all articles
Browse latest Browse all 182

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>