dom-escher
Goto Top

Script nur mit Zusatzparameter ausführen

Hallo liebe Community,
Heute gibt es meinerseits mal eine Frage zur gesicherten Ausführung von Powershell-Scripten:

Szenario:
Durch ein Programm soll bei einem Ereignis ein Powershell script gestartet werden.
Damit das Script nur durch das Programm gestartet werden kann, soll dem programminternen Script-Aufruf ein Parameter mitgegeben werden.

Beispiel:
programm X startet C:\nurduallein\startemich.ps1 mit Zusatzparameter -"nurichdarfdasstarten" C:\nurduallein\startemich.ps1 -"nurichdarfdasstarten"
2022-01-19 10_32_59-eigenschaften von gruppenrichtlinien windows 10 server2019 3446456058_wm_3100825

Das ps1 soll seinerseits prüfen, ob sein Aufruf mit oder ohne mitgelieferten parameter -"nurichdarfdasstarten" gestartet wurde.

Quasi eine Notbremse, damit man nicht zufällig das Script ausführt, falls man doppelt drauf klickt.

unter BAT ging das Problemfrei mit einfügen der Zeilenam Start und Ende:

Code Start:
if not **%1xx==nurichdarfdasstartenxx** goto @@+++Notbremse@@
...
...Befehle...
...
Code Ende:
:@@+++**Notbremse**@@

Frage:
wie kann ich dem Powershell eine Notbremse verpassen?

Gesucht habe ich schon vermehrt in GGL und üblichen Verdächtigen Foren auch MS, aber richtig fündig werde ich nicht.
LG Dom-Escher

Content-ID: 1739088592

Url: https://administrator.de/forum/script-nur-mit-zusatzparameter-ausfuehren-1739088592.html

Ausgedruckt am: 22.04.2025 um 08:04 Uhr

emeriks
emeriks 19.01.2022 um 10:54:37 Uhr
Goto Top
Hi,
"-nurichdarfdasstarten" als notwendigen (mandatory) Switch-Parameter angeben?

Siehe z.B. https://www.krausmueller.de/2015/11/26/powershell-parameter/

Vor dem "[switch]" noch ein "[Parameter(Mandatory=$true)]" müsste es richten.

E.
Dom-Escher
Dom-Escher 19.01.2022 um 11:12:24 Uhr
Goto Top
Urgh, hätte ich auch selbst drauf kömmen können,
manchmal sieht man den Wald vor Bäumen nicht


Danke
TK1987
Lösung TK1987 19.01.2022 um 13:22:32 Uhr
Goto Top
Moin,

Zitat von @emeriks:
Vor dem "[switch]" noch ein "[Parameter(Mandatory=$true)]" müsste es richten.
nein, das würde so nicht funktionieren.

Wenn man Mandatory=$true setzt und das ohne diesen Parameter ausführt, würde das Skript anlaufen auf Eingabe eines Wertes warten (bei einem Switch auf Eingabe eines [bool]-Wertes). Wenn das Skript im Hintergrund läuft, bleibt der Prozess so aktiv!

Der bessere Weg ist hier, Mandatory wegzulassen (oder auf false zu setzen), und das Skript enden zu lassen, wenn der Switch auf false steht.
if (!$nurichdarfdasstarten) { return }

Gruß Thomas
Dom-Escher
Dom-Escher 20.01.2022 um 13:52:56 Uhr
Goto Top
tach zusammen,
das hatz genau 1x funktioniert, danach nicht mehr
seltsam. auch nach neustert gleiches Phänomen.

vielleicht weiß jmd Ratr

ein analyseprogramm startet automatisch mit einem zusatzparameter das ps1 file.
das ps1 soll prüfen, ob sein Aufruf mit oder ohne mitgelieferten parameter -"nurichdarfdasstarten" gestartet wurde.
colinardo
Lösung colinardo 21.01.2022 aktualisiert um 10:29:02 Uhr
Goto Top
Siehe Antwort in deinem zweiten Beitrag
Powershell-Script-Verknüpfung mit Parameter "-emergency" in ZIEL als Schutz vor falscher Ausführung

Ich schließe diesen hier deshalb (Doppelpost).

Grüße @colinardo (Mod)