
Ich habe zwei Benutzerprofile auf meinem Windows 10-PC, ein Entwicklerprofil und ein normales Profil. Im Entwicklerprofil habe ich eine .reg
Datei ausgeführt, um ein Kontextmenüelement hinzuzufügen, das eine Windows-Terminalinstanz mit einer aktiven Git Bash-Eingabeaufforderung öffnet.
Zu meiner Überraschung zeigte das Kontextmenü im anderen Windows-Profil auch die neue Menüoption an, aber beim Anklicken wurde ein Fehler angezeigt, der besagte, dass auf den angegebenen Pfad oder die angegebene Datei nicht zugegriffen werden kann. Dies liegt daran, dass ich Windows Terminal nicht im regulären Profil installiert habe. Und das Löschen der betreffenden Registrierungsschlüssel im regulären Profil entfernt auch den Menüpunkt aus dem Kontextmenü im Entwicklerprofil.
Wird dieselbe Windows-Registrierung von beiden Profilen gemeinsam genutzt und ist dies der Grund dafür? Wenn ja, wie kann ich für jedes Benutzerprofil eine separate Registrierung einrichten?
Reg-Datei:
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 ."
Antwort1
Ja und nein. HKEY_LOCAL_MACHINE
Wird geteilt, HKEY_CURRENT_USER
ist pro Benutzer privat.
Mittlerweile ist HKEY_CLASSES_ROOT einvirtuellBaum, der eigentlicheine zusammengeführte Ansichtsowohl pro Benutzer HKCU\Software\Classes
als auch HKLM\Software\Classes
in Bäumen. (Das ist ein Überbleibsel aus Windows 9x, wo es diese Trennung nicht gab.)
In HKCR ausgeführte Schreibvorgänge werden abhängig von Ihren Berechtigungen und davon, ob der zu aktualisierende Schlüssel ursprünglich von HKCU oder HKLM geladen wurde, entweder in die persönliche oder die Systemregistrierung verschoben.
Um Dateizuordnungen für einzelne Benutzer zu haben, geben Sie diese in HKEY_CURRENT_USER\Software\Classes
statt in HKEY_CLASSES_ROOT ein. Um systemweite Zuordnungen zu erstellen, geben Sie diese in HKLM ein.
Antwort2
Ja, es gibt ein einziges Register. Das Register hat eine Reihe von realen Hives und eine Reihe von „virtuellen“ Hives. Zwei der wichtigsten realen Hives sind HKEY_LOCAL_MACHINE
und HKEY_USERS
. Wie letzteres andeutet, enthält es Werte für mehrere Benutzer.
Jetzt HKEY_CURRENT_USER
handelt es sich um eine virtuelle Zuordnung eines HKEY_USERS
Unterschlüssels, also grob gesagt des Schlüssels des Benutzers, der den Prozess gestartet hat. Daher können unterschiedliche Prozesse unterschiedliche HKEY_CURRENT_USER
Zuordnungen haben. Ähnlich HKEY_CLASSES_ROOT
verhält es sich mit einer virtuellen Ansicht, die durch Zusammenführen HKEY_LOCAL_MACHINE
und diesen HKEY_USERS
Unterschlüssel gebildet wird.
Die Registrierung unterstützt Zugriffskontrolllisten (Access Control Lists, ACLs), so dass Sie möglicherweise die Schlüssel anderer Benutzer nicht sehen können.