PsExec v2.43

Von Mark Russinovich

Veröffentlicht am: 11. April 2023

Download PsTools herunterladen (5 MB)

Einführung

Mit Hilfsprogrammen wie Telnet und Remotesteuerungsprogrammen wie PC Anywhere von Symantec können Sie Programme auf Remotesystemen ausführen, aber die Einrichtung kann mühsam sein und es ist möglicherweise erforderlich, Clientsoftware auf den Remotesystemen zu installieren, auf die Sie zugreifen möchten. PsExec ist ein einfacher Ersatz für Telnet, mit dem Sie Prozesse auf anderen Systemen ausführen können und volle Interaktivität für Konsolenanwendungen erhalten, ohne Clientsoftware manuell installieren zu müssen. Zu den leistungsstärksten Anwendungen von PsExec gehören das Starten interaktiver Eingabeaufforderungen auf Remotesystemen und Remoteaktivierungstools wie IpConfig, die andernfalls keine Informationen über Remotesysteme anzeigen können.

Hinweis: Einige Antivirenscanner melden, dass eines oder mehrere der Tools mit einem „Remoteadministrator“-Virus infiziert sind. Keines der PsTools enthält Viren, aber sie wurden von Viren verwendet, weshalb sie Virenbenachrichtigungen auslösen.

Installation

Kopieren Sie einfach PsExec in Ihren ausführbaren Pfad. Wenn Sie „psexec“ eingeben, wird die Verwendungssyntax angezeigt.

Mithilfe von PsExec

In der Ausgabe vom Juli 2004 des Windows IT Pro Magazine finden Sie einen Artikel von Mark über die erweiterte Verwendung von PsExec.

Syntax:

psexec [\\\\computer[,computer2[,...] | @file]][-u user [-p psswd]][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-g n][-a n,n,...][-accepteula][-nobanner] cmd [arguments]
Parameter BESCHREIBUNG
-a Trennen Sie die Prozessoren, auf denen die Anwendung ausgeführt werden kann, durch Kommas, wobei 1 die CPU mit der niedrigsten Nummer ist. Geben Sie beispielsweise „-a 2,4“ ein, um die Anwendung auf CPU 2 und CPU 4 auszuführen.
-c Kopieren Sie die angegebene ausführbare Datei zur Ausführung auf das Remotesystem. Wenn Sie diese Option weglassen, muss sich die Anwendung im Systempfad des Remotesystems befinden.
-d Warten Sie nicht, bis der Prozess beendet wird (nicht interaktiv).
-e Lädt das Profil des angegebenen Kontos nicht.
-f Kopieren Sie das angegebene Programm, auch wenn die Datei bereits auf dem Remotesystem vorhanden ist.
-i Führen Sie das Programm so aus, dass es mit dem Desktop der angegebenen Sitzung auf dem Remotesystem interagiert. Ist keine Sitzung angegeben, wird der Prozess in der Konsolensitzung ausgeführt. Dieses Flag ist erforderlich, wenn Sie versuchen, Konsolenanwendungen interaktiv (mit umgeleiteter Standard-E/A) auszuführen.
-h Wenn das Zielsystem Vista oder höher ist, muss der Prozess mit dem Token mit erhöhten Rechten des Kontos ausgeführt werden, sofern verfügbar.
-l Führen Sie den Prozess als eingeschränkten Benutzer aus (entfernt die Gruppe „Administratoren“ und lässt nur der Gruppe „Benutzer“ zugewiesene Berechtigungen zu). Unter Windows Vista wird der Prozess mit niedriger Integrität ausgeführt.
-n Gibt ein Timeout in Sekunden beim Herstellen einer Verbindung mit Remotecomputern an.
-p Gibt das optionale Kennwort für den Benutzernamen an. Wenn Sie es weglassen, werden Sie aufgefordert, ein verstecktes Kennwort einzugeben.
-r Gibt den Namen des Remotediensts an, der erstellt oder mit dem interagiert werden soll.
-s Führen Sie den Remoteprozess im Systemkonto aus.
-u Gibt den optionalen Benutzernamen für die Anmeldung beim Remotecomputer an.
-v Kopieren Sie die angegebene Datei nur, wenn sie eine höhere Versionsnummer aufweist oder eine neuere Version als die auf dem Remotesystem befindliche Datei ist.
-w Legen Sie das Arbeitsverzeichnis des Prozesses fest (relativ zum Remotecomputer).
-x Zeigen Sie die Benutzeroberfläche auf dem sicheren Winlogon-Desktop an (nur lokales System).
-priority Gibt „-low“, „-belownormal“, „-abovenormal“, „-high“ oder „-realtime“ an, um den Prozess mit einer anderen Priorität auszuführen. Verwenden Sie „-background“, um unter Vista mit geringer Arbeitsspeicher- und E/A-Priorität auszuführen.
computer Weisen Sie PsExec an, die Anwendung auf den angegebenen Remotecomputern auszuführen. Wenn Sie den Computernamen weglassen, führt PsExec die Anwendung auf dem lokalen System aus. Wenn Sie einen Platzhalter (\\*) angeben, führt PsExec den Befehl auf allen Computern in der aktuellen Domäne aus.
@file PsExec führt den Befehl auf jedem der in der Datei aufgeführten Computer aus.
cmd Name der auszuführenden Anwendung.
arguments Zu übergebende Argumente (beachten Sie, dass Dateipfade absolute Pfade auf dem Zielsystem sein müssen).
-accepteula Dieses Flag unterdrückt die Anzeige des Lizenzdialogfelds.
-nobanner Dieses Flag unterdrückt das Startbanner und die Copyrightmeldung.

