Ich versuche eine Windows-Anwendung zu erstellen, die verschiedene Powershell-Skripte ausführen kann.
Ich habe ein Skript, das so funktioniert, wie es sollte (wenn es von der Powershell-Eingabeaufforderung ausgeführt wird) und meine Windows-Anwendung scheint es so auszuführen, wie es sollte, aber es kann die Methoden auf meiner OU nicht finden.
Wenn ich das Skript von der Windows-Anwendung aus führe, erhalte ich folgende Meldungen:
FEHLER: Beim Abrufen von Element "Create" ist folgende Ausnahme aufgetreten: "There ist kein solches Objekt auf dem Server. "
FEHLER: Beim Abrufen des Mitglieds "Löschen" ist folgende Ausnahme aufgetreten: "Dort ist kein solches Objekt auf dem Server. "
Powershell-Skript:
%Vor%}
Der C # -Code, den ich habe, ist dies:
%Vor% Das Problem scheint zu sein, dass die Create-Methode für Ihr ADSI-Objekt $ou
nicht existiert. Ich würde prüfen, ob es richtig erstellt wird. Führen Sie das Skript außerhalb Ihrer Anwendung aus, um sicherzustellen, dass es funktioniert, oder führen Sie eine zusätzliche Zeile mit den zugehörigen Elementen aus:
Es scheint fast so, als ob das Runspace
in der Anwendung mit einem restriktiven RunspaceConfiguration
erstellt wird, sodass es System.DirectoryServices für die benötigte AD-Funktionalität nicht finden kann.
Was bekommen Sie, wenn Sie Folgendes in Ihrer Anwendung ausführen?
%Vor% Wenn ich das unter dem Debugger in einer einfachen Konsolenanwendung ausführe, bekomme ich 28 Assemblys (19 außerhalb des Debuggers), einschließlich System.DirectoryServices
. Das Bit [AppDomain]::CurrentDomain.GetAssemblies()
zeigt 16, wenn ich es in einer Vanilla-Eingabeaufforderung ausführe. System.DirectoryServices
wird in allen drei Listen angezeigt.
Tags und Links c# powershell active-directory