Seite 1 von 1
include_append / include_insert Registry-Sektion
Verfasst: 27 Mär 2017, 15:25
von Mike1987
Ich bin gerade auf die Möglichkeit gestoßen, Sektionen in Dateien auszulagern um sie dann, bei Bedarf, einzubinden.
Das Funktioniert mit folgender Sektion auch super:
Code: Alles auswählen
Message "Starten / Neustarten der Druckerwarteschlange..."
comment "Start setup program"
comment "Setze Rechte zum Ausführen von Powershell-Scripten"
Message "Setze Rechte zum Ausführen von Powershell-Scripten"
include_append "%SCRIPTPATH%\lib\service_reboot.opsiinc"
Registry_Executionpolicy_Allow /64Bit
Winbatch_install
Registry_Executionpolicy_Restrict /64Bit
Sub_check_exitcode
service_reboot.opsiinc
Code: Alles auswählen
[Winbatch_install]
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -File "%SCRIPTPATH%\Spooler_neustart.ps1"
Eigentlich wollte ich aber den Part, wo ich Registrykeys setze in die opsiinc auslagern. Dabei bekomme ich aber nur Probleme.
Liegt es daran, dass ich die Sektion mit der Registry mit dem Parameter /64Bit aufrzufe? Oder ist es nur möglich die Winbatch_install Sektionen so auszulagern?
Vielen Dank für Eure Hilfe

