Heute hab ich mal schnell eine PowerShell Invoker Lib geschrieben. Die Lib ist mit .Net 3.5 implementiert und bietet Entwicklern die Möglichkeit cmd-lets oder PowerShell Scripts aus Anwendungen auszuführen.
Wenn lediglich cmd-lets ausgeführt werden bedarf es keiner Änderungen an der PowerShell Runtime, werden allerdings Scripts ausgeführt muss vor der Verwendung die Ausführungsrichtlinie mit dem Befehl
1: Set-ExecutionPolicy RemoteSigned
geändert werden.
Die Anbindung an die PowerShell v.1.0 ist über LateBinding realisiert, so dass entsprechende Exceptions geworfen werden, wenn die benötigte PowerShell Library nicht referenziert werden kann.
Anwendungsbeispiel
Hier habe ich die PsInvoker.dll in einer einfachen Windows Forms Anwendung integriert. Durch betätigen des “Run PS Script” Buttons wird das cmd-let an den PsInvoker übergeben der Aufruf sieht demnach so aus:
1: PsInvoker.Invoker inv = new Invoker();
2: this.textBoxResult.Text = inv.RunPowerShellScript(Script);
Die erste Version der Lib könnt ihr hier downloaden.