Rückmeldung aus Powershell weiter nutzen

tobias.woerner
Beiträge: 5
Registriert: 21 Jan 2019, 14:51

Rückmeldung aus Powershell weiter nutzen

Beitragvon tobias.woerner » 21 Jan 2019, 14:59

Hallo zusammen!

Als eins der ersten Dinge in OPSI habe ich mal das Uninstall-Script von Adobe Acrobat DC ein wenig angepasst.
Falls der Ordner Adobe unter Programme (x86) noch vorhanden ist und dieser leer ist soll dieser gelöscht werden.

Das funktioniert soweit ganz gut - (wir haben eh nur noch Win10 Kisten mit x64... daher ist die direkte Wahl von Programme (x86) okay)

Es ist doch jetzt bestimmt möglich aus dem Powershell eine Rückmeldung zu generieren, die dann unter [Actions] eine Message erzeugt "Ordner erfolgreich gelöscht" oder "Ordner nicht gelöscht, da Dateien vorhanden")?

Dass das momentan nicht wirklich Sinn macht ist mir durchaus bewusst...
Allerdings wüsste ich gerne wie das funktioniert, damit ich bei anderen Scripts, die ich noch erstellen muss umsetzen kann.

Danke schon mal für die Hilfe!

Code: Alles auswählen

[Initial]
LogLevel=9
ExitOnError=false
ScriptErrorMessages=on
TraceMode=off
StayOnTop=false

[Actions]
LogLevel=9
DefVar $MSIid$
DefVar $MeinVerzeichnis$
DefVar $VerzeichnisLeer$
DefVar $exitcode$
 
Set $MSIid$            = "{AC76BA86-7AD7-1031-7B44-AC0F074E4100}"
Set $MeinVerzeichnis$ = "C:\Program Files (x86)\Adobe\"

 Message "Deinstalliere Adobe Reader DC"
WinBatch_uninstall

Message "Lösche Ordner"
DosInAnIcon_setpolicy
ExecWith_powershell  powershell.exe
set $exitcode$ = getLastExitcode
if not ($exitcode$ = "0")
        comment "powershell script failed"
endif

[WinBatch_uninstall]
MsiExec.exe /passive /x $MSIid$

[DosInAnIcon_setpolicy]
echo "powershell set-executionpolicy RemoteSigned ..."
powershell.exe set-executionpolicy RemoteSigned
exit %ERRORLEVEL%

[ExecWith_powershell]
echo "powershell opsi-script-test"

if((get-childitem 'C:\Program Files (x86)\Adobe').count -eq 0)
 {
 rm "C:\Program Files (x86)\Adobe" -r -fo
 }
 else
 {
 echo "nicht null"
 }



Ach ja: Ist es eigentlich auch möglich die Variablen wie z.B. $MeinVerzeichnis$ an PowerShell zu übergeben?

lr-techchannel
Beiträge: 5
Registriert: 18 Jan 2019, 20:00

Re: Rückmeldung aus Powershell weiter nutzen

Beitragvon lr-techchannel » 21 Jan 2019, 16:51

Hallo Tobias,

es gibt die "execwith" funktion in den wininst Scripten. Allerdings hab ich die noch nie benutzt.
Grundsätzlich aber ein interessanter Gedanke.

Du solltest aber bestmöglichst darauf achten welches WMF (Windows Management Framework) und somit welche Powershell Version auf den Clients installiert ist.
Oh und wenn du Scripte ausführen willst, vergiss "set-executionpolicy" nicht :D

uncle_scrooge
Beiträge: 547
Registriert: 21 Feb 2012, 12:03
Wohnort: Mainz

Re: Rückmeldung aus Powershell weiter nutzen

Beitragvon uncle_scrooge » 21 Jan 2019, 17:35

Daß man Variablen/Strings/whatever aus einem per ExecWith gestartetem Script wieder an den WINST übergeben kann, wäre mir neu. Ich lasse mich aber gerne aus berufenerem Munde belehren.
Was Du aber auswerten kannst, ist der entsprechende Exit Code des Scriptes. Und den kannst Du normalerweise nach belieben setzen.

Und ja, ExecWith-Aufrufe akzeptieren auch Parameter. Einfach noch mal im Handbuch nachschlagen.

Benutzeravatar
tobias
Beiträge: 1203
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Rückmeldung aus Powershell weiter nutzen

Beitragvon tobias » 21 Jan 2019, 22:32

Moin,

nen Rückgabewert nicht direkt, aber du kannst den gesamten Output "auffangen" und natürlich weiter Verarbeiten.
Wenn dein Script nicht viel Output hat, eine brauchbare Möglichkeit.
=> http://download.uib.de/opsi_stable/doc/ ... h-catchout

Hab ich vor langer Zeit mal hier gemacht => wiki/doku.php?id=userspace:find_killtask

Allerdings war das nicht Powershell aber das ja egal. Ich habe mir da den Output des "scripts" so zurecht gelegt das ich ihn in WINST gut weiter verarbeiten konnte.
Veröffentliche deine WINST Scripte im OPSI Wiki und leiste so einen wertvollen Beitrag für die Community !!!
https://forum.opsi.org/wiki/

tobias.woerner
Beiträge: 5
Registriert: 21 Jan 2019, 14:51

Re: Rückmeldung aus Powershell weiter nutzen

Beitragvon tobias.woerner » 13 Feb 2019, 12:45

Vielen Dank!

Hat mir deutlich weitergeholfen!