Benutzer mit den meisten Antworten
Registrierungsdatenbank - HKEY_Users

Frage
-
Hallo!
Ein paar Fragen zum Registrypfad "HKEY_Users".
1. In diesem Pfad stehen ja nur die "Kontokennungen". Wie kann man den zugehörigen Namen auslesen? Beim angemeldeten Benutzer könnte man zwar den Benutzernamen auslesen, aber ich würde gerne den zur Kennung gehörenden Namen haben (vor allem für die nicht angemeldeten Benutzer,).
2. Gibt es eine Möglichkeit andere Benutzer bzw. dessen "ntuser.dat" per Schript in die Registry zu laden, um dort gezielt Registryschlüssel ablegen zu können? Wenn nicht möglich, gibt es eine andere Möglichkeit Registryeinträge für nicht angemeldete Benutzer zu setzen?
Danke!
Gruß, René
P.S.: Ich habe natürlich Administratorrechte. Gruppemrichtlinien sollen hier nicht behandelt werden.
- Bearbeitet mumpel Dienstag, 22. August 2017 21:35
Antworten
-
Moin,
ad 1. Die "Kontokennungen" sind in Wirklichkeit SIDs. Die kannst Du im AD auflösen. Nicht angemeldete User sind unter HKEY_USERS normalerweise nicht zu sehen. Die wenigen "kurzen" SIDs kannst Du hier nachschauen: https://support.microsoft.com/de-de/help/243330/well-known-security-identifiers-in-windows-operating-systems .
Um den Usernamen auszulesen, kannst Du unterhalb des SID-Schlüssels den Unterschlüssel "Volatile Environment" untersuchen. Da stehen Umgebungsvariablen, so auch USERNAME.
ad 2. Ja, die gibt es:
REG LOAD HKLM\SomeUser_Loaded c:\Users\SomeUser\NTUSER.DAT
und nach getaner Arbeit
REG UNLOAD HKLM\SomeUser_Loaded
nicht vergessen :-)
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com- Als Antwort markiert mumpel Mittwoch, 23. August 2017 11:29
Alle Antworten
-
Moin,
ad 1. Die "Kontokennungen" sind in Wirklichkeit SIDs. Die kannst Du im AD auflösen. Nicht angemeldete User sind unter HKEY_USERS normalerweise nicht zu sehen. Die wenigen "kurzen" SIDs kannst Du hier nachschauen: https://support.microsoft.com/de-de/help/243330/well-known-security-identifiers-in-windows-operating-systems .
Um den Usernamen auszulesen, kannst Du unterhalb des SID-Schlüssels den Unterschlüssel "Volatile Environment" untersuchen. Da stehen Umgebungsvariablen, so auch USERNAME.
ad 2. Ja, die gibt es:
REG LOAD HKLM\SomeUser_Loaded c:\Users\SomeUser\NTUSER.DAT
und nach getaner Arbeit
REG UNLOAD HKLM\SomeUser_Loaded
nicht vergessen :-)
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com- Als Antwort markiert mumpel Mittwoch, 23. August 2017 11:29
-
Wobei bei so genannten Roaming-Profilen die zugehörige NTUSER.DAT nur auf dem Roaming-Server liegt.
Erst bei der Anmeldung wird diese dann auf den lokalen PC kopiert und die SID in HKEY_USERS eingetragen.Dies ist auch der Grund, warum bei Änderung der Registry des Users (Anwender-/Anwendungseinstellungen) diese u.U. verloren gehen können, wenn der User sich nicht richtig abgemeldet hat. Denn erst die Abmeldung überträgt die NTUSER.DAT wieder auf den Server.
-
Wobei bei so genannten Roaming-Profilen die zugehörige NTUSER.DAT nur auf dem Roaming-Server liegt.
Erst bei der Anmeldung wird diese dann auf den lokalen PC kopiert und die SID in HKEY_USERS eingetragen....aber nur, wenn die Richtlinie "lokale Kopien von Roaming-Profilen bei Abmeldung löschen" in Kraft ist. Ansonsten wird das Profil bei der Abmeldung komplett auf der Maschine belassen und kann auch genutzt werden, wenn der Filer mit dem servergespeicherten Profil gerade nicht erreichbar oder die Leitung dorthin zu langsam ist.
Bei Terminalservern und Maschinen, wo sich tendenziell viele User anmelden, wird man diese Richtlinie in der Regel aktivieren, damit die Platte nicht zugemüllt wird. Bei klassischen Sachbearbeiter-Arbeitsplätzen bleibt sie oft deaktiviert, um die Ladezeit zu verkürzen. Und ein echtes "Roaming" findet da eh selten statt, die servergespeicherte Kopie ist daher eher als ein Backup zu sehen.
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com -
Ich brauche das nur für lokale Rechner.
Laden kann ich per VBA. (Code aus dem Internet)
Function LoadUserProfile(strUserName As String) Set objshell = CreateObject("Wscript.shell") objshell.Exec ("%comspec% /k reg.exe load HKU\" & strUserName & _ " C:\Users\" & strUserName & "\ntuser.dat") End Function
Aber entladen kann ich nicht. Das AV-Programm (F-Secure) schlägt sofort Alarm und schießt Excel ab.
Function UnloadUserProfile(strUserName As String) Set objshell = CreateObject("Wscript.shell") objshell.Exec ("%comspec% /k reg.exe unload HKU\" & strUserName) End Function
Gibt es eine andere Möglichkeit in VB/VBA? -
Moin,
versuch das mal in Deinen eigenen HKCU als Unterschlüssel zu laden. Vielleicht ist F-Secure da gnädiger...
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com -
Wenn der User angemeldet ist kann es ggf. bei der Abmeldung dann bei der Rückkopie überschrieben werden.
Bei der nächsten Anmeldung sollte ggf. über Datumabgleich die aktuellere Version wieder geladen werden.
Dies setzt aber voraus, dass keiner die Registry in irgendeiner weise tatsächlich anpackt.
Allerdings hat meine NTUSER.DAT als letztes Änderungsdatum das Datum meiner letzten Abmeldung.
M.a.W., auch bei lokalen Profilen wird die Registry bei Abmeldung verändert.Ich denke, dass permanente Änderungen eher per Logon-Script festgelegt werden sollten. Alles andere erscheint mir unsicher.
-
Das wird aber nichts nützen. Es soll ja in HKU angezeigt werden. Oder kann man fremde Profile auch beeinflussen/ändern wennn sie in HKCU geladen werden?
Du kannst ein beliebiges Registry Hive in einen beliebigen Schlüssel reinladen, auf den Du genügend Rechte hast. Ob das ursprünglich ein User-Profil war, ist REGEDIT egal.Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com -
Irgendwie funktioniert es nicht so wie es soll.
Ich habe gerade versucht mit "RegLoadKey" zu arbeiten, aber da passiert garnichts. Leider beziehen sich die meisten Codebeispiele im Internet auf C. Für VB/VBA/.Net finde ich kein Beispiel, kann also auch nicht sagen ob ich das richtig nach VBA übertragen habe.
Option Private Module Option Explicit Public Declare PtrSafe Function LadeSchluessel Lib "advapi32.dll" Alias "RegLoadKeyA" _ (ByVal hKey As String, ByVal lpSubKey As String, ByVal lpFile As String) As LongPtr Public Const HKEY_CLASSES_ROOT = &H80000000 Public Const HKEY_CURRENT_USER = &H80000001 Public Const HKEY_LOCAL_MACHINE = &H80000002 Public Const HKEY_USERS = &H80000003 Public Const HKEY_PERFORMANCE_DATA = &H80000004 Public Const HKEY_CURRENT_CONFIG = &H80000005 Public Const HKEY_DYN_DATA = &H80000006
Sub test() Call LadeSchluessel(HKEY_USERS, "Testkonto", "C:\Users\Testkonto\NTUSER.DAT") End Sub
-
Geht doch ganz einfach.
Private Sub Userform_Terminate() Dim objDeleteHKU As Object If TreeView2.Nodes.Count > 3 Then Exit Sub For Each objDeleteHKU In TreeView2.Nodes If objDeleteHKU.Index > 2 Then Shell "REG UNLOAD HKU\" & objDeleteHKU.text Next objDeleteHKU End Sub
-
Am 22.08.2017 um 23:55 schrieb Evgenij Smirnov:> ad 2. Ja, die gibt es:> REG LOAD HKLM\SomeUser_Loaded c:\Users\SomeUser\NTUSER.DATOder in Regedit - Datei -> Struktur laden ...TschöMark--Mark Heitbrink - MVP Group Policy - Cloud and Datacenter ManagementHomepage: http://www.gruppenrichtlinien.de - deutschAktuelles: https://www.facebook.com/Gruppenrichtlinien/GET Privacy and DISABLE Telemetry on Windows 10 - gp-pack PaT
-
Am 22.08.2017 um 23:35 schrieb mumpel:> 1. In diesem Pfad stehen ja nur die "Kontokennungen". Wie kann man den> zugehörigen Namen auslesen?Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileListTschöMark--Mark Heitbrink - MVP Group Policy - Cloud and Datacenter ManagementHomepage: http://www.gruppenrichtlinien.de - deutschAktuelles: https://www.facebook.com/Gruppenrichtlinien/GET Privacy and DISABLE Telemetry on Windows 10 - gp-pack PaT
-
Am 24.08.2017 um 11:14 schrieb bfuerchau:> Bei mir stehen da keine Namen drin sondern nur Pfade und Einstellungen> die nichts mit dem Benutzernamen zu tun haben.ProfileImagePath entspricht dem Pfad inkl. AnmeldenameTschöMark--Mark Heitbrink - MVP Group Policy - Cloud and Datacenter ManagementHomepage: http://www.gruppenrichtlinien.de - deutschAktuelles: https://www.facebook.com/Gruppenrichtlinien/GET Privacy and DISABLE Telemetry on Windows 10 - gp-pack PaT
-
Dem muss ich leider wiedersprechen.
Bei einer Umbenennung des Users ändert sich nicht der Profilpfad.
Z.B. hatte ich einen User "Kabine" eingerichtet mit pfad und den anschließend personalisiert.
SYSTEM verweist auf systemprofile, "Lokaler Dienst" auf localservice?
Und für die User DWM-1, UMFD-0, UMFD-1 gibt es gar keine SID-Entsprechungen.Wo also steht der Username? In der gesamten Registry taucht der Anmeldename nicht auf, außer in LastLogon.
-
Moin,
ich glaube, ihr redet ein klein wenig aneinander vorbei. Es ist ja immer die Frage, welche Info man braucht:
- bei einem angemeldeten User steht der Name unter HKU\<SID>\Volatile Environment\USERNAME oder im Output von query user oder in WMI Win32_LoggedOnUser verknüpft mit Win32_LogonSession
- bei einem auf dem System existierenden Userprofil kriegt man zuverlässig nur die SID: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList . Dabei ist es freilich nicht gesichert, dass der User noch existiert, besonders wenn es sich um einen Domänen-User handelt. Und ja, der Profilpfad ändert sich nicht, wenn man den User umbenennt. Und dann gibt es noch den Fall "gleichlautender User lokal und in Domäne" --> der erste kriegt C:\Users\<USERNAME>, der zweite die Domäne bzw. den Computernamen angehängt.
- alle lokalen User (auch die, die sich noch nie angemeldet hatten) bekommt man zuverlässig nur mir WMI.
- DWM-1 usw. sind gar keine User, sondern Logon-Konsolen, an denen noch gar kein User angemeldet ist.
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com -
Am 24.08.2017 um 13:57 schrieb bfuerchau:> Bei einer Umbenennung des Users ändert sich nicht der Profilpfad.Stimmt leider, da sich die SID nicht ändert.> SYSTEM verweist auf systemprofile, "Lokaler Dienst" auf localservice?Ja. Anzeige Name vs. samaccountname vs. %username% ...> Und für die User DWM-1, UMFD-0, UMFD-1 gibt es gar keine SID-Entsprechungen.Da sie sich nie interaktiv angemeldet haben und dafür nie einBenutzerprofil geladen wurde. Die Liste gibt nur die schon malangemeldeten Benutzerprofile an.TschöMark--Mark Heitbrink - MVP Group Policy - Cloud and Datacenter ManagementHomepage: http://www.gruppenrichtlinien.de - deutschAktuelles: https://www.facebook.com/Gruppenrichtlinien/GET Privacy and DISABLE Telemetry on Windows 10 - gp-pack PaT