Re: include_append / include_insert Registry-Sektion
Verfasst: 28 Mär 2017, 09:57
von holgerv
Hallo,
ich rufe zahlreiche Registry-Sektionen aus Skript-Dateien auf, die per include eingebunden sind. Das ist erstmal kein Problem. Als Schalter übergebe ich nicht "/64bit" sondern "/sysnative", allerdings auf 64-Bit-Systemen, insofern sollte das auf das Gleiche hinauslaufen.
Dabei bekomme ich aber nur Probleme.
Was heißt das denn? Was gibt es für Probleme?
Schönen Gruß
Holger
Re: include_append / include_insert Registry-Sektion
Verfasst: 29 Mär 2017, 09:59
von Mike1987
Hallo Holger,
danke erstmal für deine Antwort! Also bei mir das wie folgt aus:
setup.ins
Code: Alles auswählen
if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only"))
Message "Starten / Neustarten der Druckerwarteschlange..."
comment "Setze Rechte zum Ausführen von Powershell-Scripten"
Message "Setze Rechte zum Ausführen von Powershell-Scripten"
include_append "%SCRIPTPATH%\lib\ps_allow.opsiinc"
include_append "%SCRIPTPATH%\lib\ps_deny.opsiinc"
Registry_Executionpolicy_Allow /64Bit
Winbatch_install
Registry_Executionpolicy_Restrict /64Bit
Sub_check_exitcode
endif
[Winbatch_install]
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -File "%SCRIPTPATH%\Spooler_neustart.ps1"
Die beiden Dateien die ich einbinde sehen wie folgt aus:
ps_allow.opsiinc
Code: Alles auswählen
[Registry_Executionpolicy_Allow]
openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]
set "ExecutionPolicy" = REG_SZ:"Unrestricted"
ps_deny.opsiinc
Code: Alles auswählen
[Registry_Executionpolicy_Restrict]
openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]
set "ExecutionPolicy" = REG_SZ:"Restricted"
Wenn ich das Programm nun so durchlaufen lasse auf dem Client bekomme ich folgende Fehlermeldungen:
Code: Alles auswählen
Section Registry_Executionpolicy_Allow (Command in line 124):
comment
Operation nicht definiert
Code: Alles auswählen
Section Registry_Executionpolicy_Allow (Command in line 125):
Message
Operation nicht definiert
Den Fehler if-Anweisung kann ich definitiv ausschließen...da alles sauber durchläuft wenn ich alles in der setup.ins durchführen lasse.
Die "Operation nicht definiert" scheint mir so, als wenn der Probleme beim Ausführen der eingebundenen Sektion hat.
Im Log steht dann folgendes:
Code: Alles auswählen
If
(122) [5] [Mrz 29 09:56:31:414] [fix_druckerwarteschlange] $INST_SystemType$ = "64 Bit System" <<< result true
(123) [5] [Mrz 29 09:56:31:414] [fix_druckerwarteschlange] $INST_architecture$ = "system specific" <<< result true
(124) [5] [Mrz 29 09:56:31:414] [fix_druckerwarteschlange] $INST_architecture$ = "both" <<< result false
(125) [5] [Mrz 29 09:56:31:414] [fix_druckerwarteschlange] $INST_architecture$ = "64 only" <<< result false
(126) [5] [Mrz 29 09:56:31:414] [fix_druckerwarteschlange] ($INST_architecture$ = "64 only") <<< result false
(127) [5] [Mrz 29 09:56:31:414] [fix_druckerwarteschlange] ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only") <<< result false
(128) [5] [Mrz 29 09:56:31:414] [fix_druckerwarteschlange] ($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only") <<< result true
(129) [5] [Mrz 29 09:56:31:414] [fix_druckerwarteschlange] (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only")) <<< result true
(130) [5] [Mrz 29 09:56:31:414] [fix_druckerwarteschlange] ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only")) <<< result true
(131) [6] [Mrz 29 09:56:31:414] [fix_druckerwarteschlange] Then
(132) [5] [Mrz 29 09:56:31:414] [fix_druckerwarteschlange] message Starten / Neustarten der Druckerwarteschlange...
(133) [5] [Mrz 29 09:56:31:416] [fix_druckerwarteschlange] comment: Start setup program
(134) [5] [Mrz 29 09:56:31:416] [fix_druckerwarteschlange] comment: Setze Rechte zum Ausführen von Powershell-Scripten
(135) [5] [Mrz 29 09:56:31:416] [fix_druckerwarteschlange] message Setze Rechte zum Ausführen von Powershell-Scripten
(136) [6] [Mrz 29 09:56:31:424] [fix_druckerwarteschlange] Included (append) file: p:\fix_druckerwarteschlange\lib\ps_allow.opsiinc with encoding: cp1252
(137) [6] [Mrz 29 09:56:31:431] [fix_druckerwarteschlange] Included (append) file: p:\fix_druckerwarteschlange\lib\ps_deny.opsiinc with encoding: cp1252
(138) [5] [Mrz 29 09:56:31:432] [fix_druckerwarteschlange]
(139) [5] [Mrz 29 09:56:31:432] [fix_druckerwarteschlange] Execution of Registry_Executionpolicy_Allow
(140) [6] [Mrz 29 09:56:31:432] [fix_druckerwarteschlange] Registry key [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell] opened
(141) [6] [Mrz 29 09:56:31:432] [fix_druckerwarteschlange] Variable "ExecutionPolicy" had value "Restricted"
(142) [6] [Mrz 29 09:56:31:432] [fix_druckerwarteschlange] Info: "ExecutionPolicy" changed to "Unrestricted"
(143) [2] [Mrz 29 09:56:31:432] [fix_druckerwarteschlange] Syntax Error in Section: Registry_Executionpolicy_Allow (Command in line 124 origin: p:\fix_druckerwarteschlange\lib\ps_deny.opsiinc Line: 1): comment -> Operation nicht definiert
(144) [2] [Mrz 29 09:56:58:168] [fix_druckerwarteschlange] Syntax Error in Section: Registry_Executionpolicy_Allow (Command in line 125 origin: p:\fix_druckerwarteschlange\lib\ps_deny.opsiinc Line: 2): Message -> Operation nicht definiert
(145) [6] [Mrz 29 09:57:21:418] [fix_druckerwarteschlange] Key closed
(146) [2] [Mrz 29 09:57:21:421] [fix_druckerwarteschlange] Syntax Error in Section: Actions (Command in line 74 origin: p:\fix_druckerwarteschlange\setup.ins line: 75): EndIf -> expected
(147) [1] [Mrz 29 09:57:30:656] [fix_druckerwarteschlange] ___________________
(148) [1] [Mrz 29 09:57:30:656] [fix_druckerwarteschlange] script finished
Re: include_append / include_insert Registry-Sektion
Verfasst: 29 Mär 2017, 11:22
von andré
Sowas ähnliches gibt es bei einem Paket von mir, das Drucker installiert. Ich habe eine setup.ins, die ein Sub auf weitere Konfigurationsskripte setzt. In diesen Konfigurationen habe ich Winbatch-Sektionen, die ich auch nur dort aufrufe. Damit das funktioniert, müssen diese Sektionen aber auch in der setup.ins definiert sein, dazu gab es irgendwo einen Thread hier im Forum, den ich dazu gefunden hatte.
Re: include_append / include_insert Registry-Sektion
Verfasst: 31 Mär 2017, 13:24
von holgerv
Wenn ich die Log-Datei richtig verstehe, wird der Registry-Wert korrekt geändert ('Info: "ExecutionPolicy" changed to "Unrestricted"') und erst danach treten zunächst zwei Fehler auf:
'comment -> Operation nicht definiert'
'Message -> Operation nicht definiert'
Das sieht für mich so aus, als wären Deine "ps_*.opsiinc"-Skripte hier nicht vollständig wiedergegeben. Hast Du "comment"- bzw. "Message"-Befehle in der "Registry"-Sektion? Die dürfen da nicht stehen und führen zu genau diesem Fehler.
Dann kommt noch ein Fehler 'EndIf -> expected'. Der ist eigentlich selbsterklärend. Kontrollier einfach noch einmal, ob alle Ifs und EndIfs richtig gesetzt sind.
Viel Erfolg
Holger