Powershell in LinkFolder-Sektion

Antworten
Gernot
Beiträge: 17
Registriert: 21 Mär 2021, 15:53

Powershell in LinkFolder-Sektion

Beitrag von Gernot »

Hallo,

ich bitte um Hilfe bei dem unten abgebildeten OPSI-Skript. Es ist eigentlich ganz einfach. Es legt den Ordner c:\Program Files\Testpaket an und legt darin ein Powershell-Sript test.ps1 ab. Über eine LinkFolder-Sektion soll ein Startmenüeintrag erzeugt werden, über den Benutzer der Windows-Domäne die Powershell-Datei ausführen können.


Leider schlägt die Verteilung der Software aus unbekannten Gründen fehl. Kann mir jemand sagen, ob mit dem Skript alles in Ordnung ist? Ich habe die Vermutung, dass der Aufruf des Powershell-Skripts so nicht funktioniert. Kann das jemand bestätigen?

Code: Alles auswählen

[Initial]
Message="Installiere Testpaket"
DefVar $ExitCode$

[Aktionen]
DosInAnIcon_Create
Files_Copy
LinkFolder_CreateCommonPrograms
Sub_HandleExitCode

[DosInAnIcon_Create]
mkdir "%ProgramFilesSysnativeDir%\Testpaket"

[Files_Copy]
copy -s "%ScriptPath%\data\" "%ProgramFilesSysnativeDir%\Testpaket\"

[LinkFolder_CreateCommonPrograms]
set_basefolder common_programs
set_subfolder "Test"
set_link
   name: "Testsoftware starten"
   target: powershell.exe -ExecutionPolicy Bypass -Command "%ProgramFilesSysnativeDir%\Testpaket\test.ps1"  
   icon_file: "%ProgramFilesSysnativeDir%\Testpaket\logo.png"
end_link

[Sub_HandleExitCode]
; check return code
Set $ExitCode$ = GetLastExitCode
comment "GetLastExitCode: " + $ExitCode$
if not($ExitCode$ = "0")
  LogError "Fatal: setup returned exit code " + $ExitCode$
  IsFatalError
endif
feltel
Beiträge: 213
Registriert: 09 Dez 2014, 07:22

Re: Powershell in LinkFolder-Sektion

Beitrag von feltel »

Schau doch mal im configed, wenn Du die Software verteilt hast in die Logs. Dort mal das Debug-Level auf 7 erhöhen und dann sieht man genau, was das Skript macht und woran es ggf. scheitert. Ich würde ja vermuten, das der Interpreter an dem teilweise Quoting bei "target" aufschlägt. Da müssen wahrscheinlich einfach Anführungszeichen ' um den ganzen Befehl, damit das klappt.
Antworten