Windows Server 2016 および 2019 における Windows ファイアウォール ルールの肥大化について

こんにちは。Windows プラットフォーム サポート担当の沖です。

今回は、Windows Server 2016 / 2019 及び Windows 10  にて UWP アプリケーションに関する Windows ファイアウォールのルールが肥大化する問題について、本 Blog でご紹介します。

Symptom
---------------------------------------------------

RDS 環境で以下のような事象が発生している場合には、RDS 環境の Windows ファイアウォールのルールが本 Blog でご紹介するような状態となっていないか確認ください。

この事象は、RDS 環境の Windows Server 2016/2019 のほか、VDI 環境の Windows 10 でも発生する可能性があります。

・ログオン遅延
・サーバーハング
・パフォーマンスの劣化
・ログイン時の黒い画面表示 (デスクトップの表示までに時間がかかる)
・スタートメニューまたはCortanaを起動できない
・Internet Explorer を起動できない

また、本問題の発生時に、以下のようなイベントが記録されることがあります。
------------------------------------
Source: Microsoft-Windows-AppModel-Runtime
Date:
Event ID: 21
Task Category: None
Level: Error
Keywords: (70368744177664),AppContainer
Description: CreateAppContainerProfile failed for AppContainer Microsoft.Windows.ShellExperienceHost_cw5n1h2txyewy with error 0x800705AA.
------------------------------------
Source: Microsoft-Windows-AppModel-Runtime
Date:
Event ID: 21
Task Category: None
Level: Error
Keywords: (70368744177664),AppContainer
Description: CreateAppContainerProfile failed for AppContainer Microsoft.Windows.Cortana_cw5n1h2txyewy with error 0x800705AA.
------------------------------------

Condition
---------------------------------------------------

ユーザーがログオフするタイミングでユーザープロファイルが削除され、次回ログオン時にユーザープロファイルが新規で作成される環境で発生し得ます。
例えば、以下のような場合です。

パターン 1: 移動ユーザー プロファイルを使用し、且つ以下のポリシーを設定している場合
[コンピューターの管理]
- [管理用テンプレート]
- [システム]
- [ユーザー プロファイル]
- [一時記憶された移動プロファイルのコピーを削除する]

パターン 2 : RDS 環境にて、User Profile Disk を使用している場合

Cause
---------------------------------------------------

ユーザープロファイルの新規作成時に UWP アプリケーションに関する Windows ファイアウォール ルールが作成されますが、ユーザープロファイルの削除時にはそれらの Windows ファイアウォール ルールが削除されません。
これにより、ログオフ時にユーザープロファイルが削除される環境では、UWP アプリケーションに関する Windows ファイアウォール ルールがログオンの度に重複して追加され、以下のレジストリが肥大化していきます。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\Configurable\System

以下は Windows Server 2016 で、Cortana、アカウント、職場または学校のアカウントに関するルールが重複して追加された場合の例です。

Resolution
---------------------------------------------------

Windows Server 2016 及び Windows 10 ver 1607 (LTSB 2016 を含む) につきましては、2018 年 11 月 27 日に公開しました更新プログラム KB4467684 以降の更新を適用、レジストリ値の追加後 OS を再起動することで、次回ログオフしてユーザープロファイルが削除される時にユーザーの UWP に関するファイアウォール ルールが削除されるようになります。

(※既に追加され残っているルールについては次回のログオフに伴うユーザープロファイル削除時に削除されます。更新プログラムの適用、レジストリ値の追加、再起動だけでは削除されません。)

November 27, 2018—KB4467684 (OS Build 14393.2639)
https://support.microsoft.com/ja-jp/help/4467684/windows-10-update-kb4467684

- レジストリ値
キー : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy
名前 : DeleteUserAppContainersOnLogoff
種類 : REG_DWORD
値 : 1 ※ユーザープロファイル削除時にファイアウォールのルールを削除します。

 

Workaround
---------------------------------------------------

Resolution に記載した更新プログラムおよびレジストリ値による対処は Windows Server 2016 及び Windows 10 ver 1607 に関するものでございますため、 Windows Server 2019 及び Windows 10 (ver 1607 以外) については以下にてご案内する手順でご対応頂きますようお願いいたします。

また、Windows Server 2012 R2 でも、UWP アプリケーションを利用している環境では、本問題が発生する可能性があります。
もし問題が発生した場合には、以下のようにレジストリのバックアップ後、レジストリを削除して改善するか確認ください。

- レジストリのエクスポート
reg export "HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\Configurable\System" fw.reg

- レジストリの削除
reg delete HKLM\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\Configurable\System /va

 

Update History
---------------------------------------------------

2018/10/24 : 本 Blog の公開

2018/10/31 : Windows Server 2019 についても追記

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

2018/11/29: Windows Server 2016 の更新プログラム追加によるResolutionを記載しました。