Seite 1 von 1

Problem mit powershell Einzeiler

Verfasst: 19 Sep 2024, 11:19
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

Re: Problem mit powershell Einzeiler

Verfasst: 19 Sep 2024, 14:21
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").

Re: Problem mit powershell Einzeiler

Verfasst: 24 Sep 2024, 14:28
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