Microsoft Planner にて一般ユーザーによるプラン作成を制限する方法について (V2)

(※2019 年 3 月をもちまして、弊社システム刷新の都合により、本 Blog を終了いたします。本記事については移行先にも投稿済みとなりますため、今後はこちらをご参照ください。)

こんにちは、SharePoint サポートの森村です。 以前下記の記事にて Microsoft Planner (以下 Planner) のプラン作成を制限する方法をご案内しておりました。

タイトル : Microsoft Planner にて一般ユーザーによるプラン作成を制限する方法について アドレス : https://blogs.technet.microsoft.com/sharepoint_support/2016/06/24/microsoft-planner-plan-create-restriction/

本日 (2017 年 3 月 27 日) 時点で、上記手順に必要なモジュールの提供が停止されており、再開の予定がない状態となります。こちらは、該当モジュールが Azure Active Directory PowerShell Module V1 Public Preview (ベータ) 版での提供であったことと、現在最新の Version 2 (V2) を開発、提供中であるためとなります。 このため、既に Azure Active Directory PowerShell Module V1 Public Preview 版をダウンロード済みの方は引き続き上記手順をご利用可能ですが、新規に上記手順をご利用いただくことはできません。

新規に設定を行いたい方のために、本記事では Azure Active Directory PowerShell Module V2 版を利用して Planner 上からプラン作成を制限する方法に関する、英語版の弊社技術情報ページの内容をご案内いたします。

タイトル : Azure Active Directory cmdlets for configuring group settings
アドレス : /en-us/azure/active-directory/active-directory-accessmanagement-groups-settings-cmdlets

目次
1. Microsoft Planner にて全ユーザーによるプラン作成を制限する方法 2. 一部のユーザーのみにプラン作成を許可する方法 3. 再度全ユーザーにプラン作成を許可する方法 (設定を変更、削除する方法)
4. インストール時、PowerShell 実行時にエラー メッセージが表示された場合 5. 関連情報 1. Microsoft Planner にて全ユーザーによるプラン作成を制限する方法

Planner 製品は Office 365 グループの機能を利用しております。
Planner のページから [新しいプラン] をクリックすると、プランの名前の Office 365 グループが作成され、そのグループ用のプランとして Planner 上でプランの編集が可能となります。

しかし、テナントの管理方針によっては、自由に Office 365 グループの作成をさせたくない、ということも考えられます。
Planner の [新しいプラン] メニューでは、Outlook Web Access ページからの Office 365 グループ作成とは異なる機能を使用しているため、Exchange Online の PowerShell にて、Set-OwaMailboxPolicy を使用し Office 365 グループの作成を禁止している場合でも新規にプラン (Office 365 グループ) が作成される動作となります。

このため、自由に Office 365 グループの作成をさせたくない場合は、下記手順にて Azure Active Directory PowerShell Module V2 を使用することで、全体管理者を含むすべてのユーザーに対し、Planner や Outlook on the Web 上からのプランの作成 (Office 365 グループの作成) を禁止することが可能です。
(ただし、全体管理者のユーザーの場合は、Office 365 管理センター上から Office 365 グループを作成することが可能です。)
(※ 2018/7/20 追記 : 現時点では、全体管理者のユーザーの場合は、本設定を実施後も Planner 上からプランが作成可能である動作になっています。)
事前準備手順

  1. 64 Bit OS が動作している Windows 10/8.1/7、あるいは Windows Server 2016/2012R2/2012/2008R2 を準備します。

  2. Windows 7 および Windows Server 2008 R2 の場合は、前提条件を満たすために、最新の Windows Update をすべて適用します。Windows Update 適用後に再起動を行います。(Windows 8.1 あるいは Windows Server 2012 以降の場合は 2. の手順は不要です。)

  3. Windows 7 および Windows Server 2008 R2 の場合は、下記弊社 TechNet ページを参照し、Microsoft Online Services サインイン アシスタントのインストールを行います。(Windows 8.1 あるいは Windows Server 2012 以降の場合は 3. の手順は不要です。)

     タイトル : Office 365 PowerShell への接続
    アドレス : https://technet.microsoft.com/ja-jp/library/dn975125.aspx
    
  4. Windows 7 および Windows Server 2008 R2 の場合は、下記リンクから .NET Framework 4.5 以降をインストールします。必要に応じて再起動を実施します。(Windows 8.1 あるいは Windows Server 2012 以降の場合は 4. の手順は不要です。)

     タイトル : .NET Framework のインストール
    アドレス : https://msdn.microsoft.com/ja-jp/library/5a4x27ek(v=vs.110).aspx
    
  5. Windows 7/8.1 および Windows Server 2008 R2/2012/2012 R2 の場合は、下記リンクから Windows Management Framework 5.0 をインストールします。必要に応じて再起動を実施します。(Windows 10 および Windows Server 2016 の場合は 5. の手順は不要です。)

     タイトル : Windows Management Framework 5.0
    アドレス : https://www.microsoft.com/en-us/download/details.aspx?id=50395
    
  6. PowerShell を管理者モードで起動し、下記コマンドを実行し、ネットワーク経由で最新版の Azure Active Directory PowerShell Module V2 をインストールします。

     Install-Module AzureADPreview
    

    ここで、「続行するには NuGet プロバイダーが必要です…」、あるいは「NuGet provider is required to continue …」と表示されましたら、Y を入力し、先に進めてください。 また、続けて「信頼されていないリポジトリ・・」と表示されましたら、Y を入力し、先に進めてください。

  7. PowerShell の実行ポリシーを変更していない場合は、続けて下記コマンドを実行します。(すでに変更済みの場合は 7. の手順は不要です。)

     Set-ExecutionPolicy RemoteSigned
    
  8. 管理者モードで起動した PowerShell ウィンドウを閉じます。

