Ich versuche, eine .NET (3.5) Kommandozeilen-Programm innerhalb einer VBScript-Datei auszuführen, die zwei wichtigsten Dinge tut:VBScript: WScript.Shell Mit einem Kommandozeilenprogramm auszuführen, das Active Directory Greift
- Stellt eine Verbindung zu einem Active Directory her, das sich in derselben Domäne wie der Server befindet, auf dem das Skript gehostet wird, um einen Attributwert abzurufen. Ich suche AD mit dem ersten Befehlszeilenargument, das ein Benutzername ist.
- Erstellt ein DTO mit diesem Attributwert und dem zweiten Befehlszeilenargument, das dann in einem WCF-Serviceaufruf verwendet wird.
Wenn ich die Anwendung explizit ausführen, funktioniert alles. Auf Active Directory wird zugegriffen, das Attribut wird abgerufen und der WCF-Dienst wird mit dem korrekten Ergebnis aufgerufen (wie durch Überprüfen der Datenbank überprüft).
(Edit:. Ich entschuldige mich, vergaß ich zu setzen, was die aktuelle Ausgabe)
Als ich das Skript ausführen, scheint es, als ob ich nicht Active Directory in meinem .NET-Code zugreifen kann (die MyProgram App).
Der VBScript-Code:
Dim objResult
Set objShell = WScript.CreateObject("WScript.Shell")
objResult = objShell.Run("MyProgram " & strUsername & " 0", 1, True)
Hat das WScript.Shell Objekt spezielle Berechtigungen für die Datei benötigen? Ich habe sie überprüft und die Execute-Berechtigung ist da. Normalerweise würde das zweite Argument, das ich an die .Run() - Methode übergebe, 6 sein, ich wollte, dass es 1 für das Debugging ist.
Gibt es eine andere Möglichkeit, ein Programm in VBScript auszuführen?
Es wäre hilfreich, sehr explizit anzugeben, was im fehlerhaften Fall passiert. – EricLaw
Sorry, ich war so in den anderen Details gefangen, dass ich den wichtigsten vergessen habe. Der Zugriff auf AD scheint in der MyProgram-App nicht zu erfolgen. –