Feedback

C# - Powershell Cmdlets aus .NET aufrufen

Veröffentlicht von am 07.09.2014
(0 Bewertungen)
Dieses Snippet demonstriert wie man Powershell Cmdlets aus .NET heraus aufrufen kann.

Zusätzlich benötigte Verweise
System.Management.Automation.dll
-> Ggf. im Explorer im C:\Windows Ordner nach der Datei suchen lassen

Benötigte Namespaces
System
System.Diagnostics
System.Management.Automation
System.Linq
var script = PowerShell.Create();    //Instanz erstellen
script.AddScript("Get-Process");     //Script mit Cmdlets hinzufügen
var output = script.Invoke();        //Befehl ausführen, ggf. eine Liste mit Eingabeparametern übergeben

//Ergebnis ausgeben:
Console.WriteLine("{0,-15} {1,-5}", "ProcessName", "PID");
foreach (var process in output.Select(x => x.BaseObject)//Jeweils den .NET Typ des Ergebnisses abfragen
                              .OfType<Process>())//Nur Process-Objekte verarbeiten
{
    //In unserem Beispiel bekommen wir nur .NET Process-Objekte zurück
    Console.WriteLine("{0,-15} {1,5}", process.ProcessName, process.Id);
}
Console.ReadKey();
Abgelegt unter PowerShell, Linq, System.Management, Script.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!