設定手順

  1. PowerShell を起動後、以下の 6 行のコマンドレットを実行します。2 行目の Connect-AzureAD を実行すると、認証ダイアログがポップアップされるので、該当テナントの全体管理者のアカウントとパスワードを入力します。

     Import-Module AzureADPreview;
    Connect-AzureAD;
    $template = Get-AzureADDirectorySettingTemplate -Id 62375ab9-6b52-47ed-826b-58e47e0e304b;
    $setting = $template.CreateDirectorySetting();
    $setting["EnableGroupCreation"] = $false;
    New-AzureADDirectorySetting -DirectorySetting $setting;
    

    なお、1 行目の Import-Module AzureADPreview にてエラーとなる場合は、Azure Active Directory PowerShell Module V2 が正しくインストールされていないことが原因として考えられます。 上記「事前準備手順」を再度ご確認ください。

  2. 設定が反映されるまで、数分~1 時間程度待ちます。

  3. Planner にアクセスを行い、新規プラン作成を試みるとエラーメッセージが表示され、プランが作成できない動作に変化したことを確認します。

プランが作成できない場合のメッセージプランと Office 365 グループの作成が無効になっています
「プランと Office 365 グループの作成が無効になっています 組織のグローバル管理者が、新しいプランと Office 365 グループを作成する機能を無効にしています。」と表示されます。

2. 一部のユーザーのみにプラン作成を許可する方法

上記「1. Microsoft Planner にて全ユーザーによるプラン作成を制限する方法」では、すべてのユーザーによるプラン作成 (Office 365 グループ作成) を禁止しますが、 テナントの管理方針によっては、管理者等、一部のユーザーにはプラン作成を許可したい、ということも考えられます。

Azure AD Premium ライセンスを所持している場合は、上記 1. の方法に少し手順を追加することで、実現が可能です。
ライセンスの詳細につきましては、下記のオンライン ヘルプ ページをご参照ください。

タイトル : Office 365 グループを作成できるユーザーを管理する
アドレス : https://support.office.com/ja-jp/article/4c46c8cb-17d0-44b5-9776-005fced8e618

タイトル : Azure Active Directory cmdlets for configuring group settings
アドレス : /en-us/azure/active-directory/active-directory-accessmanagement-groups-settings-cmdlets

