Befehl im Hintergrund von PSEXEC ausführen

1638
Pablo

Der folgende Befehl funktioniert gut und gibt die Remote-IP-Adresse frei.

PsExec.exe \\10.10.1.12 -accepteula -u Administrator -p 1 cmd /c "ipconfig /release && ipconfig /renew" 

Da die IP-Verbindung danach jedoch releaseunterbrochen wird, wartet PsExec einige Zeit, bis ein Fehler generiert wird. Ich weiß, ich könnte ein Timeout angeben, aber um echte Fehler zu unterscheiden, möchte ich die obigen Befehle im Hintergrund ausführen. Ich würde gerne verwenden start /B, aber meine Versuche sind fehlgeschlagen, wie:

PsExec.exe \\10.10.1.12 -accepteula -u Administrator -p 1 "cmd /c start /B "ipconfig /release && ipconfig /renew"" 

Auf der Suche nach dem richtigen Weg start /B.

2
Die Verwendung der Option -d kann sich lohnen. Warten Sie nicht auf die Beendigung des Prozesses (nicht interaktiv). Sie erhalten weiterhin einen Fehlercode für einen Fehler und eine Prozess-ID, wenn er startet Shaun Vermaak vor 8 Jahren 0

3 Antworten auf die Frage

1
Pimp Juice IT

Erstellen Sie eine Stapeldatei mit einem Namen wie ReleaseRenewIP.cmddem folgenden:

@ECHO OFF IPCONFIG /release && IPCONFIG /renew 

Sobald dies abgeschlossen ist, führen Sie folgendes aus der Ferne aus:

PSEXEC \\10.10.1.12 -s -c ReleaseRenewIP.cmd 

Diese PSExec-Befehlsoptionen führen folgende Aufgaben aus :

-c Copy the specified program to the remote system for execution. If you omit this option the application must be in the system path on the remote system.  -s Run the remote process in the System account. 
0
Ƭᴇcʜιᴇ007

Sie können doppelte Anführungszeichen ( geschachtelte Anführungszeichen ) nicht einfach in doppelte Anführungszeichen setzen . Sie müssen den inneren Anführungszeichen " entkommen ", damit sie für die aktuelle Anweisung nicht als Beendigung betrachtet werden.

In der Windows-Befehlszeile können Sie doppelte Anführungszeichen verwenden, indem Sie sie verdoppeln. Also versuche:

PsExec.exe \\10.10.1.12 -accepteula -u Administrator -p 1 "cmd /c start /B ""ipconfig /release && ipconfig /renew"""

Ich denke, Sie müssen möglicherweise auch das cmd /cBefehlsargument in Anführungszeichen packen, also vielleicht:

PsExec.exe \\10.10.1.12 -accepteula -u Administrator -p 1 "cmd /c ""start /B ""ipconfig /release && ipconfig /renew"""""

`PsExec konnte cmd / c" start / B "ipconfig / release && ipconfig / renew" "am 10.10.1.12 nicht starten: Das System kann den angegebenen Pfad nicht finden.` Pablo vor 8 Jahren 0
Die Beispiele sind möglicherweise nicht genau richtig (ich hatte sie nicht vollständig getestet), aber der Punkt der Antwort bleibt bestehen. :) Aktualisieren Sie bitte Ihre Frage, um die verschiedenen Befehlsversionen aufzunehmen, die Sie ausprobiert haben und welche Fehler dabei jeweils aufgetreten sind. Ƭᴇcʜιᴇ007 vor 8 Jahren 0
Haben Sie auch den `start / b'-Befehl (für sich) erhalten, um wie im Test vorgesehen zu arbeiten? Ƭᴇcʜιᴇ007 vor 8 Jahren 0
-2
crelikus

Bitte zuerst die Grundprinzipien des Kerls. krabbeln, laufen, dann bitte laufen!

Erinnern Sie sich zuerst an die einzelnen Anweisungen, lernen Sie, wie sie funktionieren, und verstehen Sie, was Sie zu tun versuchen ... von der Frage bis zur Antwort. Sie müssen verstehen, was Sie tun!

Es muss Sinn machen, okay.

Dasselbe gilt für das Geben von Befehlen. Sie müssen wissen, was Ihr beabsichtigtes Ergebnis sein muss oder soll, die Frage, die Antwort, der Befehl oder die Anweisung und wie Sie es erhalten. Es muss wiederholt die gleichen oder ähnliche Ergebnisse liefern können. Bitte beachten Sie, dass verschiedene Betriebssysteme und Softwareversionen mit demselben Befehl zu unterschiedlichen Ergebnissen führen können!

Sie müssen das wissen und sich daran erinnern.

Wenn Sie die einzelne Anweisung oder den Befehl verstehen, versuchen Sie, Befehle zu kombinieren oder zu reihen.

Auch hier können sich Erinnerungsbefehle gegenseitig beeinflussen, können oder müssen sich nicht gegenseitig stören und auch auf unterschiedliche Betriebssysteme und, oder andere Versionen von Software oder Kombinationen, die deaktiviert sind (auch andere Rechner im Netzwerk können, wenn ein- oder ausgeschaltet, in oder einschalten) Manchmal ändern beide Ergebnisse auf dem lokalen Computer, an dem Sie gerade arbeiten, oder geben unterschiedliche Ergebnisse ab.

Meine Finger verbrannten viele Male.

Hinweis: Probieren Sie einen PC mit einem einzelnen Betriebssystem in einem festen Setup aus, um die gleichen Ergebnisse oder Ergebnisse wiederholen oder wiederholen zu können, bevor Sie mit dem nächsten Schritt fortfahren.

Mit diesen einfachen Schritten werden Sie in der Lage sein, auf jedem Systemtyp alles zu tun: neu, alt, sogar in einer anderen Sprache als Ihrer eigenen. Weil Sie verstehen, was Sie wollen und müssen.

Ja, ich kann den Befehl an Sie geben ... aber können Sie ihn an einen anderen Benutzer übergeben, oder verwenden Sie ihn?

Versuchen Sie, viele Variablen zu eliminieren.

Sei genau!

Viel Spass bei dem was du versuchst .... glückliche Jagd ;-)