PsExec ist ein portables Tool von Microsoft, mit dem Sie Prozesse remote mit den Anmeldeinformationen eines beliebigen Benutzers ausführen können. Es ist ein bisschen wie ein Fernzugriffsprogramm, aber anstatt den Computer mit einer Maus zu steuern, werden Befehle über die Eingabeaufforderung gesendet.
Mit PsExec können Sie nicht nur Prozesse auf dem Remote-Computer verw alten, sondern auch die Konsolenausgabe einer Anwendung auf Ihren lokalen Computer umleiten, sodass es so aussieht, als würde der Prozess lokal ausgeführt.
Auf dem entfernten Computer wird keine Software benötigt, damit PsExec funktioniert, aber es gibt ein paar Dinge zu beachten, wenn das Tool beim ersten Versuch nicht richtig läuft.
Einrichten von PsExec
Wenn PsExec portabel ist und nicht auf den Remote-Computer kopiert werden muss, welche Art von Setup ist dann wirklich erforderlich?
Das Tool funktioniert nur unter bestimmten Bedingungen. Nämlich, wenn die Datei- und Druckerfreigabe sowohl auf dem lokalen als auch auf dem Remote-Computer aktiviert ist und wenn auf dem Remote-Computer die $admin-Freigabe korrekt eingerichtet ist, um Zugriff auf den Ordner \Windows\ zu gewähren.
Sie können überprüfen, ob die Datei- und Druckerfreigabe aktiviert ist, indem Sie in den Windows-Firewall-Einstellungen nachsehen:
- Geben Sie firewall.cpl in das Dialogfeld Ausführen ein. Eine Möglichkeit, Run zu öffnen, ist die Tastenkombination WIN+R.
-
Wählen Sie Eine App oder Funktion durch die Windows-Firewall zulassen auf der linken Seite des Fensters aus.
Dies könnte wie folgt lauten: Eine App oder Funktion durch die Windows Defender-Firewall zulassen, je nachdem, wie Ihr Computer eingerichtet ist, aber es ist dieselbe Option.
-
Stellen Sie sicher, dass bei Datei- und Druckerfreigabe ein Häkchen im Kästchen Privat rechts davon ist. Wenn dies nicht der Fall ist, setzen Sie ein Häkchen in dieses Kontrollkästchen und wählen Sie OK.
Wenn Sie die Firewall-Einstellungen nicht ändern können, weil sie ausgegraut sind, wählen Sie Einstellungen ändern oben im Fenster.
- Sie können jetzt alle geöffneten Windows-Firewall-Einstellungen verlassen.
Wenn die Windows-Firewall jetzt korrekt für PsExec eingerichtet ist, sollten Sie kein Problem haben, auf die $admin-Freigabe auf dem Remote-Computer zuzugreifen, solange Folgendes zutrifft:
- Beide Computer gehören zur selben Arbeitsgruppe
- Sie kennen das Passwort eines Administratorkontos auf dem entfernten Computer
Sehen Sie sich dieses Tutorial auf Wintips.org an, wenn Sie Hilfe bei diesen Dingen benötigen oder wenn Sie sie richtig gemacht haben, aber später, nachdem Sie versucht haben, PsExec wie unten beschrieben zu verwenden, erh alten Sie die Fehlermeldung „Zugriff verweigert“.
Verwendung von PsExec
Bevor Sie PsExec zum Ausführen von Remote-Befehlen verwenden, müssen Sie das Programm herunterladen und die Eingabeaufforderung so positionieren, dass Sie das Tool richtig verwenden können.
Herunterladen und öffnen
-
Laden Sie PsExec auf den Computer herunter, auf dem die Remote-Befehle ausgeführt werden. Es ist kostenlos von Microsoft unter Sysinternals als Teil von PsTools erhältlich.
-
Extrahieren Sie die Dateien aus dem PsTools.zip-Download. Sie können dies tun, indem Sie mit der rechten Maustaste auf die ZIP-Datei klicken und Alle extrahieren auswählen. Jeder Dateiextraktor eines Drittanbieters funktioniert auch.
-
Öffnen Sie den Ordner, in dem sich die extrahierten Dateien befinden, und löschen Sie in der Navigationsleiste oben im Ordner, was dort ist, und geben Sie cmd. ein
Eine andere Möglichkeit, dies zu tun, besteht zumindest in einigen Windows-Versionen darin, Umsch alt+Rechtsklick auf eine leere Stelle im PsTools-Ordner zu klicken und Öffnen auszuwählen Befehlsfenster hier.
Dies öffnet die Eingabeaufforderung in diesem Ordner, sodass Sie Befehle über PsExec ausführen können.
- Wenn die Eingabeaufforderung jetzt für den Ordner geöffnet ist, der PsExec.exe enthält, können Sie mit der Eingabe von Befehlen auf dem Remote-Computer beginnen.
Die Syntax verstehen
Wie jedes Kommandozeilen-Tool funktioniert PsExec nur, wenn seine Syntax genau befolgt wird. Sobald Sie verstehen, wie man Befehle so eingibt, wie das Tool sie versteht, können Sie das Programm von jeder Eingabeaufforderung aus steuern.
So müssen PsExec-Befehle eingegeben werden:
psexec [ computer [, computer2 [, …] | @Datei][-u Benutzername [-p Passwort][ -n s][- r Dienstname][- h][- l][- s |- e][- x][- i[Sitzung][-c ausführbare Datei [-f |-v ][-w Verzeichnis][- d][- ][- a n, n , …] cmd [Argumente]
Das mag kompliziert und verwirrend aussehen, aber keine Sorge! Unten auf dieser Seite finden Sie einige Beispiele, die Sie zum Üben verwenden können.
Die obige Syntax wird verwendet, um eines der folgenden PsExec-Befehlsargumente auszuführen:
PsExec-Befehlsoptionen | |
---|---|
Parameter | Erklärung |
- a | Separate Prozessoren, auf denen die Anwendung laufen kann, durch Kommas, wobei 1 die CPU mit der niedrigsten Nummer ist. Um die Anwendung beispielsweise auf CPU 2 und CPU 4 auszuführen, würden Sie Folgendes eingeben: - a 2, 4 |
- c | Kopiert die angegebene ausführbare Datei zur Ausführung auf das entfernte System. Wenn weggelassen, muss sich die Anwendung im Systempfad auf dem Remote-System befinden. |
- d | Nicht auf das Beenden des Prozesses warten (nicht interaktiv). |
- e | Lädt das Profil des angegebenen Kontos nicht. |
- f | Kopiert das angegebene Programm, auch wenn die Datei bereits auf dem entfernten System existiert. |
- i | Führen Sie das Programm so aus, dass es mit dem Desktop der angegebenen Sitzung auf dem Remote-System interagiert. Wenn keine Sitzung angegeben ist, wird der Prozess in der Konsolensitzung ausgeführt. |
- h | Wenn das Zielsystem Windows Vista oder höher ist, führen Sie den Prozess mit dem erhöhten Token des Kontos aus, sofern verfügbar. |
- l | Führen Sie den Prozess als eingeschränkter Benutzer aus (entfernt die Gruppe „Administratoren“und erlaubt nur Berechtigungen, die der Gruppe „Benutzer“zugewiesen sind). In Windows Vista wird der Prozess mit niedriger Integrität ausgeführt. |
- n | Gibt das Zeitlimit (in Sekunden) für die Verbindung zu entfernten Computern an. |
- p | Gibt ein optionales Passwort für den Benutzernamen an. Wenn Sie nichts auslassen, werden Sie aufgefordert, ein verstecktes Passwort einzugeben. |
- r | Gibt den Namen des Remote-Dienstes an, der erstellt oder mit dem interagiert werden soll. |
- s | Führt den Remote-Prozess im Systemkonto aus. |
- u | Gibt einen optionalen Benutzernamen für die Anmeldung am entfernten Computer an. |
- v | Kopiert die angegebene Datei nur, wenn sie eine höhere Versionsnummer hat oder neuer ist als die auf dem entfernten System. |
- w | Setzt das Arbeitsverzeichnis des Prozesses (relativ zum entfernten Computer). |
- x | Zeigt die Benutzeroberfläche auf dem sicheren Winlogon-Desktop an (nur lokales System). |
- Priorität | Gibt -low, -belownormal, -abovenormal, -high oder -re altime an, um den Prozess mit einer anderen Priorität auszuführen. Verwenden Sie -background, um unter Windows Vista mit wenig Arbeitsspeicher und E/A-Priorität ausgeführt zu werden. |
Computer | Weist PsExec an, die Anwendung auf dem/den angegebenen Remote-Computer(n) auszuführen. Falls weggelassen, führt PsExec die Anwendung auf dem lokalen System aus, und wenn ein Platzh alter (\) angegeben wird, führt PsExec den Befehl auf allen Computern in der aktuellen Domäne aus. |
@Datei | PsExec führt den Befehl auf jedem der in der Datei aufgelisteten Computer aus. |
cmd | Name der auszuführenden Anwendung. |
Argumente | Zu übergebende Argumente (beachten Sie, dass Dateipfade auf dem Zielsystem absolute Pfade sein müssen). |
PsExec-Befehlsbeispiele
Hier sind einige Beispiele dafür, wie Sie PsExec verwenden können, um Dinge wie das Ausführen von Remote-Eingabeaufforderungsbefehlen, das Verw alten von Windows-Diensten und das Starten oder Installieren von Programmen zu tun.
CMD aus der Ferne öffnen
psexec \\192.168.86.62 cmd
Eine der einfachsten Möglichkeiten, mit PsExec Eingabeaufforderungsbefehle auf einem Remote-Computer auszuführen, besteht darin, cmd nach der IP-Adresse des Computers auszuführen, in diesem Beispiel 192.168.86.62.
Dadurch wird ein reguläres Eingabeaufforderungsfenster innerhalb des bestehenden geöffnet und Sie können jeden Befehl eingeben, als ob Sie vor dem Remote-Computer sitzen würden. Sie könnten dann beispielsweise ipconfig eingeben, um diese Ergebnisse vom anderen Computer zu erh alten, oder mkdir, um einen neuen Ordner zu erstellen, dir, um den Inh alt des Ordners aufzulisten usw.
Fernbefehl ausführen
psexec \\mediaserver01 tracert lifewire.com
Eine andere Möglichkeit, PsExec zu verwenden, besteht darin, einzelne Befehle einzugeben, ohne eine vollständige Eingabeaufforderung zu starten. In diesem Beispiel führen wir den Befehl tracert für lifewire.com aus, und da wir den Namen des Remote-Computers angegeben haben, mediaserver01, sind die Befehlsergebnisse für diesen Computer relevant, nicht für den lokalen (d. h. den, den Sie sind). ein).
Dienst aus der Ferne starten
psexec \\FRONTDESK_PC -u tomd -p 3(tom87 net start spooler
Das oben gezeigte PsExec-Befehlsbeispiel startet den Print Spooler-Dienst, spooler, remote auf dem Computer FRONTDESK_PC mit dem Passwort des Benutzers tomd, 3(tom87.
Derselbe Befehl kann verwendet werden, um einen Dienst aus der Ferne zu stoppen, aber Sie würden "stop" anstelle von "start" eingeben.
Registrierungseditor öffnen
psexec \\mikelaptopw10 -i -s C:\Windows\regedit.exe
Hier verwenden wir PsExec, um den Registrierungseditor auf dem Remotecomputer mikelaptopw10 im Systemkonto zu starten. Da -i verwendet wird, wird das Programm im interaktiven Modus geöffnet, was bedeutet, dass es tatsächlich auf dem Bildschirm des Remote-Computers gestartet wird.
Wenn -i im obigen Befehl weggelassen würde, würde es im versteckten Modus ausgeführt, um zu vermeiden, dass Dialogfelder oder andere Fenster angezeigt werden.
Programm auf entferntem Computer installieren
psexec \\J3BCD011 -c "Z:\files\ccleaner.exe" cmd /S
In diesem letzten Beispiel zur Verwendung von PsExec verwenden wir -c, um das Programm ccleaner.exe auf den Remote-Computer J3BCD011 zu kopieren und es dann mit dem auszuführen /S Parameter, da CCleaner dies verwendet, um eine unbeaufsichtigte Installation zu ermöglichen (die keine Benutzereingabe erfordert). Um ein solches Argument hinzuzufügen, ist cmd erforderlich.
PsExec kann gefährlich sein
Es ist sehr wichtig zu verstehen, wie leistungsfähig PsExec ist und wie es verwendet werden könnte, um Ihren Computer zu kompromittieren, wenn es in einer ansonsten unsicheren Umgebung verwendet wird.
Zum Beispiel wird die Kombination von - c, - u und - p besonders gut Lassen Sie jeden mit einer Netzwerkverbindung zu Ihrem Computer und Kenntnis der Administratoranmeldeinformationen geheime Malware mit den Anmeldeinformationen von jemandem ausführen.
Sogar das letzte, absolut akzeptable Beispiel im vorherigen Abschnitt hat einen ganz neuen Zweck, wenn man bedenkt, dass jemand anstelle von CCleaner alles andere im Hintergrund installieren könnte, was er möchte, und kein Fenster erscheint, um dies anzuzeigen irgendwas passiert.
Alles in allem, angesichts der erforderlichen Firewall-Änderungen und Kenntnisse der Administrator-Anmeldeinformationen, die jemand haben müsste, gibt es wenig Grund zur Sorge, solange das Admin-Passwort auf dem Remote-Computer komplex ist und andere grundlegende Sicherheitsmaßnahmen ergriffen wurden.
Einige Antivirenprogramme identifizieren PsExec fälschlicherweise als gefährliche Datei, aber diese Warnungen können ignoriert werden, wenn Sie sicher sind, dass das von Ihnen verwendete Programm von der oben genannten Microsoft-Quelle stammt. Der Grund dafür ist, dass Malware bekanntermaßen PsExec verwendet, um Viren zu übertragen.