設定手順

  1. 上記 1. の事前準備手順を実施します。

  2. Office 365 管理センター上にて、セキュリティ グループを作成します。(例 : CanCreateGroups)

  3. プランを作成可能としたいユーザーをセキュリティ グループに追加します。

  4. PowerShell を起動後、以下のコマンドレットを実行します。<セキュリティ グループ名> の部分は適宜変更します。
    新規に設定を行う場合は、下記 9 行のコマンドレットを実行します。
    2 行目の Connect-AzureAD を実行すると、認証ダイアログがポップアップされるので、該当テナントの全体管理者のアカウントとパスワードを入力します。

     Import-Module AzureADPreview;
    Connect-AzureAD;
    $groupname = "セキュリティ グループ名";
    $targetgroup = Get-AzureADGroup -SearchString $groupname | Where-Object { $_.DisplayName -eq $groupname};
    $template = Get-AzureADDirectorySettingTemplate -Id 62375ab9-6b52-47ed-826b-58e47e0e304b;
    $setting = $template.CreateDirectorySetting();
    $setting["EnableGroupCreation"] = $false;
    $setting["GroupCreationAllowedGroupId"] = $targetgroup.ObjectId;
    New-AzureADDirectorySetting -DirectorySetting $setting;
    

    既に「1. Microsoft Planner にて全ユーザーによるプラン作成を制限する方法」を実施済みの場合は、下記 8 行のコマンドレットを実行します。
    2 行目の Connect-AzureAD を実行すると、認証ダイアログがポップアップされるので、該当テナントの全体管理者のアカウントとパスワードを入力します。

     Import-Module AzureADPreview;
    Connect-AzureAD;
    $groupname = "セキュリティ グループ名";
    $targetgroup = Get-AzureADGroup -SearchString $groupname | Where-Object { $_.DisplayName -eq $groupname};
    $setting = Get-AzureADDirectorySetting | Where-Object {$_.TemplateId -eq "62375ab9-6b52-47ed-826b-58e47e0e304b"};
    $setting["EnableGroupCreation"] = $false;
    $setting["GroupCreationAllowedGroupId"] = $targetgroup.ObjectId;
    Set-AzureADDirectorySetting -Id $setting.Id -DirectorySetting $setting;
    

    なお、1 行目の Import-Module AzureADPreview にてエラーとなる場合は、Azure Active Directory PowerShell Module V2 が正しくインストールされていないことが原因として考えられます。 上記「事前準備手順」を再度ご確認ください。

  5. 設定が反映されるまで、数分~1 時間程度待ちます。

  6. セキュリティグループに含まれているユーザーにて Planner にアクセスを行い、新規プランの作成が可能であることを確認します。また、セキュリティ グループに含まれていないユーザーにて Planner にアクセスを行い、新規プラン作成を試みるとエラーメッセージが表示され、プランが作成できない動作であることを確認します。

3. 再度全ユーザーにプラン作成を許可する方法 (設定を変更、削除する方法)

プラン作成を禁止した後に、再度全ユーザーに対しプラン作成を許可したい場合は、下記手順にて設定値の変更を行うことで、テナントの設定が変更され、再度プラン作成が可能となります。

設定手順

  1. 上記 1. の事前準備手順を実施します。

  2. PowerShell を起動後、以下の 6 行のコマンドレットを実行します。
    2 行目の Connect-AzureAD を実行すると、認証ダイアログがポップアップされるので、該当テナントの全体管理者のアカウントとパスワードを入力します。

     Import-Module AzureADPreview;
    Connect-AzureAD;
    $setting = Get-AzureADDirectorySetting | Where-Object {$_.TemplateId -eq "62375ab9-6b52-47ed-826b-58e47e0e304b"};
    $setting["EnableGroupCreation"] = $true;
    $setting["GroupCreationAllowedGroupId"] = "";
    Set-AzureADDirectorySetting -Id $setting.Id -DirectorySetting $setting;
    
  3. 設定が反映されるまで、数分~1 時間程度待ちます。

  4. 一般ユーザーにて Planner にアクセスを行い、新規プラン作成が可能となったことを確認します。

  5. 以降は任意の手順となりますが、"EnableGroupCreation"、"GroupCreationAllowedGroupId" 以外の設定を変更していない場合は、追加で下記 4 行のコマンドレットを実行することで、設定を削除することが可能です。必ず先に 2. の手順にて "EnableGroupCreation" の設定値を変更後に削除をお願いいたします。

     Import-Module AzureADPreview;
    Connect-AzureAD;
    $setting = Get-AzureADDirectorySetting | Where-Object {$_.TemplateId -eq "62375ab9-6b52-47ed-826b-58e47e0e304b"};
    Remove-AzureADDirectorySetting -Id $setting.Id;
    

