[gelöst] Funktion Registry loadUnicodeTextFile funktioniert nicht mehr korrekt

Antworten
chris_10
Beiträge: 18
Registriert: 08 Dez 2022, 10:58

[gelöst] Funktion Registry loadUnicodeTextFile funktioniert nicht mehr korrekt

Beitrag von chris_10 »

Guten Tag zusammen,

wir verwenden bei uns in mehreren Setups die Funktion "Registry loadUnicodeTextFile". Zuletzt im August diesen Jahres hatte ich erst eine Installation erfolgreich mit dieser Funktion gebaut und wir verwenden dies Funktion in einigen Setups bereits seit 2013.

Aktuell schlägt aber ein Aufruf einer Registry Datei, z.B. via

Code: Alles auswählen

Registry loadUnicodeTextFile ("%SCRIPTPATH%\RegFile.reg") /AllNTUserDats /regedit /SysNative
teilweise fehl.

Registry DWORD Werte werden, sobald diese einen oder mehrere Buchstaben (A-F sind ja möglich) beinhalten, nicht mehr korrekt als DWORD Werte erkannt.

Folgendes konnte Reproduzierbar im Log erfasst werden:

Code: Alles auswählen

[6] [2022-12-08 10:27:23.782] [Programm]                   Variable "KlTop"  set to "00000050"
[6] [2022-12-08 10:27:23.782] [Programm]                   "KlLeft"=dword:00000050
[6] [2022-12-08 10:27:23.783] [Programm]                   Variable "KlLeft"  set to "00000050"
[6] [2022-12-08 10:27:23.783] [Programm]                   "KlHeight"=dword:00000269
[6] [2022-12-08 10:27:23.783] [Programm]                   Variable "KlHeight"  set to "00000269"
[6] [2022-12-08 10:27:23.783] [Programm]                   "KlWidth"=dword:00000297
[6] [2022-12-08 10:27:23.783] [Programm]                   Variable "KlWidth"  set to "00000297"
[6] [2022-12-08 10:27:23.783] [Programm]                   "AsTop"=dword:0000005a
[2] [2022-12-08 10:27:23.783] [Programm]                   Syntax Error in Section: Registry {loadUnicodeTextFile ("p:\Programm\RegFile.reg") /AllNTUserDats /regedit /SysNative}  (Command in line 158 in section: Registry {loadUnicodeTextFile ("p:\Programm\RegFile.reg") /AllNTUserDats /regedit /SysNative} ; file: unknown; origin: not found): "AsTop"=dword:0000005a -> 0000005a is no valid DWORD
[6] [2022-12-08 10:27:23.893] [Programm]                   "AsLeft"=dword:0000005a
[2] [2022-12-08 10:27:23.893] [Programm]                   Syntax Error in Section: Registry {loadUnicodeTextFile ("p:\Programm\RegFile.reg") /AllNTUserDats /regedit /SysNative}  (Command in line 159 in section: Registry {loadUnicodeTextFile ("p:\Programm\RegFile.reg") /AllNTUserDats /regedit /SysNative} ; file: unknown; origin: not found): "AsLeft"=dword:0000005a -> 0000005a is no valid DWORD
[6] [2022-12-08 10:27:24.010] [Programm]                   "AsHeight"=dword:000002d5
[2] [2022-12-08 10:27:24.010] [Programm]                   Syntax Error in Section: Registry {loadUnicodeTextFile ("p:\Programm\RegFile.reg") /AllNTUserDats /regedit /SysNative}  (Command in line 160 in section: Registry {loadUnicodeTextFile ("p:\Programm\RegFile.reg") /AllNTUserDats /regedit /SysNative} ; file: unknown; origin: not found): "AsHeight"=dword:000002d5 -> 000002d5 is no valid DWORD
[6] [2022-12-08 10:27:24.127] [Programm]                   "AsWidth"=dword:000002af
[2] [2022-12-08 10:27:24.127] [Programm]                   Syntax Error in Section: Registry {loadUnicodeTextFile ("p:\Programm\RegFile.reg") /AllNTUserDats /regedit /SysNative}  (Command in line 161 in section: Registry {loadUnicodeTextFile ("p:\Programm\RegFile.reg") /AllNTUserDats /regedit /SysNative} ; file: unknown; origin: not found): "AsWidth"=dword:000002af -> 000002af is no valid DWORD
Wir haben verschiedene Tests durchgeführt und können daher sagen das das Problem unter Windows 10 Enterprise SAC (20H2 & 21H2) bei folgenden OPSI Client Agent Versionen auf tritt:
- 4.2.0.40 (ältere Version)
- 4.2.0.42 (aktuelle Stable)
- 4.2.0.43 (aktuelle Testing)

