Powershell-Script-Verknüpfung mit Parameter "-emergency" in ZIEL als Schutz vor falscher Ausführung
Hallo Community,
ich denke es gibt dafür eine einfache, ggf einzeilige Lösung, aber erstmal zur Situation:
Wir nutzen ein Programm in dem ein Powershell-script bei Vorfall X gestartet werden soll.
Damit das Script nicht zufällig oder argwöhnisch gestartet werdexn kann, soll das Script nur dann
seine Befehle abarbeiten, wenn das Script mit dem Parameter "-emergency" gestartet wurde.
Eigentlich so, als würde man eine Verknüpfung erstellen und unter Eigenschaften in Feld
Ziel den zusatz -emergency beigefügt haben.
Der Versuch, das Ganze per
ans laufen zu bekommen, hat -warum auch immer - nicht funktioniert.
Egal was ich tue, er stoppt das Script ob mit oder ohne -emergency.
Script:
Ideen?
Mandatory und Switch scheinen mit zu aufwendig, vielleicht hat jemand ne fertige lösung?
ich denke es gibt dafür eine einfache, ggf einzeilige Lösung, aber erstmal zur Situation:
Wir nutzen ein Programm in dem ein Powershell-script bei Vorfall X gestartet werden soll.
Damit das Script nicht zufällig oder argwöhnisch gestartet werdexn kann, soll das Script nur dann
seine Befehle abarbeiten, wenn das Script mit dem Parameter "-emergency" gestartet wurde.
Eigentlich so, als würde man eine Verknüpfung erstellen und unter Eigenschaften in Feld
Ziel den zusatz -emergency beigefügt haben.
Der Versuch, das Ganze per
if (!$emergency) { return }
Egal was ich tue, er stoppt das Script ob mit oder ohne -emergency.
Script:
if (NOT $emergency) { return } #Abbruch, wenn Übergebener Parameter -emergency fehlt
#Ab hier ausführen, wenn Parameter -emergency mit übergeben wurde
write-host test
Ideen?
Mandatory und Switch scheinen mit zu aufwendig, vielleicht hat jemand ne fertige lösung?
Please also mark the comments that contributed to the solution of the article
Content-Key: 1746198376
Url: https://administrator.de/contentid/1746198376
Printed on: April 24, 2024 at 12:04 o'clock
4 Comments
Latest comment
Moin,
ich würde dem "emergency" in den Params als boolean mit einem Default von "$FALSE" mitgeben.
Dann kannst du mit "If($emergency)...." das script laufen lassen, sofern es mit "-emergency:$TRUE" gestartet wurde.
lg,
Slainte
/EDIT: @colinardo 's LÖsung ist elegangter, nimm die
ich würde dem "emergency" in den Params als boolean mit einem Default von "$FALSE" mitgeben.
Dann kannst du mit "If($emergency)...." das script laufen lassen, sofern es mit "-emergency:$TRUE" gestartet wurde.
lg,
Slainte
/EDIT: @colinardo 's LÖsung ist elegangter, nimm die
Dann hast du die Verknüpfung schon falsch erstellt oder die Executionpolicy nicht angepasst. Da du uns leider verschweigst wie du sie oder die Batch erstellt hast, ein Aufruf mit Parametern sollte so aussehen
Klappt mit obigem Schnipsel einwandfrei!
Wichtig, der obige Schnipsel muss ganz am Anfang des Skriptes stehen damit er greifen kann !
Empfehlung als Lektüre
Powershell Leitfaden für Anfänger
powershell -EP Bypass -File "c:\vollständiger\pfad\zum\script.ps1" -emergency
Wichtig, der obige Schnipsel muss ganz am Anfang des Skriptes stehen damit er greifen kann !
Empfehlung als Lektüre
Powershell Leitfaden für Anfänger