Powershell Scripte ausführen

Unter Umständen ist es erforderlich, dass die Powershell Scripte automatisch zbsp. über die Auftragsplanung ausgeführt werden müssen.
Dies ist eigentlich recht einfach, jedoch gibt es einige Dinge zu beachten:

- Execution Policy
- erhöhte Rechte
- UAC

Um diese Hürden zu umgehen, sind einige zusätzliche Angaben erforderlich. Aber fangen wir mal klein an. Im Normalfall wird ein Powershell Script recht einfach aufgerufen:

PowerShell.exe -Command "& 'C:Scripte\ich_bin ein_script.ps1'"

Wichtig ist hier das kaufmännische Und (&-Zeichen), da die PowerShell den Pfad in den Anführungszeichen ansonsten als String interpretiert. Anstelle des &-Zeichens kann
man auch einen Punkt (.) nehmen:

PowerShell.exe -Command ". 'C:Scripte\ich_bin ein_script.ps1'"

Standardmäßig lassen sich PowerShell Skripte nicht ausführen, da dies von der Execution Policy verhindert wird. Um dies gleich beim Aufruf zu berücksichtigen, lässt sich

die Execution Policy im Batch entsprechend setzen mit -ExecutionPolicy Bypass:

PowerShell.exe -ExecutionPolicy Bypass -Command "& 'C:Scripte\ich_bin ein_script.ps1'"

Um die UAC zu umgehen oder dies mit erhöhten Rechten bzw. unter einem anderen benutzer zu starten, gibt es die Möglichkeit das Script mit -verb runas auszuführen.


PowerShell.exe -ExecutionPolicy Bypass -verb runas -Command "& 'C:Scripte\ich_bin ein_script.ps1'"

Zusätzlich gibt es noch viele andere Möglichkeiten, diese Powershell Script mit den verschiedensten Parameter zu starten, zbsp mit -noprofile, wobei dadurch das Powersshell
Profil nicht geladen wird oder -NoLogo, dabei werden die Copyrightinformationen ausgeblendet.

PowerShell.exe -ExecutionPolicy Bypass -noprofile -nologo -verb runas -Command "& 'C:Scripte\ich_bin ein_script.ps1'"


Eine Übersicht ist bei Microsoft zu finden unter:

https://docs.microsoft.com/de-de/powershell/scripting/core-powershell/console/powershell.exe-command-line-help?view=powershell-5.1