Windows Server RDS でスタート メニューが機能しない (応答しない)
<本文>
場合によっては、Windows Server 2022 または 2019 を実行している RDS ホスト上のスタート メニューまたはタスク バーに関する問題がユーザーから報告されることがあります。ユーザーがターミナル セッションで スタート ボタンをクリックすると、メニューが開かないか、RDP セッションがフリーズして応答しなくなります。
スタート メニュー インターフェイスとユーザー インタラクションは、Explorer.exe と StartMenuExperienceHost.exe という 2 つのプロセスによって管理されます。タスク マネージャーから再起動すると、1 回限りの問題がすぐに解決される場合があります。

多くの場合、RDS ファーム内のホストで スタート メニュー ボタンが機能しないという問題が一貫して発生します。これには通常、イベント ビューアー -> システム ログにイベント ID 10001 が記録され、Microsoft Store アプリを示す複数の DCOM サーバー エラーが伴います。

ユーザー セッションでスタート メニューが機能しない問題に対する考えられる解決策の 1 つは、問題のある Microsoft Store アプリ パッケージを再登録することです。 スタート ボタンが機能しないため、「Win+X」キーボード ショートカットを使用して PowerShell コンソールを開きます。次のコマンドを実行します。
Add-AppxPackage-Register "C:\Windows\SystemApps\ShellExperienceHost\_cw5n1h2txyewy\AppxManifest.xml"-DisableDevelopmentMode
または、すべての Microsoft Store アプリを一度に再登録します。
Get-AppXPackage | Foreach {Add-AppxPackage-DisableDevelopmentMode-Register "$($\_.InstallLocation)\AppXManifest.xml"}

これで問題が解決しない場合、または一時的にしか解決しない場合は、次のレジストリ キーの内容を確認してください。
-
HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\AppIso\FirewallRules -
HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules
私の場合、ユーザーがログインおよびログアウトするたびに、Microsoft Store アプリ (APPX/MSIX) に対して数千の Windows Defender ファイアウォール ルールが作成され、これらのルールが自動的にクリアされないことがわかりました。

ユーザーが Microsoft Store アプリを起動するたびに、新しい Windows Defender ファイアウォール ルールが自動的に追加されますが、古いルールは削除されません。ファイアウォール ルールが多数あると、StartMenuExperienceHost プロセスがフリーズする可能性があります。このプロセスは、ユーザー セッションで スタート メニューを表示する役割を果たします。 Windows Server ホストで スタート メニューの機能を復元するには、これらの Windows Defender ファイアウォール ルールをクリアします。
Windows ファイアウォールに多数の重複ルールがあると、Windows Server 上の RDS および RemoteApp セッションのパフォーマンスが大幅に低下する可能性があります。
まず、ファイアウォール ルールを含むレジストリ キーをバックアップしましょう。これにより、問題が発生した場合にロールバックできるようになります。
reg import "HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy"C:\Backup\_Firewall\_Policy\_rules.reg

AppIso レジストリ キー
Get-NetFirewallRule コマンドではファイアウォール ルールが認識されないため、PowerShell コマンドレットを使用してレジストリ キーのファイアウォール ルールを管理することはできません。したがって、レジストリから直接削除する必要があります。
レジストリ内の MS Store アプリのファイアウォール ルールをクリーンアップするには、次のコマンドを実行します。
reg delete HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\Configurable\System/va/f
reg delete HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\AppIso\FirewallRules/va/f
これにより、カスタム ファイアウォール ルールがクリアされます。

HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules。 Microsoft Store アプリに関連する重複したファイアウォール ルールが多数存在する可能性もあります。このレジストリ キーからすべての項目を削除しないでください。削除すると、デフォルトのルールを含むすべての Windows ファイアウォール ルールが削除されます。そうしないと、Windows ホストへのリモート アクセス (リモート デスクトップへのアクセスを含む) が失われる可能性があります。
また、レジストリ キーの下のルールの数も確認してください。 Microsoft Store アプリに関連する重複したファイアウォール ルールが多数存在する可能性もあります。このレジストリ キーからすべての項目を削除しないでください。削除すると、デフォルトのルールを含むすべての Windows ファイアウォール ルールが削除されます。そうしないと、Windows ホストへのリモート アクセス (リモート デスクトップへのアクセスを含む) が失われる可能性があります。
したがって、これらのルールをクリアする前に、必要な Windows ファイアウォール ルールを含む GPO を作成し、それをホストに適用して、アクセスが失われないようにします。
次のコマンドを使用して、デフォルトの Windows ファイアウォール設定とルールを復元します。
(New-Object-ComObject HNetCfg.FwPolicy2).RestoreLocalFirewallDefaults()
各ユーザー セッションで Microsoft Store アプリによって作成されたファイアウォール ルールを Windows で自動的にクリアするには、RDS サーバー上に DeleteUserAppContainersOnLogoff レジストリ パラメーターを作成し、その値を 1 に設定します。 PowerShell を使用してレジストリ項目を作成するには、次のコマンドを実行します。
New-ItemProperty-Path "HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy"-Type DWord-Name DeleteUserAppContainersOnLogoff-Value 1
これで、ユーザーのセッションが終了すると、そのユーザーに対して作成されたアプリのファイアウォール ルールが自動的にクリアされます。
残っているのは、APPX パッケージをサーバーに再登録することだけです。
Get-AppXPackage-AllUsers | Foreach {Add-AppxPackage-DisableDevelopmentMode-Register “$($\_.InstallLocation)\AppXManifest.xml”}
*️⃣ 出典リンク:
Microsoft Store アプリ (APPX/MSIX)、 、RDS および RemoteApp セッションのパフォーマンスを大幅に低下させる、レジストリ キーをバックアップする、 、Get-NetFirewallRule、必要な Windows ファイアウォール ルールを含む GPO を作成する、PowerShell を使用してレジストリ項目を作成する、