すべてのユーザー プロファイル間で同じ Windows レジストリが共有されていますか?

すべてのユーザー プロファイル間で同じ Windows レジストリが共有されていますか?

私の Windows 10 PC には、開発者プロファイルと通常のプロファイルの 2 つのユーザー プロファイルがあります。開発者プロファイルでは、.regアクティブな Git Bash プロンプトで Windows ターミナル インスタンスを開くコンテキスト メニュー項目を追加するファイルを実行しました。

驚いたことに、他の Windows プロファイルのコンテキスト メニューにも新しいメニュー オプションが表示されましたが、クリックすると、指定されたパスまたはファイルにアクセスできないというエラーが表示されました。これは、通常のプロファイルに Windows Terminal がインストールされていないためです。また、通常のプロファイルで問題のレジストリ キーを削除すると、開発者プロファイルのコンテキスト メニューからもメニュー項目が削除されます。

同じ Windows レジストリが 2 つのプロファイル間で共有されており、これが原因でしょうか? もしそうなら、各ユーザー プロファイルに個別のレジストリを作成するにはどうすればよいでしょうか?

登録ファイル:

Windows Registry Editor Version 5.00
    
[HKEY_CLASSES_ROOT\Directory\Background\shell\windowsterminal]
@="Open Windows Terminal Here"
"Icon"="%USERPROFILE%\\AppData\\Local\\WTerminal\\terminal.ico"
        
[HKEY_CLASSES_ROOT\Directory\Background\shell\windowsterminal\command]
@="wt new-tab --profile \"Git Bash\" --startingDirectory ."

答え1

はい、いいえ。HKEY_LOCAL_MACHINE共有されますか、HKEY_CURRENT_USERユーザーごとにプライベートになりますか。

一方、HKEY_CLASSES_ROOTはバーチャル木は実際には統合されたビューユーザーごとのものHKCU\Software\ClassesHKLM\Software\Classesツリーのものの両方です。(これは分離がなかった Windows 9x からの名残です。)

HKCR への書き込みは、ユーザーの権限と、更新されるキーが元々 HKCU からロードされたか HKLM からロードされたかに応じて、個人レジストリまたはシステム レジストリのいずれかに書き込まれます。

ユーザーごとのファイル関連付けを行うには、HKEY_CURRENT_USER\Software\ClassesHKEY_CLASSES_ROOT を使用する代わりに、それらを配置します。同様に、システム全体の関連付けを作成するには、それらを HKLM に配置します。

答え2

はい、レジストリは 1 つだけです。レジストリには、実際のハイブがいくつかと、「仮想」ハイブがいくつか存在します。最も重要な実際のハイブは、HKEY_LOCAL_MACHINEとですHKEY_USERS。後者が示すように、複数のユーザーの値を保持します。

今は、1 つのサブキーHKEY_CURRENT_USERの仮想マッピングです。これは、大まかに言えば、プロセスを開始したユーザーのキーです。したがって、プロセスによってマッピングが異なる場合があります。同様に、そのサブキーをマージして形成された仮想ビューもあります。HKEY_USERSHKEY_CURRENT_USERHKEY_CLASSES_ROOTHKEY_LOCAL_MACHINEHKEY_USERS

レジストリはアクセス制御リスト (ACL) をサポートしているため、他のユーザーのキーを表示できない場合があります。

関連情報