UWFMGR.EXE コマンド実行時の文字数制限について

こんにちは、日本マイクロソフトの Windows サポートチームです。
今回は、Windows 10 での UWF (Unified Write Filter) に対して uwfmgr コマンドによる除外設定を行った場合の留意事項についてご紹介します。

 

<事象>
UWFMGR コマンドにて、パスが長いファイルやレジストリを対象として除外設定を行う場合、登録 (add) 操作は行えますが、削除 (remove) できない問題が発生します。

一例ですが、以下のように長いレジストリ パスに対して、除外設定の登録・削除を行った際、削除時にエラーが発生する場合があります。この現象は異なるレジストリ パスを対象とした場合も文字数によっては同様のエラーが発生します。

 

- 除外設定を登録 (add) します
uwfmgr registry add-exclusion HKLM\ControlSet001\Control\Power\User\PowerSchemes\381b4222-f694-41f0-9685-ff5bb260df2e\245d8541-3943-4422-b025-13a784f679b7\12345678-1234-1234-1234-12345678901234567890123

- 除外設定を削除 (remove) します
uwfmgr registry remove-exclusion HKLM\ControlSet001\Control\Power\User\PowerSchemes\381b4222-f694-41f0-9685-ff5bb260df2e\245d8541-3943-4422-b025-13a784f679b7\12345678-1234-1234-1234-12345678901234567890123レジストリー キー <Registry> は除外一覧に含まれません – アクションは実行されません。

 

上述の通り、登録したレジストリ パスを削除 (remove) する際にエラーが発生し、削除することができません。

 

<原因>
UWF 除外設定の登録 (add) を行うと、パスがノード パスに変換され、内部的なリストに追加されます。削除 (remove) を行う場合、UWFMGR は指定されたパスをノード パスに変換した上で削除を試みますが、この際に UWFMGR が使用するバッファー サイズが十分な大きさを持たないため、ノード パスに変換する時点でバッファーに格納できない部分のパスが切り捨てられます。
この結果、登録 (add) したパスと、削除 (remove) しようとするパスに差異が生じてしまい、削除対象のパスが見つからないと判断された結果、削除に失敗します。

 

<対処策>
本事象は、以下公開情報にある Windows PowerShell スクリプトで Windows Management Instrumentation(WMI)インターフェイスを使用いただくことで、長いパスに対しても削除  (remove)  の操作が行えます。
スクリプトのサンプルについては、以下公開情報内の “Remarks” にある “Example” を参考としていただき、ご利用環境に合わせてコンピューター名を変更するなどの上ご利用ください。

 

UWF_RegistryFilter
/en-us/windows-hardware/customize/enterprise/uwf-registryfilter