[solved]Registry-Einträge werden im falschen Pfad gesetzt

Antworten
wKovacs
Beiträge: 93
Registriert: 14 Aug 2020, 12:29

[solved]Registry-Einträge werden im falschen Pfad gesetzt

Beitrag von wKovacs »

Hallo,

ich habe eine Weile gebraucht das zu finden und bin mir auch nicht sicher, ob das ein OPSI-Bug ist oder Windows selbst verursacht...

Hier erstmal mein Code:

Code: Alles auswählen

[Actions]
requiredWinstVersion >= 4.12.0.16
setLogLevel=9
ScriptErrorMessages=on

DefVar $WinstRegKey$
DefVar $ProductName$
DefVar $read$

Set $ProductName$ = "%installingProdName%"
Set $WinstRegKey$ = "HKLM\SOFTWARE\opsi.org\winst\"+$ProductName$

Registry_set_reg

set $read$ = GetRegistryValue($WinstRegKey$, "test")

comment $read$


[Registry_set_reg]
openkey [$WinstRegKey$]
set "test" = REG_SZ:"Test"
Es soll einfach nur ein Registry-Eintrag geschrieben werden und dieser dann ausgelesen.

Log-Eintrag für den Schreibbefehl:

Code: Alles auswählen

[8] [Nov 10 07:49:53:023] [newprod]   We will open Key : HKLM\SOFTWARE\opsi.org\winst\newprod
[6] [Nov 10 07:49:53:023] [newprod]   Registry key [HKLM\SOFTWARE\opsi.org\winst\newprod]  created
[6] [Nov 10 07:49:53:023] [newprod]         Variable "test"  set to "Test"
[6] [Nov 10 07:49:53:023] [newprod]         Key closed
Soweit so schön

Log-Eintrag für den Lesebefehl:

Code: Alles auswählen

[6] [Nov 10 07:38:51:158] [newprod] Info: Registry key [HKLM\SOFTWARE\opsi.org\winst\newprod]   could not be opened by RegOpenKeyEx,  Errorno 2 "Das System kann die angegebene Datei nicht finden.<"
Was ist passiert?

Ein Blick in die Registry zeigt dann, das unter dem angegebenen Key [HKLM\SOFTWARE\opsi.org\winst\newprod] NICHTS angelegt wurde. Stattdessen taucht der Eintrag unter [HKLM\SOFTWARE\WOW6432Node\opsi.org\winst\newprod] auf. Ich konnte nicht herausfinden, wodurch die verursacht wird und warum dies nur beim Schreiben auftritt, jedoch nicht beim lesen.

In diesem Zusammenhang bin ich erstaunt, dass das opsi-template-with-admin funktioniert, da dort Registry-Einträge genau wie in obigen Code geschrieben werden und anschliessend nicht gefunden werden...

vg

wKovacs
Zuletzt geändert von wKovacs am 10 Nov 2020, 10:57, insgesamt 1-mal geändert.
uncle_scrooge
Beiträge: 650
Registriert: 21 Feb 2012, 12:03
Wohnort: Mainz

Re: Registry-Einträge werden im falschen Pfad gesetzt

Beitrag von uncle_scrooge »

Works as designed....

WINST ist ein 32Bit-Programm. Und Windows leitet Aufrufe in den jeweiligen WoW-Bereich.
Um das einzufangen, gibt es für die meisten Funktionen die Aufrufparameter /32Bit /64Bit /SYSNATIVE.

openkey schreibt ohne /64Bit-Parameter in WoW.
Das gemeine bei Deinem Beispiel ist, daß GetRegistryValue qua default mit /SYSNATIVE (aka 64Bit) parametrisiert wird. Also auch im 64Bit-Zweig der Registry sucht.
Siehe auch: https://download.uib.de/opsi_stable/doc ... inst-64bit
wKovacs
Beiträge: 93
Registriert: 14 Aug 2020, 12:29

Re: Registry-Einträge werden im falschen Pfad gesetzt

Beitrag von wKovacs »

Danke - nach so einer Information hatte ich tatsächlich auch gesucht und nicht gefunden/übersehen... Asche auf mein Haupt :oops:

Vielen Dank für den Hinweis
Antworten