2024年1月12日金曜日

Windows 10 のタスクバーに表示できないプログラムがある

Windows 10 のメニューにタスク バーにピン留めするスタート メニューにピン留めするが表示されないプログラムがあります。

次のレジストリ値のデータに登録のある名前はピン留めできません。

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileAssociation

AddRemoveAppsHostApps 値のデータに含まれる実行ファイルは登録できません。

  • AddRemoveApps

    CONTROL.EXE;DELDRV.EXE;DESINSTALADOR.EXE;DESINSTALAR.EXE;DFSVC.EXE;EAUNINSTALL.EXE;GUESTMODEMSG.EXE;HPZSCR01.EXE;HPZSCR40.EXE;INSTALL.EXE;ISUN0407.EXE;ISUNINST.EXE;IUN6002.EXE;LNKSTUB.EXE;MSIEXEC.EXE;MSOOBE.EXE;SETUP.EXE;ST5UNST.EXE;UNINS000.EXE;UNINS001.EXE;UNINS002.EXE;UNINST.EXE;UNINSTAL.EXE;UNINSTALL.EXE;UNINSTALLER.EXE;UNWISE.EXE;UNWISE32.EXE;WERFAULT.EXE;WLRMDR.EXE;WUAPP.EXE;

  • HostApps

    APPLAUNCH.EXE;DLLHOST.EXE;HH.EXE;JAVA.EXE;JAVAW.EXE;MMC.EXE;MSHTA.EXE;RUNDLL32.EXE;WINHLP32.EXE;

グループ ポリシー オブジェクト エディター (gpedit.msc) がピン留めできないのは、ホストする MMC.EXE (Microsoft 管理コンソール)が禁止されているためなのが確認できます。

許可されないピン留めの動作確認

  1. ピン留めを許可されないファイルを用意。

  2. リネームすればピン留め可能。

判定は非常に単純で、Windows 7 での AddRemoveNames のキーワード一致によるブロックと異なり、Windows10 ではぴったりマッチするプログラム名のみピン留め禁止です。

ブロックの解除も可能 (でも、やらないで!)

レジストリの該当する .exe のデータを削除すれば、そのプログラムはタスク バーとスタート メニューにピン留めできます。

HKCU の同キーは参照されないので、HKLM の値をバックアップ後に編集することになりますが、そこまでしてピン留めしたい場面は少ないでしょう。もちろん非推奨

🧊 HKCR、HKCU、HKLM の関係

自主的なブロックも可能

2つの禁止方法があります。

NoStartPage を使ってブロック

レジストリ HKCR\Applications 以下にプログラム名のキーを作り、NoStartPage (文字列値)を作成します。

メモ帳のピン留めを禁止する例

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Applications\notepad.exe]
"NoStartPage"=""

実用のさいは HKCU をカスタマイズすると安全でしょう。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Applications\notepad.exe]
"NoStartPage"=""

レジストリに禁止するプログラム名を追加する

Firefox を禁止してみます。

  1. 先ほどの AddRemoveAppsFIREFOX.EXE を追加します。

  2. エクスプローラー、または Windows を再起動します。

タスクバーの右クリックメニューの変化


実行前


実行後

ピン留めできないプログラム リストまとめ

すべてのピン留め不可ファイルをアルファベット順に並べています。

APPLAUNCH.EXE CONTROL.EXE DELDRV.EXE DESINSTALADOR.EXE DESINSTALAR.EXE DFSVC.EXE DLLHOST.EXE EAUNINSTALL.EXE GUESTMODEMSG.EXE HH.EXE HPZSCR01.EXE HPZSCR40.EXE INSTALL.EXE ISUN0407.EXE ISUNINST.EXE IUN6002.EXE JAVA.EXE JAVAW.EXE LNKSTUB.EXE MMC.EXE MSHTA.EXE MSIEXEC.EXE MSOOBE.EXE RUNDLL32.EXE SETUP.EXE ST5UNST.EXE UNINS000.EXE UNINS001.EXE UNINS002.EXE UNINST.EXE UNINSTAL.EXE UNINSTALL.EXE UNINSTALLER.EXE UNWISE.EXE UNWISE32.EXE WERFAULT.EXE WINHLP32.EXE WLRMDR.EXE WUAPP.EXE