Ich verwende diesen Befehl, psexec \\ip_address -u user_name -p psw cmd
um eine Verbindung zum Remotedesktop herzustellen und Befehle auszuführen. Er funktioniert, wenn Sie ihn in Power Shell oder in der Eingabeaufforderung verwenden, aber nicht in Power Shell ISE. Ich erhalte in ISE keine Fehler, aber sobald die Ausführung beginnt, endet sie nie, bis Sie sie stoppen.
Sobald die Ausführung beginnt, endet sie nie und stellt keine Verbindung zum Remotedesktop her. Sie erhalten auch keinen Fehler, aber es funktioniert perfekt mit PowerShell oder CMD.
Antwort1
Erstens sind Screenshots von Codes für uns wirklich nicht hilfreich. Sie zwingen die Leute dazu, das, was Sie getan haben, erneut einzugeben, und das möchten die meisten nicht.
Weil psexec ein interaktives Befehlstool ist. Sie können es in der ISE verwenden, müssen aber alle benötigten Parameter übergeben.
Dies ist keine Einschränkung von psexec. Versuchen Sie es beispielsweise mit nslookup und Sie sehen das gleiche Problem. Sie können viele interaktive DOS/CMD-Befehle in der ISE-Konsole oder im IDE-Skriptbereich nicht so verwenden wie in cmd/console. Das ist nicht seine Absicht.
Dies ist seit der ISE-Version dokumentiert.
(Nicht-)Unterstützung für Konsolenanwendungen in der ISE
Bei der Interaktion der ISE mit Konsolenanwendungen wie FTP und Netsh müssen Sie einige Einschränkungen beachten.
Zunächst einmal führt die ISE Konsolenanwendungen, die keine Benutzereingaben erfordern, problemlos aus. Zum Beispiel „ping www.microsoft.com“ und „cmd /c dir /s“
Piping funktioniert auch in der ISE einwandfrei, z. B. PS C:\Users\ibrar> „show mode“ | netsh netsh>online
Die Automatisierung in Skripten, die keine Benutzereingriffe erfordern, sollte problemlos funktionieren.
Wenn Sie jedoch „cmd /k“ ausführen, was eine Eingabe erfordert, bleibt die ISE hängen und Sie müssen die Pipeline mit Strg-Break oder durch Drücken der Stopp-Taste anhalten.
Sie können bei Bedarf Geld an den Konsolenhost überweisen, um solche Dinge zu erledigen, indem Sie denStart-Process-Cmdlet.oder eine der anderen Startmethoden.
Sehen:
Ausführen von ausführbaren Dateien in PowerShell | IT-Experte
- Der Call Operator und Technet
Warum: Wird verwendet, um eine Zeichenfolge als EINZELNEN Befehl zu behandeln. Nützlich für den Umgang mit Leerzeichen.
Wenn Sie in PowerShell V2.0 7z.exe (7-Zip.exe) oder einen anderen Befehl ausführen, der mit einer Zahl beginnt, müssen Sie den Befehlsaufrufoperator & verwenden.
Der PowerShell V3.0-Parser macht das nun intelligenter, das & wird in diesem Fall nicht mehr benötigt.
Details: Führt einen Befehl, ein Skript oder einen Skriptblock aus. Mit dem Aufrufoperator, auch „Aufrufoperator“ genannt, können Sie Befehle ausführen, die in Variablen gespeichert und durch Zeichenfolgen dargestellt sind. Da der Aufrufoperator den Befehl nicht analysiert, kann er Befehlsparameter nicht interpretieren.
Example:
& 'C:\Program Files\Windows Media Player\wmplayer.exe' "c:\videos\my home video.avi" /fullscreen
Also dein Psexec...
& 'C:\Tools\psexec.exe' "Your command arguments" /accepteula