2016-10-31 3 views
2

Ich kann den unter Powershell-Befehl durch Powershell selbstLaufpowershell-Skript remote über Java

invoke-command -ComputerName "compName" -filepath "c:\script.ps1" -credential "admin" 

laufen, aber wenn ich das durch Java versuchen laufen, bekomme ich einen Fehler. Klingt wie "Invoke-Befehl" wird nicht als ein Programm erkannt, das über Java ausgeführt wird. Wenn dies der Fall ist, gibt es eine andere Lösung?

Process p = new ProcessBuilder() 
       .inheritIO() 
       .command("invoke-command", "-computername", "compName", 
         "-filepath", "C:\\script.ps1").start(); 

Der Fehler,

Kann nicht Programm "aufrufen-Befehl" auszuführen: Create error = 2, kann das System die angegebene Datei nicht finden

P. S. Der Fehler bezieht sich nicht auf den bereitgestellten filePath, sondern auf den invoke-Befehl selbst.

Vielen Dank.

+0

'aufrufen-command' ist kein Windows-Befehl, es ist ein Powershell-Befehl, so dass Sie Sie müssen es über die PowerShell-Befehlszeile ausführen, zB 'powershell.exe -Befehl Ihr-Befehl-hier '. – Andreas

Antwort

3

Wie Sie schrieb invoke-command ein Powershell-Befehl ist, so müssen Sie Powershell tu den Befehl wie so laufen rufen:

Process p = new ProcessBuilder() 
       .inheritIO() 
       .command("powershell", "invoke-command", "-computername", "compName", 
         "-filepath", "C:\\script.ps1").start(); 
+1

Danke @dudel! Ich habe es gerade herausgefunden. Dumm von mir war die Fehlermeldung sehr klar. Bewahren Sie den Code hier auf, falls er für andere nützlich sein könnte. Danke noch einmal. – Sara

+0

Happens =) Gern geschehen! – dudel