In der heutigen Lektion in unserer Geek School-Serie über SysInternals zeigen wir Ihnen, wie Sie die PsTools-Dienstprogramme verwenden, um alle Arten von Verwaltungsaufgaben sowohl lokal als auch auf Remotecomputern auszuführen.,
Wenn Sie jemals eine Verbindung zu einem anderen Computer herstellen und einen Befehl ausführen, schnell Informationen zu laufenden Prozessen abrufen und diese optional beenden oder sogar einen Dienst auf einem anderen PC beenden möchten, können Sie die PsTools-Dienstprogramme verwenden, um all diese Dinge zu tun und noch mehr.
Natürlich können Sie Remote Desktop oder einen ähnlichen Dienst verwenden, um eine Verbindung zu einem Windows-Computer herzustellen und den Desktop tatsächlich anzuzeigen und alles zu tun, was Sie lokal tun würden, aber mit den PsTools — Dienstprogrammen können Sie viele Aufgaben über die Befehlszeile ausführen-oder noch besser über ein Skript, das Sie später wiederverwenden können.,
Dies sind die Arten von Dienstprogrammen, die in einer Unternehmensumgebung am besten funktionieren, und wenn Sie diese Tools beherrschen, werden Sie auf jeden Fall viel besser in Ihrer Systemadministration arbeiten, Zeit sparen und Dinge viel intelligenter machen. Dinge intelligenter und schneller zu machen, ist eine wichtige Fähigkeit, um ein großartiger Systemadministrator zu sein.
Es gibt zwölf Tools im PsTools-Set, und während einige von ihnen äußerst nützlich sind, wurden andere durch Tools ersetzt, die in neuere Windows-Versionen integriert sind, und es gibt einige andere, die für die meisten Menschen nicht nützlich sind., Wir werden alle durchgehen, damit Sie verstehen, wie sie funktionieren und warum Sie jeden verwenden möchten.,
Es ist erwähnenswert, dass Sie ein Tool wie PsExec verwenden können, um alle Arten von Befehlszeilenprogrammen auf Remotecomputern auszuführen… einschließlich wirklich nützlicher wie dem Autoruns-Befehlszeilentool und vielen mehr., Die Möglichkeiten sind endlos, sobald Sie die Kraft von PsTools angenommen haben.
Alle diese Tools können auf lokalen Computern verwendet werden, sind jedoch hauptsächlich nützlich, um eine Verbindung zu Remotecomputern herzustellen und Befehle auszuführen.
Verbindung zu Remotecomputern herstellen (Syntax für alle Dienstprogramme)
Alle Utilites können entweder auf dem lokalen oder Remote-Computer ausgeführt werden, sodass sie bei Bedarf alle dasselbe erste Argument für den Computernamen haben. Beachten Sie, dass Sie die IP-Adresse verwenden könnten, wenn Sie stattdessen wollten., Wenn Sie dieses Argument weglassen, wird der Befehl auf Ihrem lokalen Computer ausgeführt.
psinfo \\computername
Sie können auch mehrere Computer wie psinfo \\computer1, computer2, computer3 auflisten, oder Sie können alle Namen in eine Datei einfügen und auf psinfo @computerlist verweisen.txt. Die endgültige Syntax ist psinfo \\*, das auf allen Computern in der Domäne ausgeführt wird und wahrscheinlich nicht jeden Tag verwendet wird.,
Wenn Sie eine Verbindung mit alternativen Anmeldeinformationen herstellen müssen, da das Konto Ihres lokalen Computers einen anderen Benutzernamen und ein anderes Kennwort als der andere Computer hat, können Sie die Optionen-u und-p verwenden, obwohl wir beachten würden, dass Sie-p möglicherweise nicht verwenden möchten Die Befehlszeile mit einem Kennwort im Befehl aus Sicherheitsgründen. Update: Ab der neuesten Version von PsExec übergibt kein Tool mehr Passwörter als Klartext, daher besteht die einzige Sorge darin, dass jemand Ihre Skriptdateien lesen und das Passwort dort sehen kann.,
psinfo \\computername-u“ user „- p“Password“
Der“ user „- Teil des Befehls würde sich in“ DOMAIN\user “ ändern, wenn Sie sich in einer Domänenumgebung befinden und vom aktuell ausgeführten Benutzer wechseln müssen.
Hinweis: Sie müssen im Allgemeinen eine Verbindung zu den Remotecomputern mit einem Administratorkonto herstellen.
Konfigurieren des Fernverwaltungszugriffs
Wenn Sie sich in einer Domänenumgebung befinden, in der sich die meisten Benutzer von PsTools befinden, können Sie diesen Abschnitt vollständig ignorieren, da alles einwandfrei funktionieren sollte., Für alle, die Windows 7, 8 oder Vista in einer häuslichen Umgebung ausführen oder einige Computer in einem Büro ohne Domäne verwenden, müssen Sie die Benutzerkontensteuerung auf dem Remotecomputer optimieren, damit PsTools ordnungsgemäß ausgeführt werden kann.
Das Problem wird von Microsoft gut beschrieben:
Wenn ein Benutzer, der Mitglied der Gruppe Lokale Administratoren auf dem Remote-Zielcomputer ist, mithilfe des Befehls net use * \\remotecomputer\Share$ eine Remoteverwaltungsverbindung herstellt, wird beispielsweise keine Verbindung als vollständiger Administrator hergestellt., Der Benutzer hat kein Höhenpotenzial auf dem Remotecomputer, und der Benutzer kann keine administrativen Aufgaben ausführen.
Um es anders zu erklären, wenn Sie versuchen, eine Verbindung zu einem anderen Computer herzustellen und etwas auszuführen, das Administratorzugriff erfordert, gibt es keine Möglichkeit, die UAC-Eingabeaufforderung auszulösen und von Ihrem Computer aus zu akzeptieren, sodass keine Verbindung als Administrator hergestellt wird.
Und das ist keine schlechte Sache., Sie sollten diese Einstellung nicht ändern, ohne vollständig zu verstehen, dass Sie eine Öffnung für Malware zulassen, von einem Computer auf einen anderen zu verbreiten — vorausgesetzt, dass Malware Ihren lokalen Benutzernamen und Passwort hat, und das Passwort ist das gleiche wie der andere Computer, und die Malware ist so schwierig, was die meisten nicht ist. Aber es ist immer noch nicht etwas leichtfertig genommen werden.
Wenn Sie sich in einer Domänenumgebung befinden, ist dieses Problem nicht vorhanden und muss nicht geändert werden. Und wenn Sie nur mit einer Reihe von virtuellen Maschinen testen, haben Sie nicht viel zu befürchten.,
Um die UAC so zu optimieren, dass PsTools ausgeführt werden kann, müssen Sie den Registrierungseditor öffnen und zum folgenden Schlüssel navigieren:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows\CurrentVersion\Policies\System
Sobald Sie dort sind, erstellen Sie ein neues 32-Bit-DWORD auf der rechten Seite, geben Sie ihm den Namen LocalAccountTokenFilterPolicy und den Wert 1. Sie müssen den Computer nicht neu starten, damit die Einstellung wirksam wird.,
Hinweis: Diese Einstellung muss nur zur Verdeutlichung auf dem Remotecomputer erfolgen, mit dem Sie eine Verbindung herstellen.
PsExec
PsExec ist wahrscheinlich das leistungsstärkste Tool im Kit, da Sie jeden Befehl in Ihrer lokalen Eingabeaufforderung ausführen können, genau wie auf dem Remote-Computer. Dazu gehört alles, was auf der Befehlszeile ausgeführt werden kann — Sie können Registrierungswerte ändern, Skripte und Dienstprogramme ausführen oder eine Verbindung von diesem PC zu einem anderen herstellen., Die Ausgabe der Befehle wird auf Ihrem lokalen PC und nicht auf dem Remote-PC angezeigt.
Die syntax ist einfach:
psexec \\computername <Optionen> apptorun.exe <Argumente>
Realistisch gesehen möchten Sie jedoch auch den Benutzernamen und das Kennwort in die Befehlszeile aufnehmen., Um beispielsweise eine Verbindung zu einem anderen PC herzustellen und die Liste der Netzwerkverbindungen zu überprüfen, verwenden Sie Folgendes:
psexec \\computername-u User-p>ipconfig
Dieser Befehl würde eine Ausgabe ähnlich der folgenden erzeugen:
Wenn Sie die Ausgabe eines Befehls an einen anderen Befehl übergeben oder die Ausgabe in eine Datei umleiten möchten, tun Sie normalerweise einfach so etwas wie command.exe > Ausgang.txt, und das gleiche passiert mit PsExec., Ein Befehl wie der folgende speichert die Ausgabe von netstat-an in einer Datei im Stammverzeichnis Ihres lokalen Computers.
psexec \\computername-netstat-an > C:\connections.txt
Wenn Sie die > oder | Zeichen über die PsExec-Verbindung an den Remotecomputer übergeben möchten, müssen Sie das Zeichen ^ verwenden, bei dem es sich um ein wenig bekanntes Escape-Zeichen in der Windows-Befehlsshell handelt., Das bedeutet natürlich, dass wir tatsächlich die Befehlsshell auf dem Remote-Computer verwenden und nicht nur den Prozess ausführen müssen, damit wir die Umleitung oder Pipe überhaupt durchführen können. Das macht unseren Befehl also so (Ändern des Pfads zum Home-Verzeichnis, in dem wir Schreibzugriff haben).
psexec \\computername-cmd /c netstat- ^> C:\users\geek\connections.,txt
In diesem Beispiel wird die Liste der von netstat generierten offenen Verbindungen in einer Datei namens connections in das Home-Verzeichnis des Benutzers auf dem Remotecomputer abgelegt.txt.
Kopieren von Programmen auf den Remote-PC
Sie sind bei der Verwendung von PsExec nicht nur auf die Anwendungen auf dem Remote-PC beschränkt, sondern können auch alles ausführen, was Sie lokal haben. Zum Beispiel, wenn Sie einen Autoruns-Befehlszeilenscan des Remote-Systems durchführen wollten, aber nur autorunsc hatten.exe auf Ihrem lokalen Computer können Sie mit dem Schalter-c die Anwendung kopieren., PsExec entfernt das Tool aus dem Remote-System, sobald der Befehl beendet ist.
Dies ist ein wichtiger Zeitpunkt, um die Option-accepteula der meisten SysInternals-Tools zu erwähnen, die sicherstellt, dass die EULA auf dem Computer akzeptiert wurde, auf dem der Befehl ausgeführt wurde. Wir müssen dies dem Autorunsc hinzufügen.exe-Befehl oder es wird auf dem Remote-Computer fehlschlagen.
psexec \\computername -c autorunsc.,exe-accepteula
Es gibt einige andere Optionen, die angeben, ob die Anwendung immer kopiert wird oder ob sie kopiert werden soll, wenn die lokale Anwendung eine höhere Version als die entfernte ist. Sie können psexec einfach über die Eingabeaufforderung ausführen, um diese Optionen anzuzeigen.
Hinweis: Wenn ein Befehl nur in der Eingabeaufforderung verfügbar ist, müssen Sie zuvor cmd /c hinzufügen. Dazu gehören Pipes und Weiterleitungen wie | und >.,
Interaktion mit dem angemeldeten Benutzer auf dem Remote-PC
Sie können den Schalter-i verwenden, um die Anwendung zu starten und dem Remote-Benutzer die tatsächliche Interaktion mit der Anwendung zu ermöglichen. Sie möchten dies wahrscheinlich mit dem Schalter-d kombinieren, der nicht darauf wartet, dass der Remote-Prozess beendet wird, bevor PsExec die Steuerung an Sie zurückgibt., Dieser Befehl öffnet beispielsweise ein Notizblock-Fenster auf einem Remotecomputer:
psexec \\computername-d-i notepad
Sie können auch als Systembenutzer mit der Option-s ausführen, was sehr gefährlich sein kann. Wenn Sie beispielsweise den Registrierungseditor auf Ihrem eigenen Computer öffnen möchten, jedoch Berechtigungen auf Systembenutzerebene haben, können Sie diesen Befehl ausführen.
psexec -i-d -s „regedit“ ein.,exe
Falls Sie sich fragen, ja, dies gibt Ihnen Zugriff auf viele Dinge, auf die Sie normalerweise keinen Zugriff hätten in der Registrierung bearbeiten. Und ja, es ist eine wirklich schlechte Idee.
Ausführen einer vollständigen Eingabeaufforderung über PsExec
Ja, wir haben Ihnen gerade all diese Beispiele gezeigt, wie Sie einen einzelnen Befehl über PsExec ausführen können… und es stellt sich heraus, dass Sie eine vollständige Shell auf Ihrem lokalen Computer ausführen können, die tatsächlich auf dem Remotecomputer ausgeführt wird. Es ist genau so, als wären Sie (größtenteils) auf der Konsole dieses Servers., Und zum Glück ist die Syntax für diese wirklich einfach (fügen Sie bei Bedarf den Benutzernamen hinzu).
psexec \\computername-cmd.exe
Sobald Sie dies getan haben, haben Sie eine Eingabeaufforderung, die jetzt auf dem Remote-PC ausgeführt wird.
Die Eingabeaufforderung funktioniert fast wie normal, außer dass die Tab-Vervollständigung überhaupt nicht funktioniert, aber das ist bei uns in Ordnung.,
Wenn Sie PowerShell-Befehle remote auf einem anderen Computer ausführen möchten, können Sie dies nativ mit einigen Änderungen an der Konfiguration tun. Leider funktioniert PowerShell mit PsExec nicht sehr gut, es sei denn, Sie verwenden eine Reihe seltsamer Problemumgehungen, die sich nicht lohnen.
Andere Optionen
Der Befehl psexec verfügt über eine Menge anderer wirklich nützlicher Optionen, die Sie verwenden können — jede davon würde direkt nach \\computername und vor einem der anderen Befehle im Bereich verwendet., Also denken Sie psexec \\computername -option <remote-Befehl>.
Wenn Sie den Befehl psexec einfach über die Eingabeaufforderung ohne zusätzliche Schalter ausführen, werden alle angezeigt.
PsFile
Dieser Befehl zeigt Dateien an, die derzeit über das Netzwerk auf einem lokalen PC oder einem Remote-PC geöffnet werden und funktioniert ähnlich wie der Windows-Befehl „net file“. Die Syntax ist wie bei jedem anderen Befehl im Kit.
psfile \\computername
Ja, das war nicht so viel Spaß wie das Letzte.,
Wenn Sie eine der Dateien schließen und die Person von der Ressource trennen möchten, können Sie die Verbindung schließen, indem Sie die Option-c, Dies kann jedoch zu einem Datenverlust führen, da die Datei nicht ordnungsgemäß geschlossen wurde.
psfile \\computername <path> -c
PsGetSid
Dies zeigt an das die Sicherheits-id für computer oder Benutzer, und nimmt die standard-Argumente., Dieses Dienstprogramm ist wahrscheinlich nur in ganz bestimmten Szenarien nützlich, auf die wir persönlich noch nicht gestoßen sind. Versuchen Sie es also einmal und vergessen Sie es, bis Sie es eines Tages verwenden müssen.
PsInfo
Dieser Befehl listet viele nützliche Informationen zu einem System auf, einschließlich der Betriebszeit, die viel Spaß macht. Sie können dieses lokal ausführen, um es zu testen, indem Sie einfach psinfo an der Eingabeaufforderung eingeben, vorausgesetzt, Ihre SysInternals-Tools befinden sich im Pfad.,
Wenn Sie viel mehr Informationen aus PsInfo herausholen möchten und ich weiß, dass Sie dies tun, können Sie die folgenden Switches verwenden, um Festplatteninformationen (-d) und Hotfixes (-h) und eine Liste der installierten Anwendungen hinzuzufügen und ihre Versionen (-s).,
psinfo-d-h-s
Dies führt zu viel mehr Informationen, auch auf einer fast leeren virtuellen Maschine:
Sie können PsInfo auch remote ausführen, indem Sie den Computernamen und möglicherweise den Benutzernamen hinzufügen… problem: Es funktioniert nur, wenn der Remote-Registrierungsdienst aktiviert ist. Gehen Sie zum Ende des Artikels, wo wir darüber sprechen, wie es auf dem Remote-Computer zu aktivieren.,
PsKill
Dieser Befehl ist wirklich einfach — er beendet Prozesse entweder nach Name oder ID, und Sie können den Schalter-t verwenden, um optional den gesamten Prozessbaum abzubrechen.
pskill \\computername <PID oder Name>
Das Problem mit PsKill ist, dass die neuesten Versionen von Windows ein sehr leistungsfähiges Task Killing-Dienstprogramm namens Taskkill haben, das viel mehr Funktionen bietet.,
PsList
Dieses Dienstprogramm ist extrem einfach, aber ziemlich praktisch, um schnell auf einen Computer zu schauen und zu sehen, ob etwas zu viel CPU oder Speicher verbraucht. Sie können den Namen oder einen Teil des Namens in der Befehlszeile angeben, um die Liste auf nur eine Problemanwendung einzugrenzen, und Sie können fast alle Informationen einschließlich Threads sehen.
Hinweis: Damit dieses Dienstprogramm auf einem Remote-Computer funktioniert, muss der Remote-Registrierungsdienst aktiviert sein. Lesen Sie unbedingt bis zum Ende der Lektion, da wir später erklären, wie Sie damit umgehen sollen.,
PsLoggedOn
Dieses Dienstprogramm listet Konten auf, die entweder auf dem Computer angemeldet sind oder eine Remoteverbindung herstellen. Es ist ziemlich einfach und weitgehend nützlich in einer Umgebung mit Systemadministratoren.
PsLogList
Dieses Dienstprogramm zeigt ein lokales oder Remote-Ereignisprotokoll in der Befehlszeile an.,
psloglist \\computer System
Es gibt auch die Optionen-h, -d und-m, mit denen Sie die Liste der Ereignisse auf nur die letzten x Stunden, Tage oder Minuten eingrenzen können. Die Option-n zeigt die Liste x Datensätze an, während der Schalter-r die Reihenfolge umkehrt, sodass sich die neuesten Datensätze am unteren Rand der Ausgabe befinden. Die letzte Option, die wir in diesem Beispiel auf „System“ gesetzt haben, ist eigentlich nicht erforderlich — wenn Sie es weglassen, wird das Systemprotokoll immer abgerufen, Sie können es jedoch in Application oder Security ändern, um diese Protokolle abzurufen.,
Wenn Sie Administratorzugriff auf den anderen Computer haben, können Sie die Ereignisanzeige einfach öffnen und im Aktionsmenü Verbinden auswählen. Geben Sie den Computernamen in die Liste ein, ändern Sie gegebenenfalls die Anmeldeinformationen und greifen Sie auf diese Weise auf die Ereignisprotokolle zu.
Das einzige Szenario, in dem PsLogList wirklich nützlich ist, ist, wenn Sie etwas skripten möchten, um eine Aktion auszuführen bei bestimmten Nachrichten im Ereignisprotokoll.,
PsPasswd
Mit diesem Dienstprogramm können Sie die Kennwörter für lokale und Remote-Benutzer ändern. Die Syntax ist die gleiche wie alles andere:
pspasswd \\computer-u User-p Password <AccountToChange> <NewPassword>
Der Vorteil dieses Dienstprogramms gegenüber der Verwendung von NET USER über die reguläre Eingabeaufforderung besteht darin, dass Sie Kennwörter für mehrere Computer gleichzeitig ändern können und dies auch in einer Domänenumgebung funktioniert.,
PsPing
Dieses Dienstprogramm pingt, überprüft Ports und führt Latenz-und Bandbreitentests durch. Ziemlich einfach.,
psping <servername>
Oder Sie können die Konnektivität zu einem Port überprüfen, indem Sie die Portnummer wie folgt hinzufügen:
psping <Servername>:80
Es gibt eine Menge erweiterter Optionen für diesen Befehl, die Sie wahrscheinlich überprüfen möchten, sollten Sie ned einige Netzwerk-Fehlerbehebung zu tun.,
PsService
Mit diesem Dienstprogramm können Sie Windows-Dienste über die Eingabeaufforderung bearbeiten. Es ist wirklich ganz einfach zu bedienen — die Syntax funktioniert wie folgt:
psservice \\computername <Befehl> <Argumente>
Die Liste der Befehle finden Sie in der Hilfe /? optionen, aber es gibt ein paar Optionen, die Sie finden sich mit mehr als der Rest.,ies die Konfiguration
Insbesondere die Optionen start | stop | pause | restart | cont sind sehr einfach und leicht zu verstehen., Im folgenden Befehl können Sie beispielsweise „start“ durch einen dieser anderen Befehle ersetzen.
psservice \\computername start <servicename>
Mit den anderen Optionen können Sie weitere Informationen zu einem Dienst abfragen oder die Konfiguration ändern.
Hinweis: die eingebaute sc.exe-Dienstprogramm hat eine Tonne nützlicher Funktionen, die mit diesem Dienstprogramm überlappen. Der Hauptunterschied besteht darin, dass PsService etwas benutzerfreundlicher ist.,
PsShutdown
Mit diesem Dienstprogramm können Sie einen Computer herunterfahren, abmelden oder sogar in den Ruhemodus versetzen. Das Problem ist, dass es nicht besser ist als das integrierte Herunterfahren.exe-Dienstprogramm und wurde tatsächlich für Windows XP entwickelt, daher wird empfohlen, in den meisten Fällen stattdessen das integrierte Dienstprogramm zu verwenden.
Die einzige Option, die PsShutdown bietet, die Sie sonst nicht erhalten können, ist der Schalter (- d), um den Computer in den Ruhemodus zu versetzen, was praktisch sein kann.,
psshutdown \\computername-d
Sie können den Computer auch mit der Option-h in den Ruhezustand versetzen.
PsSuspend
Dieses Dienstprogramm ist PsKill sehr ähnlich, aber es tut etwas, was das integrierte Taskkill-Dienstprogramm einfach nicht kann — Sie können Prozesse anhalten, anstatt sie zu beenden, was sehr praktisch sein kann, wenn Sie vorübergehend die Ausführung eines CPU-intensiven Prozesses stoppen möchten, während Sie eine Sysadmin-Aufgabe abschließen.,
Das Aussetzen eines Prozesses ist extrem einfach:
pssuspend \\computer <PID oder Name>
Und die Wiederaufnahme dieses Prozesses ist genauso einfach — Sie müssen nur hinzufügen der-r-Schalter.,
pssuspend \\computer-r <PID oder Name>
Wenn die Dienstprogramme aufgrund von Remote Registry
Für einige dieser Dienstprogramme, einschließlich PsInfo, PsList, PsLogList und PsLoggedOn, muss der Remote-Registrierungsdienst auf dem Remotecomputer aktiviert sein und ist in modernen Windows-Versionen standardmäßig nicht aktiviert.
Die gute Nachricht ist, dass dieses Problem leicht zu beheben ist und Sie die Remote-Registrierung nicht aktiviert lassen müssen., Führen Sie diesen Befehl einfach mit PsService aus, um den Dienst zu starten:
psservice \\computername Starten Sie RemoteRegistry
Wenn Sie mit PsInfo oder PsList fertig sind, können Sie den Dienst mit diesem Befehl erneut beenden:
psservice \\computername stop RemoteRegistry
Einfache Lösungen sind die besten, nicht wahr?
Nächste Lektion
Stellen Sie sich morgen, wenn wir Abdeckung die Datei-und Festplatten-Dienstprogramme, und noch ein paar andere interessante Dinge.