Anwendungen mit Leerzeichen im Namen können Sie in Anführungszeichen einschließen, z. B.

psexec \\marklap "c:\\long name app.exe"

Die Eingabe wird erst an das Remotesystem übergeben, wenn Sie die EINGABETASTE drücken. Mit STRG-C können Sie den Remoteprozess beenden.

Wenn Sie den Benutzernamen weglassen, wird der Prozess im Kontext Ihres Kontos auf dem Remotesystem ausgeführt, hat aber keinen Zugriff auf Netzwerkressourcen (da es sich um eine Identitätswechsel handelt). Geben Sie einen gültigen Benutzernamen in der Domain\User-Syntax an, wenn der Remoteprozess Zugriff auf Netzwerkressourcen oder die Ausführung in einem anderen Konto erfordert. Beachten Sie, dass das Kennwort und der Befehl während der Übertragung an das Remotesystem verschlüsselt werden.

Von PsExec zurückgegebene Fehlercodes sind spezifisch für die von Ihnen ausgeführten Anwendungen, nicht für PsExec.

Beispiele

Der folgende, von mir geschriebene Artikel beschreibt die Funktionsweise von PsExec und gibt Tipps zur Verwendung:

Der folgende Befehl startet eine interaktive Eingabeaufforderung für \\marklap:

psexec -i \\marklap cmd

Dieser Befehl führt IpConfig auf dem Remotesystem mit dem /all-Switch aus und zeigt die resultierende Ausgabe lokal an:

psexec -i \\marklap ipconfig /all

Dieser Befehl kopiert das Programm test.exe auf das Remotesystem und führt es interaktiv aus:

psexec -i \\marklap -c test.exe

Geben Sie den vollständigen Pfad zu einem Programm an, das bereits auf einem Remotesystem installiert ist, wenn es nicht im Systempfad enthalten ist:

psexec -i \\marklap c:\bin\test.exe

Führen Sie Regedit interaktiv im Systemkonto aus, um den Inhalt der SAM- und SECURITY-Schlüssel anzuzeigen:

psexec -i -d -s c:\windows\regedit.exe

Verwenden Sie den folgenden Befehl, um Internet Explorer wie mit eingeschränkten Benutzerberechtigungen auszuführen:

psexec -l -d "c:\program files\internet explorer\iexplore.exe"

Download PsTools herunterladen (5 MB)

PSTools

PsExec ist Teil eines wachsenden Kit von Sysinternals-Befehlszeilentools mit dem Namen PsTools, die Sie bei der Verwaltung lokaler Systeme und Remotesysteme unterstützen.

Läuft auf:

  • Client: Windows 8.1 und höher.
  • Server: Alle Windows Server 2012 (x64) und höher.