Skript mit PsEcex auf entferntem Windows Computer ausführen

Das Tool PsExec liefert einem diese Möglichkeit.

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

Verwendung: Psexec [\\Computer[,Computer2[,…] | @Datei][-u Benutzer [-p Kennwort]][-n s][-l][-s|-e][-x][-i [Sitzung]][-c [-f|-v]][-w Verzeichnis][-d][-<Priorität>][-a n,n,… ] cmd [Argumente]

Computer

Weist PsExec an, die Anwendung auf den angegebenen Computern auszuführen. Wenn Sie keinen Namen eines Computers angeben, auf dem PsExec ausgeführt werden soll, wird die Anwendung auf dem lokalen System ausgeführt. Bei der Eingabe „\\*“ für den Computernamen führt PsExec die Anwendungen entsprechend auf allen Computern in der aktuellen Domäne aus.

@Datei

Weist PsExec an, den Befehl auf allen Computern auszuführen, die in der angegebenen Textdatei aufgeführt sind.

-a

Nennen Sie die Prozessoren, auf den die Anwendung ausgeführt werden kann, und trennen Sie die Prozessoren dabei mit Kommas voneinander ab. Die Zahl 1 bezeichnet dabei die CPU mit der niedrigsten Nummer. Um beispielsweise die Anwendung auf CPU 2 und 4 auszuführen, geben Sie Folgendes ein: „-a 2,4“

-c

Kopiert das angegebene Programm zur Ausführung auf das Remotesystem. Wenn Sie diese Option nicht angeben, muss sich die Anwendung auf dem Remotesystem im Systempfad befinden.

-d

Beenden der Anwendung nicht abwarten. Verwenden Sie diese Option nur für nichtinteraktive Anwendungen.

-e

Lädt nicht das Profil des angegebenen Kontos.

-f

Kopiert das angegebene Programm selbst dann auf das Remotesystem, wenn die Datei bereits auf dem Remotesystem vorhanden ist.

-i

Führt das Programm so aus, dass es mit dem Desktop für die angegebene Sitzung auf dem Remotesystem interagiert. Wenn Sie keine Sitzung angeben, wird der Prozess in der Konsolensitzung ausgeführt.

-l

Führt den Prozess als Benutzer mit eingeschränkten Rechten aus. (Die Administratorengruppe wird entfernt, und es werden nur solche Berechtigungen zugelassen, die der Benutzergruppe zugewiesen wurden.) Unter Windows Vista wird der Prozess mit niedriger Integrität ausgeführt.

-n

Gibt das Timeout in Sekunden für die Verbindung mit Remotecomputern an.

-p

Gibt das optionale Kennwort für den Benutzernamen an. Wenn Sie diese Option nicht verwenden, werden Sie aufgefordert, ein Kennwort einzugeben, wobei dieses Kennwort bei der Eingabe nicht angezeigt wird.

-s

Führt den Remoteprozess im Systemkonto aus.

-u

Gibt den optionalen Benutzernamen für die Anmeldung beim Remotecomputer an.

-v

Kopiert die angegebene Datei nur dann, wenn sie eine höhere Versionsnummer besitzt oder neuer ist als die Datei auf dem Remotesystem.

-w

Gibt das Arbeitsverzeichnis für den Prozess an (relativ zum Remotecomputer).

-x

Zeigt die grafische Benutzeroberfläche auf dem Winlogon-Desktop an (nur lokales System).

-Priorität

Führt den Prozess in der angegebenen Priorität aus. Zulässige Optionen: -low, -belownormal, -abovenormal, -high, -realtime.

Programm

Name des auszuführenden Programms.

Argumente

Die zu übergebenden Argumente. (Die Dateipfade müssen dabei absolute Pfade auf dem Zielsystem sein.)

Sie können auch Anwendungen mit Leerzeichen im Namen angeben, beispielsweise: psexec \\marklap „c:\Name der Anwendung\Anw.exe“. Die Eingabe wird nur dann an das Remotesystem übergeben, wenn Sie die Eingabetaste drücken. Mit Strg+C beenden Sie den Remoteprozess.

Wenn Sie keinen Benutzernamen angeben, wird der Remoteprozess im selben Konto ausgeführt wie PsExec. Weil der Remoteprozess jedoch nur die Rolle des Kontos annimmt, besitzt dieser Prozess keinen Zugriff auf die Netzwerkressourcen auf dem Remotesystem. Wenn Sie einen Benutzernamen angeben, wird der Remoteprozess im angegebenen Konto ausgeführt, und der Prozess erhält den Zugriff auf alle Netzwerkressourcen, auf die auch das Konto zugreifen kann. Beachten Sie, dass das Kennwort in Klartext an das Remotesystem übertragen wird.

Beispiele

In einem Artikel von Mark Russinovich finden Sie eine Beschreibung der Funktionsweise von PsExec sowie einige Tipps zur Verwendung dieses Dienstprogramms.

 

Der folgende Befehl startet eine interaktive Eingabeaufforderung auf \\marklap:

psexec \marklap cmd

Mit diesem Befehl wird IpConfig auf dem Remotesystem mit dem Schalter /all ausgeführt, wobei die resultierende Ausgabe lokal angezeigt wird:

psexec \\marklap ipconfig /all

Mit diesem Befehl wird das Programm „test.exe“ auf das Remotesystem kopiert und interaktiv ausgeführt:

psexec \\marklap -c test.exe

Hiermit geben Sie den vollständigen Pfad für ein Programm an, das bereits auf einem Remotesystem installiert ist, wenn sich dieses Programm nicht im Systempfad befindet:

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

Hiermit führen Sie Regedit interaktiv im Systemkonto aus, sodass der Inhalt der Schlüssel SAM und SECURITY angezeigt wird:

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

Mit diesem Befehl führen Sie Internet Explorer als Benutzer mit eingeschränkten Rechten aus:

psexec -l -d „c:\programme\internet explorer\iexplore.exe“

PsTools

PsExec ist Teil eines immer größer werdenden Kits an Sysinternals-Befehlszeilenprogrammen mit dem Namen PsTools, die die Verwaltung lokaler Windows NT/2000-Systeme und der entsprechenden Remotesysteme unterstützen.

Quelle:

http://technet.microsoft.com/de-ch/sysinternals/bb897553.aspx