ich die folgende Batch-Skript auf einem Windows 2008 R2 Server:Batch-Skript läuft gut, aber nicht, wenn sie durch Powershell-Remoting ausgeführt
@echo off
djoin.exe /provision /domain my.domain.com /machine test /savefile savefile.txt
echo %ERRORLEVEL%
Wenn ich das Skript auf dem Server laufen selbst, entweder durch Eingabeaufforderung oder PowerShell, es funktioniert einwandfrei und gibt "0" zurück.
Das Problem ist, dass ich es von einem entfernten Computer ausführen müssen, so dass ich die folgenden Punkte (ein Beispiel nur zum Testen) tun:
Invoke-Command -ComputerName remotehost -ScriptBlock {.\script.cmd}
Der Ausgang „-1073740940“ ist, was wahrscheinlich ist, Fehler Code C0000374, der etwas mit der Heap-Beschädigung zu tun haben könnte.
Dies scheint ein Problem mit dem Befehl djoin selbst zu sein. Ich kann djoin auskommentieren und andere Binaries wie Ping ausführen, ohne Probleme mit dem gleichen Invoke-Befehl.
Wenn Sie daran denken, dass das Skript einwandfrei funktioniert, wenn es von PowerShell auf dem Zielcomputer ausgeführt wird, welche Probleme könnte der Vorgang des Remotings verursachen?
In beiden Fällen wird das Skript mit den gleichen Berechtigungen ausgeführt, die mein Konto verwenden, das ein Mitglied von Domänen-Admins ist. Ich bezweifle, dass es ein Problem mit Berechtigungen ist und keine Ahnung, wo ich sonst hinschauen könnte.
[Bearbeiten]
Gave über die ganze Sache auf. Dies ist entweder ein Fehler in djoin oder ein unklares Problem in der Interaktion zwischen djoin und PS remoting.
Ich habe es geschafft, djoin direkt auf dem Client laufen zu lassen, indem ich 'runas/netonly ...' benutzte, um Domänen-Zugangsdaten bereitzustellen. Es ist eine sehr unordentliche Lösung (und ich muss noch herausfinden, wie man den Exit-Status eines Prozesses, der mit runas gestartet wurde, bekommt), aber erledigt die Arbeit.
Ist 'Invoke-Command -Computer remotehost -ScriptBlock {djoin.exe/Bereitstellung/Domäne my.domain.com/machine test/savefile savefile.txt; $ LASTEXITCODE} 'etwas anderes tun? Mit anderen Worten: Warum brauchen Sie die Batch-Datei? – Joey
Das scheitert genau so. Die Batch-Datei ist entstanden, als mir alle anderen Ideen, wie man djoin.exe ausführen könnte, ausgegangen sind. Die Sache ist, dass das Ausführen von "djoin.exe /?", Zum Beispiel, völlig in Ordnung ist, und ich bekomme die Nutzungsausgabe. Dieser Befehl wird jedoch verwendet, um Computerkonten im Active Directory vorab zu stempeln. Dies ist die Hauptoperation, die fehlschlägt. – VokinLoksar
Ok, aber es ist nicht die Batch-Datei, sondern das Problem mit PowerShell-Remoting, das verhindert, dass 'djoin' das tut, was es tun soll. – Joey