【Windows 365】クラウドPCへのRDP接続許可設定について -IntuneからのPower Shellスクリプト配布による対応編-

Windows 365は、Azure上に配置されているWindows Desktopにインターネット経由で接続できるMicrosoftのVDIソリューションの1つです。

エンドユーザーにライセンスを割り当てることでクラウドPCと呼ばれる仮想マシンがデプロイされ、各ユーザー専用のWindows デバイスとして利用することができます。

新しくデプロイされたすべてのクラウドPCにおいて、ポート3389の通信は既定でブロックする仕様となっているそうです。*1
learn.microsoft.com

そのため、クラウドPCに対するRDP接続は、接続元問わず必ずブロックされてしまいます。

本記事では、IntuneからPower Shellスクリプトを配布する形で、RDP接続を許可させる対応方法をご紹介します。

また、以下記事にて、Windows セキュリティベースラインを利用した対応方法についても紹介しておりますので、あわせてご覧ください。

blog.jbs.co.jp

※Microsoftでは、潜在的なセキュリティリスクからクラウドPCを保護するために、ポート3389を閉じておくことが推奨されています。RDP接続が必要なケース以外では、既定のままポート3389は閉じておくことを推奨いたします。

概要

Windows 365 クラウドPCとは

クラウドPCとは、ライセンスの付与された個々のユーザーに割り当てられた、各ユーザー専用のWindows デバイスを指します。

いわゆる仮想デスクトップサービスの一つであり、Windows PCのクラウド版というイメージです。

learn.microsoft.com

冒頭でも記載しているように、クラウドPCはAzure ネットワーク接続を利用してデプロイした際に、既定でポート3389の受信ブロックルールが適用される仕様となっています。

既定で適用される受信ブロックルール名は以下2つとなります。

  • Windows 365 Security Default - Block TCP 3389
  • Windows 365 Security Default - Block UDP 3389

今回ご紹介する、IntuneからPower Shellスクリプトを適用する方法では、スクリプトの中で上記ブロックルールを無効化することでRDP接続を許可する、というものになります。

前提条件

Intuneから対象のデバイスに対してPower Shellスクリプトを配布するためには、以下の前提条件を満たしている必要があります。

  • Windows 10 バージョン 1607 以降を実行しているデバイスであること
  • Microsoft Entra IDに参加している(Microsoft Entra ハイブリッド参加済み/Microsoft Entra 登録済み/Workplace 参加済み)デバイスであること

上記が満たされていると、PowerShell スクリプトがデバイスに割り当てられた際に、Intune管理拡張機能が自動的にインストールされるそうです。

Microsoft Intune管理拡張機能について | Microsoft Learn

設定手順

IntuneにてPower Shellスクリプトを登録し、対象のデバイスへスクリプトを配布するための設定手順について記載します。

本記事では、以下設定手順にて対応方法を記載します。

  1. スクリプトファイル(ブロックルール有効化/無効化)作成
  2. Intune上へスクリプトファイル登録
  3. Intuneスクリプト配布用グループ作成
  4. (RDP接続が必要となったタイミングで)ブロックルール無効化用Intuneスクリプトへ配布用グループを割り当て
  5. (RDP接続が不要となったタイミングで)ブロックルール有効化用Intuneスクリプトへ配布用グループを割り当て

今回、Intuneスクリプトによって無効化するWindows ファイアウォールのブロックルールは、Microsoftが推奨するセキュリティ設定によって埋め込まれたものになります。

そのため、本記事では、以下図のように、対象デバイスへ管理者でのRDP接続が必要となった場合にのみ、ブロックルールの無効化スクリプトを適用するような手順にて記載します。


スクリプト作成

Windows ファイアウォールの受信ブロックルールを無効化/有効化する2種類のスクリプトを作成し、Intuneに登録します。

スクリプトファイル作成

まずは、Windows ファイアウォールのTCP 3389受信ブロックルールを無効化するスクリプトファイルを作成します。

以下のスクリプトファイルを作成し、任意の場所に保存します。

WindowsFW_disable.ps1

#Windows ファイアウォールのTCP 3389受信ブロックルール "Windows 365 Security Default - Block TCP 3389"を無効化
Disable-NetFirewallRule -DisplayName "Windows 365 Security Default - Block TCP 3389"

同様にWindows ファイアウォールのTCP 3389受信ブロックルールを有効化するスクリプトファイルを作成します。

以下のスクリプトファイルを作成し、任意の場所に保存します。

WindowsFW_Enable.ps1

#Windows ファイアウォールのTCP 3389受信ブロックルール "Windows 365 Security Default - Block TCP 3389"を有効化
Enable-NetFirewallRule -DisplayName "Windows 365 Security Default - Block TCP 3389"

スクリプトファイルの作成は以上となります。

Intune上へスクリプトファイルの登録

続いて、作成したスクリプトファイルをIntune上に登録します。

