Problem mit powershell Einzeiler

Antworten
wla
Beiträge: 58
Registriert: 28 Mai 2013, 11:41

Problem mit powershell Einzeiler

Beitrag von wla »

Hallo,

Code: Alles auswählen

[Winbatch_uninstall_ps]
powershell.exe -Executionpolicy Bypass -Command Get-Package | Where-Object { $_.Name -eq "paint.net" } | Uninstall-Package
Dies funktioniert so nicht, jedoch problemlos als Kommando in einer powershell.
Es funktioniert jedoch sowas:

Code: Alles auswählen

[Winbatch_uninstall_ps]
powershell.exe -Executionpolicy Bypass -Command Get-Package
;oder
powershell.exe -Executionpolicy Bypass -Command Get-Process -ProcessName "opsi*"
Ich denke es sind die Zeichen "|" und/oder "{" die Ärger machen. Habe schon diverse Maskierungen versucht - erfolglos.

Vielleicht hat jemand ähnliches schon gelöst?
Danke!

Viele Grüße
wla
Beiträge: 58
Registriert: 28 Mai 2013, 11:41

Re: Problem mit powershell Einzeiler

Beitrag von wla »

Ich beantworte dies mal selber:

Das funktioniert:

Code: Alles auswählen

[Winbatch_uninstall_ps]
powershell.exe -Executionpolicy Bypass -Command Get-Package | Where-Object { $_.Name -eq \"paint.net\" } | Uninstall-Package
Aber nur mit dem Aufruf:

Code: Alles auswählen

Winbatch_uninstall_ps /SysNative
Ohne "/Sysnative" startet "powershell 32 Bit" (anstelle 64) und dies funktioniert dann nicht bzw. bleibt hängen.
Ich dachte "/Sysnative" wäre default (hier mit "opsi-script 4.12.6.2").
Benutzeravatar
j.werner
uib-Team
Beiträge: 86
Registriert: 08 Okt 2019, 13:32

Re: Problem mit powershell Einzeiler

Beitrag von j.werner »

Hallo,
opsi-script ist ein 32-Bit Programm deswegen wird per default auch die 32-Bit Powershell verwendet.

siehe https://docs.opsi.org/opsi-docs-de/4.3/ ... 64bit.html

Viele Grüße
Jan


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Antworten