Ich habe versucht, ein Skript auf einem entfernten Computer auszuführen.
Ich habe "Enable-PSremoting
" in der Remote-Maschine gemacht.
Ich habe ein Skript hello.ps1
in die entfernte Maschine gestellt.
[Mein Client-Computer ist Windows XP und der Remote-Computer ist Windows 2003.]
Dann versuchte ich von meinem Client-Computer aus, das Skript auszuführen.
invoke-command -computer $MachineName -filepath "C:\hello.ps1"
Ich habe den folgenden Fehler erhalten.
Invoke-Command: Kann Pfad 'C:\hello.ps1' nicht finden, da er nicht existieren.
Ich denke, es versucht, ein Skript vom Client-Rechner zu finden.
Wenn ich versuche zu rennen
invoke-command -computer $MachineName -command { C:\hello.ps1 }
, Er führt das Skript aus, das auf der Remote-Maschine auf der Clientseite verfügbar ist.
Ich möchte jedoch das Remote-Skript in der Remote-Maschine selbst ausführen.
Wie kann ich das Skript auf einem Remote-Computer ausführen?
Aktualisierte:
Tatsächlich funktioniert dieser Befehl "invoke-command -computer $MachineName -command { C:\hello.ps1 }
" auf der entfernten Seite und gibt das Ergebnis an die Clientseite zurück. Ich habe es missverstanden, als ich die Rückgabewerte sah, die auf Clientseite ausgeführt werden.
Wenn du schreibst:
invoke-command -computer $MachineName -filepath "C:\hello.ps1"
Das Skript C:\hello.ps1
wird vom Client-Computer abgerufen und zur Ausführung auf den Server gebracht. Sie haben also den Fehler Datei existiert nicht , weil Invoke-Command die Datei auf dem Client-Computer sucht.
Hier finden Sie einen Schnellstart für PowerShell-Remoting .
Ich hatte genau dieselbe Sonde und löste sie mit einer Kombination aus [WMICLASS] 's create()
und Start-Process
.
Überprüfen Sie meine Antwort hier .
Ich habe den gleichen Fehler erhalten, aber ich habe eine Remote-Sitzung in einer Variablen in Ihrem Code angehängt und habe schließlich etwas, das funktioniert:
$s = New-PSSession -ComputerName "WTxxxxxL32" -Credential $credential
Invoke-Command -Session $s -Command {D:\ServerDLLDev\RemoteCOMInstall.ps1}
Es gibt eine Million Invoke-etc-Lösungen, aber die einfachste hat für mich schlussendlich funktioniert. Danke dir.