4. インストール時、PowerShell 実行時にエラーメッセージが表示された場合
PowerShell モジュールのインストール時や、PowerShell の実行時にエラー メッセージが表示される場合があります。 主なパターンについてトラブルシュート方法を記載します。 a. 32 ビット PC に Azure Active Directory PowerShell Module のインストールを試みた場合 b. 前提条件のソフトウェアのインストールを行っていない場合 c. 以前のバージョンの Azure Active Directory PowerShell Moduleを使用している場合 d. 既にテナント上にプラン作成許可、制限の設定が行われている場合 a. 32 ビット PC に Azure Active Directory PowerShell Module のインストールを試みた場合

Azure Active Directory PowerShell Module は、64 ビット版のみをサポートしております。(参考ページ)
このため、32 ビット版の Windows OS に対してインストールを試みると、下記の様なエラーが表示されます。 事前準備手順にも記載いたしましたように、64 ビット版の Windows OS 上で再度実施してください。

32 ビット版 Windows OS 上に表示されるメッセージ例
cannotinstallto32bit

 -------- エラー内容 ここから --------
このインストールパッケージはこの種類のプロセッサでサポートされていません。プロダクトベンダーに問い合わせてください。
-------- エラー内容 ここまで --------

b. 前提条件のソフトウェアのインストールを行っていない場合 事前準備手順の一部を実施していない場合、事前準備手順の 5 の Windows Management Framework 5.0 のインストールに失敗する、6 の Install-Module AzureADPreview の実行等に失敗する場合があります。 恐れ入りますが今一度事前準備手順を最初から見直していただき、手順すべての実施をお願いします。

c. 以前のバージョンの Azure Active Directory PowerShell Moduleを使用している場合

本記事内にてプラン作成を制限する際に使用するコマンド群は、最新版の Azure Active Directory PowerShell Module V2 にのみ含まれております。
これ以前のバージョンの Azure Active Directory PowerShell Module V1 などを使用していた場合は、下記の様なエラー メッセージが表示されます。 事前準備手順を再度確認し、最新版の Azure Active Directory PowerShell Module V2 のインストールを行ってください。

以前のバージョンの Azure Active Directory PowerShell Module を使用している場合のエラー メッセージ例
Get-AzureADDirectorySetting : 用語 'Get-AzureADDirectorySetting' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。

 -------- エラー内容 ここから --------
Get-AzureADDirectorySetting : 用語 'Get-AzureADDirectorySetting' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:1
+ Get-AzureADDirectorySetting
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Get-AzureADDirectorySetting:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
-------- エラー内容 ここまで --------

d. 既にテナント上にプラン作成許可、制限の設定が行われている場合

既にプラン作成を制限する設定をテナント上に行っている状態で、「1. Microsoft Planner にて全ユーザーによるプラン作成を制限する方法」を実施した場合、New-AzureADDirectorySetting コマンドで追加される設定内容がすでに存在するため、下記の様なエラーが表示されて処理が失敗します。 この状況で設定変更を行うためには、「2. 一部のユーザーのみにプラン作成を許可する方法」内の、『既に「1. Microsoft Planner にて全ユーザーによるプラン作成を制限する方法」を実施済みの場合は、下記 8 行のコマンドレットを実行します。』の方法にて、設定内容を変更します。

既にテナント上にプラン作成許可、制限の設定が行われている場合のエラー メッセージ例
New-AzureADDirectorySetting : Error occurred while executing NewDirectorySetting

 -------- エラー内容 ここから --------
New-AzureADDirectorySetting : Error occurred while executing NewDirectorySetting
Code: Request_BadRequest
Message: A conflicting object with one or more of the specified property values is present in the directory.
InnerError:
  RequestId: ea60b111-c8e8-4c14-942e-6c3b9b5bdfbb
  DateTimeStamp: Fri, 24 Mar 2017 04:14:51 GMT
HttpStatusCode: BadRequest
HttpStatusDescription: Bad Request
HttpResponseStatus: Completed
発生場所 行:1 文字:1
+ New-AzureADDirectorySetting -DirectorySetting $setting;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-AzureADDirectorySetting], ApiException
    + FullyQualifiedErrorId : Microsoft.Open.MSGraphBeta.Client.ApiException,Microsoft.Open.MSGraphBeta.PowerShell.NewDirectorySetting
-------- エラー内容 ここまで --------

5. 関連情報
タイトル : Azure Active Directory cmdlets for configuring group settings
アドレス : /en-us/azure/active-directory/active-directory-accessmanagement-groups-settings-cmdlets

タイトル : PowerShell ギャラリー アドレス : https://msdn.microsoft.com/powershell/gallery/readme

今回の投稿は以上です。


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