userlogin.opsi HKCU Key auslesen

Antworten
dkalass
Beiträge: 8
Registriert: 29 Okt 2008, 18:53
Wohnort: 23898 Sandesneben

userlogin.opsi HKCU Key auslesen

Beitrag von dkalass »

Moin,
ich möchte den Speicherort des Verzeichnisses Dokumente ermitteln, ob umgeleitet oder nicht.
Führe ich mein Script lokal mit Winst32.ee aus bekomme ich folgendes Ergebnis:

LogLevel set to 8
Defined global local string var: $personal$ with value:
Set $Personal$ = GetRegistryStringvalue("[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] Personal")
key0 = HKEY_CURRENT_USER
Registry started readonly
Registry started with redirection (32 Bit)
Registry key [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] opened
Key closed
The value of the variable "$Personal$" is now: "\\qnap01\homes\Administrator\Dokumente"

Das ist genau was ich möchte.

Wird das Script nach der Benutzeranmeldung ausgeführt, sieht es so aus:

(733) [6] [2022-12-07 16:07:38.569] [arduino-ide] LogLevel set to 8
(736) [7] [2022-12-07 16:07:38.569] [arduino-ide] Running loginscripts: key0 is now: HKEY_USERS, key is now: S-1-5-21-123533997-709188700-1805878784-500\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
(737) [7] [2022-12-07 16:07:38.569] [arduino-ide] Registry started readonly
(738) [7] [2022-12-07 16:07:38.569] [arduino-ide] Registry started with redirection (32 Bit)
(739) [5] [2022-12-07 16:07:38.569] [arduino-ide] Registry key [HKEY_USERS\S-1-5-21-123533997-709188700-1805878784-500\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] does not exist
(740) [6] [2022-12-07 16:07:38.569] [arduino-ide] The value of the variable "$Personal$" is now: ""

Die SID existiert gar nicht in der Registry ...

Auch die Versuche mit diesen Abfragen schlagen fehl:
set $Personal$ = GetRegistryStringValue64("[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] Personal")
set $Personal$ = GetRegistryStringValueSysNative("[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] Personal")

Gefunden habe ich auch die Option für WinBatch_xxx /RunAsLoggedonUser, leider ist das nicht in userlogin.opsi unterstützt.

Wo liegt mein Fehler?
dkalass
Beiträge: 8
Registriert: 29 Okt 2008, 18:53
Wohnort: 23898 Sandesneben

Re: userlogin.opsi HKCU Key auslesen

Beitrag von dkalass »

Moin zusammen, ich schreibe mal selbst die Antwort auf meine Frage ...

Der Client ist Mitglied einer Samba Domain.
Meldet man sich als "normaler" Domainuser an, ist alles ok.

Meldet man sich als "lokaler" Administrator an, ist alles ok.

Running loginscripts: key0 is now: HKEY_USERS, key is now: S-1-5-21-123533997-709188700-1805878784-500\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
Registry started readonly
Registry started with redirection (32 Bit)
Registry key [HKEY_USERS\S-1-5-21-123533997-709188700-1805878784-500\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] opened
Key closed
The value of the variable "$Personal$" is now: "C:\Users\Administrator\Documents"


Meldet man sich als "Domain" Administrator an, wird die Variable durch die Abfrage nicht gesetzt:

Running loginscripts: key0 is now: HKEY_USERS, key is now: S-1-5-21-123533997-709188700-1805878784-500\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
Registry started readonly
Registry started with redirection (32 Bit)
Registry key [HKEY_USERS\S-1-5-21-123533997-709188700-1805878784-500\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] does not exist


Ich kann mir das eigentlich nur so erklären, dass es ein Problem mit der Opsi-script.exe sein kann.
Es muss also ein Unterschied für die Opsi-Script.exe sein, ob ein lokaler Administrator oder ein Domain Administrator angemeldet ist.
Bis gespannt ob es hierzu eine Antwort gibt.
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3313
Registriert: 04 Jun 2008, 14:27

Re: userlogin.opsi HKCU Key auslesen

Beitrag von d.oertel »

Hallo dkalass,

danke für den Hinweis.
Das sieht nach einem Bug aus und wir werden das uns anschauen.

Hintergrund zum Verständnis:
Auch im loginscript Modus wird der opsi-script vom Dienst System gestartet - läuft also nicht im Kontext des einglogten Users.
Was opsi-script macht: Es ermittelt die SID des eingelogten users und verwendet diese um über HKEY_USERS den richtigen Zweig zu finden.
(HKCU ist nur ein Link auf den unter HKU\SID liegenden Teil. Dieser wird beim einloggen aus der Datei ntuser.dat in die Registry aingehängt.)
Es sieht so aus, als würde da bei der Ermittlung der korrekten SID etwas schief gehen,

Bitte senden Sie doch mal ein komplettes (!) Log an d.oertel(at)uib.de

gruß
d.oertel
opsi support - uib gmbh

For productive opsi installations we recommend support contracts.
http://www.uib.de
http://www.opsi.org
Antworten