0 Pluspunkte 0 Minuspunkte
Wie kann ich Powershell Objekte wie z.B die Ausgabe von Get-ADUser und ähnlichem in .Net benutzen? Die Ausgabe ist ja reiner Text, muss ich den also extra formatieren oder kann man irgendwie auf andere Weise einfach auf die ganzen Werte zugreifen?
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Du kannst die entsprechenden .NET Assemblies referenzieren und dann die Powershell Objekte in .NET Objekte umwandeln.

using System;
using System.Management.Automation;

namespace PowerShellInCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            using (PowerShell PowerShellInstance = PowerShell.Create())
            {
                PowerShellInstance.AddScript("Get-ADUser -Filter *");
                var result = PowerShellInstance.Invoke();

                foreach (var item in result)
                {
                    // Hier könntest du auf die Eigenschaften des AD-Benutzers zugreifen
                    Console.WriteLine(item.Properties["SamAccountName"].Value);
                }
            }
        }
    }
}
von