Opsi Script hat einheitlich die Version 4.12.6.2-3.
Zuletzt geändert von chris_10 am 03 Jan 2023, 09:37, insgesamt 1-mal geändert.
chris_10
Beiträge: 18
Registriert: 08 Dez 2022, 10:58

Re: Funktion Registry loadUnicodeTextFile funktioniert nicht mehr korrekt

Beitrag von chris_10 »

Das Problem hat sich bei näherer Überprüfung leider als noch tiefer gehender heraus gestellt.
Registry Werte, welche von der Funktion "Registry loadUnicodeTextFile" ohne Fehlermeldung ausgelesen wurden sind nicht korret in die Ziel Registry eingetragen worden. Nur DWORD Werte bei welchen nur die letzte Stelle gesetzt war wurden korrekt übernommen. Bei den restlichen Werten wurde anscheienend eine Umrechung vorgenommen.

Orignal Werte der mit dem Windows Registry Editor gespeicherten Reg Datei:

Code: Alles auswählen

"Linienweite"=dword:00000001
"Einheiten"=dword:00000000
"Tiefecheck"=dword:00000000
"Projektion"=dword:00000000
"PfGeschw"=dword:00000003
"FiTop"=dword:00000014
"FiLeft"=dword:00000014
"SaTop"=dword:00000028
"SaLeft"=dword:00000028
"TeTop"=dword:00000032
"TeLeft"=dword:00000032
"TeHeight"=dword:00000190
"TeWidth"=dword:00000200
"ViTop"=dword:00000046
"ViLeft"=dword:00000046
Die Werte welche durch die Funktion "Registry loadUnicodeTextFile" in der Ziel Registry geschrieben wurden:

Code: Alles auswählen

"Linienweite"=dword:00000001
"Tiefecheck"=dword:00000000
"Projektion"=dword:00000000
"PfGeschw"=dword:00000003
"FiTop"=dword:0000000e
"FiLeft"=dword:0000000e
"SaTop"=dword:0000001c
"SaLeft"=dword:0000001c
"TeTop"=dword:00000020
"TeLeft"=dword:00000020
"TeHeight"=dword:000000be
"TeWidth"=dword:000000c8
"ViTop"=dword:0000002e
"ViLeft"=dword:0000002e
chris_10
Beiträge: 18
Registriert: 08 Dez 2022, 10:58

Re: Funktion Registry loadUnicodeTextFile funktioniert nicht mehr korrekt

Beitrag von chris_10 »

Nachdem ich die übernommenen Registry Werte mir noch mal näher angesehen habe ist mir folgender Verdacht gekommen.
Die Hexadezimalen Registry DWORD Werte aus der Quell Registry Datei scheinen nicht als Hexadeziaml sondern als Deziaml erkannt zu werden.

Das past zu der "Umrechnung" der Werte (z.B. aus 46 [Dez] wird 2E [Hex]) und zu der Fehlersymptomatik das z.B. 5a [Hex] kein gültiger DWORD Wert wäre.
chris_10
Beiträge: 18
Registriert: 08 Dez 2022, 10:58

Re: Funktion Registry loadUnicodeTextFile funktioniert nicht mehr korrekt

Beitrag von chris_10 »

Mit den Updates vom 21.12.2022 funktioniert die Funktion wieder fehlerfrei.
Danke an das Team für die schnelle Behebung des Problems.
Antworten