Ich habe eine ganze Reihe von Lösungen gesehen, aber keine behandelt mein Problem. Ich versuche, ein benutzerdefiniertes PowerShell-Modul namens "DSInternals" in meine C# -DLL zu importieren.PowerShell-Modul von C# importieren fehlgeschlagen
https://github.com/MichaelGrafnetter/DSInternals
Alles in meinem Code scheint ganz gut, aber wenn ich versuche, das verfügbare Modul zu bekommen, es ist nicht geladen.
Der Strom antwortet mit
Der Begriff ‚Get-ADReplAccount‘ wird nicht als Name eines Cmdlets, Funktion, Skriptdatei oder ein geschriebenes Programm erkannt. Überprüfen Sie die Schreibweise des Namens, oder überprüfen Sie, ob der Pfad korrekt ist, und versuchen Sie es erneut.
Wohin gehe ich mit diesem Code falsch?
InitialSessionState init = InitialSessionState.CreateDefault();
init.ImportPSModule(new string[] { @"D:\\DSInternals\\dsinternals.psd1" }); //location of the module files
Runspace runspace = RunspaceFactory.CreateRunspace(init);
runspace.Open();
PowerShell ps = PowerShell.Create();
ps.Runspace = runspace;
ps.Commands.AddCommand("Get-ADReplAccount"); //this command is un-recognized
foreach (PSObject result in ps.Invoke())
{
Console.WriteLine(result); //this always returns null
}
* Dieser Befehl ist un-erkannt funktioniert * Woher wissen Sie das? Jede Ausnahme ausgelöst? Irgendein Fehler in 'ps.Streams.Error'? – PetSerAl
Die Streams antworten mit "Der Begriff 'Get-ADReplAccount' wird nicht als Name eines Cmdlets, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens oder überprüfen Sie, ob ein Pfad enthalten ist ist richtig und versuche es erneut. ". Dieses Cmdlets wird von dem DSInternals-Modul –
zu Ihrem Code hinzugefügt: 'init.ThrowOnRunspaceOpenError = true;'. – PetSerAl