
Tengo dos perfiles de usuario en mi PC con Windows 10, un perfil de desarrollador y un perfil normal. En el perfil de desarrollador, ejecuté un .reg
archivo para agregar un elemento del menú contextual que abre una instancia de Terminal de Windows con un mensaje de Git Bash activo.
Para mi sorpresa, el menú contextual en el otro perfil de Windows también mostraba la nueva opción de menú, pero al hacer clic, mostraba un error que decía que no podía acceder a la ruta o al archivo especificado. Esto se debe a que no tengo Windows Terminal instalado en el perfil normal. Y eliminar las claves de registro en cuestión en el perfil normal también elimina el elemento del menú contextual en el perfil de desarrollador.
¿Se comparte el mismo registro de Windows entre los dos perfiles y esto provoca que esto suceda? Si es así, ¿cómo puedo tener un registro independiente para cada perfil de usuario?
Archivo de registro:
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 ."
Respuesta1
Si y no. HKEY_LOCAL_MACHINE
está compartido; HKEY_CURRENT_USER
es privado por usuario.
Mientras tanto HKEY_CLASSES_ROOT es unvirtualárbol que en realidad esuna vista fusionadatanto por usuario HKCU\Software\Classes
como por HKLM\Software\Classes
árboles. (Es un resto de Windows 9x, que no tenía la separación).
Las escrituras realizadas en HKCR irán al registro personal o del sistema según sus privilegios y si la clave que se actualiza se cargó originalmente desde HKCU o HKLM.
Para tener asociaciones de archivos por usuario, colóquelas HKEY_CURRENT_USER\Software\Classes
en lugar de usar HKEY_CLASSES_ROOT. De manera similar, para crear archivos para todo el sistema, colóquelos en HKLM.
Respuesta2
Sí, hay un registro único. El registro tiene varias colmenas reales y varias colmenas "virtuales". Dos de las colmenas reales más importantes son HKEY_LOCAL_MACHINE
y HKEY_USERS
. Como implica esto último, tiene valores para múltiples usuarios.
Ahora HKEY_CURRENT_USER
hay un mapeo virtual de una HKEY_USERS
subclave, en términos generales, la clave del usuario que inició el proceso. Por lo tanto, diferentes procesos pueden tener HKEY_CURRENT_USER
asignaciones diferentes. De manera similar, HKEY_CLASSES_ROOT
también es una vista virtual, formada por la fusión HKEY_LOCAL_MACHINE
y esa HKEY_USERS
subclave.
El registro admite listas de control de acceso (ACL), por lo que es posible que no pueda ver las claves de otros usuarios.