PowerShell Script starten in VB.NET

PowerShell wird immer mächtiger und gewinnt somit immer mehr an Bedeutung. Manchmal sind bestimmte Aufgaben per PowerShell sehr einfach abzubilden, was in VB.NET sehr schwer umzusetzen ist. Deswegen kann es hilfreich sein ein PowerShell Script starten zu lassen im VB.NET Code. Doch wer sich schon ein wenig mit PowerShell beschäftigt hat weiß, dass der Aufruf eines Scripts nicht so einfach ist, wie bei einer Batch-Datei. Wir zeigen euch anbei, wie man mit Visual Studio in VB.NET ein PowerShell Script aufrufen kann.

 

Ein PowerShell Script mit VB.NET Code ausführen

Wie oben schon genannt, gibt es oft Anwendungsfälle, welche mit PowerShell sehr viel einfacher auszuführen sind, als mit VB.NET. Ein klassisches Beispiel ist hier das Erzeugen oder Verwalten von Zertifikaten. Möchte man nun in seinem VB Projekt ein PS-Script ausführen lassen, so lässt man am Besten einen neuen Prozess starten.

Dim proc As Process
proc = Process.Start("powershell.exe", "-File ""C:\DEINSCRIPT.ps1""")
proc.WaitForExit()

In dem Code wird ein neuer Prozess erstellt, welcher die PowerShell.exe ausführt und als Script die angegebene Datei ausführt. Möchte man noch weitere Parameter übergeben, baut man folgenden Teil noch in den Kopf des Scripts, um die Parameter abfragen zu können:

param(
    [string]$parameter1,
    [string]$parameter2
)

Natürlich müssen jetzt die Argumente noch übergeben werden. Das geschieht im VB.NET Code beim Aufrufen des Scripts. Hier werden mit Leerzeichen getrennt noch weitere Argumente angehängt.

Dim proc As Process 
proc.Arguments = "Parameter1"
proc = Process.Start("powershell.exe", "-File ""C:\DEINSCRIPT.ps1""") 
proc.WaitForExit()

Somit ist die Übergabe eines Parameters von VB.NET zu PowerShell kein Problem mehr und das Ausführen des Scripts klappt auch.

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 0 comments