1. 任意のブラウザよりMicrosoft Intune管理センター(https://intune.microsoft.com/#home)にサインインし、左ペインより[デバイス]>[デバイスの管理]>[スクリプトと修復]>[プラットフォームスクリプト]を選択します。

2. [追加]>[Windows 10 以降]をクリックします。

3. Power Shellスクリプトの追加画面の、[基本]タブにてスクリプト名を入力して[次へ]をクリックする

4. [スクリプト設定]タブにて、以下項目を設定して[次へ]をクリックする

設定項目 設定値
スクリプトの場所 スクリプトファイルを選択
このスクリプトをログオンしたユーザーの資格情報を使用して実行する いいえ
(ログインしたユーザーの資格情報を使用してスクリプトを実行する場合は [はい] を選択します。
今回はシステム コンテキストでデバイスに対して実行させるため、[いいえ] を選択します。)
スクリプト署名チェックを強制 いいえ
(信頼できる発行元によってスクリプトが署名されている必要がある場合は、[はい]を選択します。
その必要がない場合は、[いいえ]を選択します。)
64 ビットの PowerShell ホストでスクリプトを実行する はい
(64ビットのクライアント アーキテクチャ上のPowerShell ホストでスクリプトを実行する場合は、[はい]を選択します。
32ビットPowerShell ホストでスクリプトを実行する場合は、[いいえ]を選択します。)

5. [割り当て]タブにて、何も選択せずに[次へ]をクリックする

6. [確認と追加]タブにて、設定内容を確認して[追加]をクリックする

上記手順にて、無効化用スクリプト用と有効化スクリプト用の2種類作成します。

以上で、Intune上へのスクリプトファイルの登録は完了です。

スクリプト配布用グループの作成

続いて、Power Shellスクリプトを配布するデバイスのグループを作成します。

プラットフォームスクリプトはユーザーグループおよびデバイスグループのどちらにも適用可能となっています。

本記事では、スクリプトを配布する対象をデバイスグループとするため、デバイスグループの作成方法について記載します。

1. 任意のブラウザよりMicrosoft Intune管理センター(https://intune.microsoft.com/#home)にサインインし、左ペインより[グループ]>[概要]>[新しいグループ]を選択する

2. グループ作成画面にて、以下項目を設定して[作成]をクリックする

設定項目 設定値
グループの種類 セキュリティ
グループ名 (任意のグループ名を入力)
グループの説明 (任意で入力)
メンバーシップの種類 割り当て済み
所有者 任意で設定
メンバー グループに所属させるデバイスを選択

3. グループの一覧より作成したグループを選択し、メンバーにデバイスが登録されていることを確認する

以上でIntuneスクリプト配布用グループの作成は完了です。

(RDP接続が必要となったタイミングで)ブロックルール無効化用Intuneスクリプトへ配布用グループを割り当て

対象のデバイスに対して管理者でのRDP接続が必要となったタイミングで、作成したIntuneスクリプトへ配布用グループを割り当てます。

1. 任意のブラウザよりMicrosoft Intune管理センター(https://intune.microsoft.com/#home)にサインインし、左ペインより[デバイス]>[デバイスの管理]>[スクリプトと修復]>[プラットフォームスクリプト]を選択して、作成したIntuneスクリプトをクリックします。

2. 左ペインより[プロパティ]を選択し、[割り当て]項目の[編集]をクリックする

3. [割り当て]タブにて、[組み込まれたグループ]項目の[グループを追加]をクリックして作成した配布用グループを選択し、グループが選択されたことを確認して、[レビューと保存]をクリックする

4. [レビューと保存]タブにて、[保存]をクリックする

以上で、Intuneスクリプトのデバイスグループへの割り当ては完了です。

デバイスグループの割り当てからおよそ30分~1時間後に、対象のデバイスへIntuneスクリプトが配布されて実行されます。

(なかなか実行されない場合、対象のデバイスを同期させることで配布されることがあります。)

Intuneスクリプトが適用されると、Windows ファイアウォールのTCP 3389受信ブロックルールが以下のように無効化されます。

この状態になると、管理者によるRDP接続が可能となります。

(TCP 3389の受信許可ルールは別途既定で設定されているため、通信が可能となります。)

ただ、TCP 3389が空いている状態は、Microsoftとしては非推奨とのことなので、RDP接続が不要となったタイミングでは後続の手順で再度ブロックルールを有効化します。

(RDP接続が不要となったタイミングで)ブロックルール有効化用Intuneスクリプトへ配布用グループを割り当て

RDP接続が不要となった際は、デバイスグループの割り当てを、ブロックルールの無効化用スクリプトからブロックルール有効化用スクリプトへ切り替えます。

1. 任意のブラウザよりMicrosoft Intune管理センター(https://intune.microsoft.com/#home)にサインインし、左ペインより[デバイス]>[デバイスの管理]>[スクリプトと修復]>[プラットフォームスクリプト]を選択して、ブロックルール無効化用のIntuneスクリプトをクリックする

2. 左ペインより[プロパティ]を選択し、[割り当て]項目の[編集]をクリックする

3. [割り当て]タブにて、[組み込まれたグループ]項目に表示されている配布用グループを[削除]をクリックして削除し、[レビューと保存]をクリックする

4. [レビューと保存]タブにて、[保存]をクリックする

5. 上記「ブロックルール無効化用Intuneスクリプトへ配布用グループを割り当て」にて記載した手順にて、ブロックルール有効化用スクリプトへデバイスグループを割り当てる

6. デバイスグループの割り当てから30分~1時間後にIntuneスクリプトが配布されていることを確認し、対象のIntuneスクリプトの[デバイスの状態]より、スクリプトの配布状況を確認する

有効化用スクリプトの適用が成功すると、TCP 3389のブロックルールが再び有効化され、RDP接続が不可の状態となります。

まとめ

本記事では、Intuneスクリプトを利用してWindows ファイアウォールルールの無効化/有効化を実行してクラウドPCへのRDP接続を許可する対応方法についてご紹介しました。

Windows 365にてクラウドPCを展開し、トラブル対応時などに管理者でRDP接続をして調査するといったケースにおいて有用な方法になるかと思います。

本記事がお役に立てれば幸いです。

*1:Azureネットワーク接続を利用してクラウドPCをデプロイした場合のみ

執筆担当者プロフィール
徐 一静

徐 一静(日本ビジネスシステムズ株式会社)

クラウドソリューション本部所属。主にAWSに関連する設計、構築を担当しています。Azureでも設計/構築経験ありです。 趣味はお笑いライブに行くことです。

担当記事一覧