Wenn es ein Befehlszeilenprogramm gäbe, das in Bezug auf die Nützlichkeit mit Robocopy konkurrieren könnte, dann ist es PsExec. Das Sysinternals PsExec Dienstprogramm ist so allgegenwärtig, wie sie in einem IT-Admin-Arsenal kommen. Mit diesem Tool können Administratoren Befehle aus der Ferne so ausführen, als wären sie auf dem lokalen Computer.

Um das PsExec-Werkzeug in der Tiefe abzudecken, war es passend, dieses begehrte Werkzeug in einem ATA Ultimate Guide abzudecken. In diesem Handbuch erfahren Sie, was psexec ist, was es kann viele Beispiele für die Verwendung dieses nützlichen Tools.,

Inhaltsverzeichnis

Was ist PsExec.exe-Datei?

Wenn Sie neu darin sind oder möglicherweise keine Befehle und Tools auf Remotecomputern ausführen müssen, wissen Sie möglicherweise nicht, was psexec ist.

PsExec oder psexec.exe ist ein Befehlszeilenprogramm für Windows. Es ermöglicht Administratoren, Programme auf lokalen und häufig entfernten Computern auszuführen. Es ist ein kostenloses Dienstprogramm Teil der Sysinternals pstools Suite von Mark Russinovich vor vielen Jahren gebaut.,

Es wurde entwickelt, um Tools wie Telnet zu ersetzen, die Sie gezwungen haben, Ports zu öffnen und Sicherheitslücken zu schließen. Heutzutage haben wir andere Optionen wie PowerShell Remoting und das Invoke-Command PowerShell Cmdlet, aber PsExec hat immer noch seinen Platz.

PsExec ermöglicht volle Interaktivität für Konsolenanwendungen, ohne Software installieren zu müssen. Wie Sie in diesem ultimativen Handbuch sehen werden, kann PsExec interaktive Eingabeaufforderungen starten, als lokales System auf Remotecomputern ausführen, Befehle auf mehreren Computern gleichzeitig ausführen und vieles mehr.,

Es unterstützt alle Versionen von Windows seit Windows XP. Das bedeutet, dass ja, PsExec unter Windows 10 auch eine Sache ist. Es ist ein einfaches Tool zum Ausführen, das auf fast allem funktioniert, aber verwechseln Sie seine Einfachheit nicht mit seinen Fähigkeiten!

Voraussetzungen

Sie müssen lediglich ein modernes Windows-Betriebssystem ausführen, damit PsExec auf Ihrem lokalen Computer ausgeführt werden kann. Sie möchten jedoch psexec gegen Remotecomputer ausführen. Dazu müssen Sie sicherstellen, dass einige Elemente vorhanden sind.

Wenn Sie diese Elemente jetzt nicht vorhanden oder unsicher haben, keine Sorge., Im nächsten Abschnitt behandeln wir, wie Sie PowerShell schreiben, um Ihre Remote-Computer zu testen.

  • Ein modernes Windows-computer (local)
  • Datei-und Druckerfreigabe öffnen (remote-computer, der TCP-port 445)
  • Die administrative Freigabe “ admin$ vorhanden (remote-Rechner)
  • Sie wissen, ein lokales Konto Berechtigungsnachweis (remote-Rechner)

schreiben, PsExec ist bei v2.2 und die version, die Sie lernen werden darüber in diesem Artikel.,

PsExec installieren (mit Remote-Computer-Setup)

Technisch gesehen installieren Sie PsExec nicht, da es nur ein Befehlszeilenprogramm ist, aber nahe genug. Da keine Installation erforderlich ist, müssen Sie es einfach herunterladen und aus der PsTools-Zip-Datei extrahieren. PsExec ist nicht als eigenständiges Dienstprogramm verfügbar und Teil der PsTools-Toolsuite.

PsExec herunterladen

Sie können die ZIP-Datei entweder manuell extrahieren oder hier ist ein praktisches PowerShell-Snippet zum Herunterladen und Extrahieren von PsExec aus der pstools-ZIP-Datei. Beachten Sie, dass dadurch alle anderen PsTools-Tools entfernt werden., Viele sind immer noch praktisch, aber wir werden diese in diesem Artikel nicht behandeln.

Konfiguration des Remotecomputers

Sobald Sie PsExec heruntergeladen haben, müssen Sie sicherstellen, dass jeder Remotecomputer, auf dem Sie ihn ausführen möchten, geöffnet ist. PsExec hat einfache Anforderungen; Datei – und Druckerfreigabe aktiviert und die admin$ administrative Freigabe verfügbar.

Sie können zu allen Remotecomputern gehen, das Windows-Firewall-Applet öffnen, zu Erlaubten Apps gehen und die Datei-und Druckerfreigabe auf allen Computern aktivieren, wie Sie unten sehen.,

Beachten Sie, dass die Datei-und Druckerfreigabe ein bekanntes Sicherheitsrisiko darstellt, sodass nur das private Firewall-Profil aktiviert ist.

Datei-und Druckfreigabe in der Windows-Firewall zulassen

Oder Sie können jeden Computer besuchen und das netsh-Dienstprogramm ausführen, um es zu öffnen über:

> netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes

Oder Sie können das Cmdlet Set-NetFirewallRule von PowerShell verwenden.,

PS51> Set-NetFirewallRule -DisplayGroup "File And Printer Sharing" -Enabled True -Profile Private

Wenn Sie lieber nicht jeden Computer besuchen möchten, PowerShell-Remoting verfügbar ist und Sie sich in einer Active Directory-Domäne befinden, können Sie die Firewall auch auf vielen Computern gleichzeitig mit dem Cmdlet Invoke-Command öffnen.

Mit PsExec

Bevor Sie laufen können, müssen Sie laufen. Wenn Sie PsExec noch nie benutzt haben, sind Sie für eine Behandlung! Lesen Sie zuerst diesen Abschnitt, um Ihre Füße nass zu machen, um die Grundlagen zu erlernen, bevor Sie später in diesem Artikel in das tiefe Ende springen.,

Wenn Sie PsExec zum ersten Mal auf einem neuen System ausführen, wird sofort die PsExec-Lizenzvereinbarung angezeigt. Sie müssen auf die Schaltfläche Zustimmen klicken, um sie zu verwenden.

PsExec license agreement (EULA)

Wenn Sie verhindern möchten, dass die Lizenzvereinbarung angezeigt wird, können Sie sie stillschweigend mit der /accepteula schalter wie unten gezeigt.,

> psexec /accepteula

Sie werden später im Artikel ein paar Tricks lernen, um dieses EULA-Popup auf lokalen und Remote-Computern zum Schweigen zu bringen.

Hilfe finden

Wenn Sie PsExec erkunden, sollten Sie überhaupt keinen Schalter verwenden. Wenn Sie psexec einfach ohne Schalter ausführen, werden alle Optionen und eine kurze Erklärung der einzelnen Funktionen zurückgegeben. Alle Optionen sind in der folgenden Tabelle für Ihre Bequemlichkeit.,

Schalter Erklärung
-a Separate Prozessoren, auf denen die Anwendung mit Kommas ausgeführt werden kann, wobei 1 die CPU mit der niedrigsten Nummer ist. Um die Anwendung beispielsweise auf CPU 2 und CPU 4 auszuführen, geben Sie Folgendes ein: „- a 2,4 “
– c Kopieren Sie das angegebene Programm zur Ausführung in das Remote-System. Wenn Sie diese Option weglassen, muss sich die Anwendung im Systempfad auf dem Remote-System befinden.,
– d Warten Sie nicht, bis der Prozess beendet ist (nicht interaktiv).
– e Lädt das Profil des angegebenen Kontos nicht.
– f Kopieren Sie das angegebene Programm, auch wenn die Datei bereits auf dem Remote-System vorhanden ist.
-i Führen Sie das Programm so, dass es mit dem desktop interagiert der angegebenen Sitzung auf dem remote-system. Wenn keine Sitzung angegeben ist, wird der Prozess in der Konsolensitzung ausgeführt. Einige haben die besten Ergebnisse immer mit dem Schalter-s mit-i gemeldet, da Windows unverständlich ist.,
– h Wenn das Zielsystem Vista oder höher ist, hat das proc
– l Führen Sie den Prozess als eingeschränkten Benutzer aus (entfernt die Administratoren-Gruppe und erlaubt nur Berechtigungen, die der Benutzergruppe zugewiesen sind). Unter Windows Vista läuft der Prozess mit geringer Integrität.
– n Gibt Timeout in Sekunden Verbindung mit Remote-Computern.
– p Gibt das optionale Kennwort für den Benutzernamen an. Wenn Sie dies weglassen, werden Sie aufgefordert, ein verstecktes Passwort einzugeben.,
– r Gibt den Namen des Remote-Dienstes an, der erstellt oder interagiert werden soll. mit.
– s Führen Sie den Remote-Prozess im Systemkonto aus.
– u Gibt den optionalen Benutzernamen für die Anmeldung am Computer an.
– v Kopieren Sie die angegebene Datei nur, wenn sie eine höhere Versionsnummer hat oder neuer ist als die auf dem Remote-System.
– w Legen Sie das Arbeitsverzeichnis des Prozesses fest (relativ
– x Zeigen Sie die Benutzeroberfläche auf dem Winlogon secure Desktop an (nur lokales System).,
– arm Gibt an, dass der Remotecomputer ARM-Architektur hat.
– priority Gibt-low, – belownormal, -abovenormal,-high oder
– realtime Führen Sie den Prozess mit einer anderen Priorität aus. Verwenden Sie
– Hintergrund Ausführen bei geringer Speicher-und E / A-Priorität unter Vista.
computer Richten Sie PsExec an, um die Anwendung auf dem angegebenen Computer oder Computer auszuführen., Wenn Sie den Computernamen weglassen, führt PsExec die Anwendung auf dem lokalen System aus, und wenn Sie einen Platzhalter ( \ * ) angeben, führt PsExec
@file PsExec führt den Befehl auf jedem der in der Datei aufgeführten Computer aus.
-accepteula – Dieses flag unterdrückt die Anzeige der Lizenz-dialog.
– nobanner Das Startbanner und die Copyright-Meldung werden nicht angezeigt.,

Ausführen eines einfachen Remote-Befehls

PsExec benötigt zwei Parameter: einen Computernamen und einen Befehl zum Ausführen. Wenn Sie einen Befehl zum Ausführen auf dem Remotecomputer haben, für den keine Argumente wie erforderlich sind, können Sie ihn einfach nach dem Computernamen hinzufügen.

Wenn Sie keinen vollständigen Dateipfad angeben, muss sich der auszuführende Befehl im Benutzer-oder Systempfad befinden., Wenn Sie ein Programm mit Leerzeichen im Namen haben, können Sie das Programm jederzeit in Leerzeichen wie „Meine Anwendung.exe“.

> psexec \\REMOTECOMPUTER hostname

Sie können unten sehen, dass Sie zum Ausführen des Befehls auf dem CONTOSODC1-Computer den UNC-Pfad definieren, gefolgt vom Befehl. PsExec stellt dann eine sichere Verbindung zum Remotecomputer her, führt den Befehl aus und gibt die Ausgabe zurück. In diesem Fall gab der Befehl den Hostnamen des Computers CONTOSODC1 zurück.,

Wenn der Befehl nicht oder eine andere Konsole ist, beendet PsExec die Remote-Sitzung schnell und gibt den Exit-Code zurück, den der Remote-Prozess zurückgegeben hat.

Hinweis: Der von psexec zurückgegebene Fehler-oder Exitcode stammt nicht von PsExec selbst. Stattdessen kommt es von dem Befehl, den psexec auf dem Remote-Computer ausgeführt hat.,

Successful psexec remote command execution

How PsExec Works on Remote Computers

PsExec goes through a few steps to execute programs on remote computers.

  1. Create a PSEXESVC.exe file in C:\Windows.
  2. Create and start a Windows service on the remote computer called PsExec.
  3. Execute the program under a parent process of psexesvc.exe.
  4. When complete, the PsExec Windows service will be stopped and removed.,

Wenn der Prozess nicht 100% korrekt funktioniert, müssen Sie den Dienst möglicherweise manuell mit dem Befehl sc entfernen.

Ausführen eines einfachen lokalen Befehls

Obwohl PsExec am besten für die Ausführung von Befehlen auf Remotecomputern bekannt ist, können Sie Befehle auch lokal ausführen.

Sie können Befehle lokal ausführen, indem Sie einfach keinen Computernamen wie unten angeben.

> psexec <local command or EXE file>

Warum sollten Sie das tun? Ein Grund wäre, Befehle als lokales Systemkonto auszuführen., Sie können den Schalter -s verwenden, um einen beliebigen Befehl lokal oder remote als SYSTEM auszuführen, da Sie später mehr darüber erfahren.

Schauen Sie sich das kurze Video unten an. Beachten Sie, dass Sie lediglich den Schalter -s zusammen mit dem ausführbaren Befehlsinterpreter für psexec angeben müssen, um eine neue Befehlssitzung als NT AUTHORITY\SYSTEM zu starten.,

Psexec als SYSTEM ausführen

PsExec-Befehle (fortgeschrittener werden)

Sobald Sie die Grundlagen festgelegt haben, können Sie mit dem Erlernen fortgeschrittener Techniken in psexec beginnen. PsExec kann viel mehr als nur einen einzigen Befehl auf einem einzigen Computer ausführen.

Ausführen von Befehlen auf mehreren Computern

PsExec beschränkt sich nicht nur darauf, Befehle gleichzeitig auf einem Remote-Computer auszuführen., Dieses Tool unterstützt auch das Kopieren von Programmen und das gleichzeitige Ausführen von Befehlen auf mehreren Computern.

Sie können PsExec auf mehreren Computern gleichzeitig auf verschiedene Arten ausführen.

Kommagetrennte Computernamen

Normalerweise geben Sie beim Ausführen eines Befehls auf einem einzelnen Remotecomputer einen einzelnen Computernamen an, z. B. \\REMOTECOMPUTER. Sie können auch mehrere Computer wie unten durch Kommas getrennt angeben.,

> psexec \\REMOTECOMPUTER1,REMOTECOMPUTER2,REMOTECOMPUTER3

Alle Computer in einer Active Directory-Domäne

Wenn Sie PsExec auf einem mit einer Active Directory-Domäne verbundenen Computer ausführen und eine Befehlsausführung auf allen Computern in dieser Domäne ausführen möchten, verwenden Sie einen Platzhalter.

PsExec durchsucht Ihre gesamte Active Directory-Domäne und versucht, auf jedem Computer einen Befehl auszuführen. Nachfolgend finden Sie eine Beispielsyntax, mit der PsExec versucht, eine Verbindung zu jedem Computer in der Domäne herzustellen, zu der der ausführende Computer gehört, und den Befehl auszuführen.,

Wenn Sie ein Sternchen verwenden, um alle Computer in einer Domäne zu finden, während der lokale Computer Teil einer Arbeitsgruppe ist, erhalten Sie den Fehler A system error has occurred: 6118.

Die Verwendung eines Platzhalters zwingt PsExec, im Wesentlichen den Befehl net view /all auszuführen, um zuerst alle Computer in der Domäne zu finden. Dies ist eine veraltete Methode, um Computerinformationen aufgrund ihrer Abhängigkeit von NetBIOS zu finden.

Aus einer Datei lesen

Eine andere Möglichkeit, Befehle auf mehreren Computern gleichzeitig auszuführen, besteht darin, eine Textdatei zu verwenden., Mit der Syntax @<filename.txt> liest PsExec jede Zeile in der Textdatei, als wäre es ein Computername. Es wird dann jeden Computer einzeln verarbeiten.

Unten sehen Sie ein Beispiel für die Verwendung von PowerShell zum Erstellen einer Textdatei mit zeilentrennten Computernamen und deren Verwendung als Eingabe für psexec.

PS51> (Get-AdComputer -Filter *).Name | Out-File computers.txtPS51> psexec @computers.txt hostname

Lokale Programme auf den Remotecomputer kopieren

Mit dem Schalter -c kopiert psexec vor der Ausführung jedes lokale Programm auf den Remotecomputer.,

Vielleicht haben Sie eine EXE auf Ihrem lokalen Computer in einem C:\Tools ordner und möchte es auf einem Remote-Computer ausführen. Sie können dies mit der folgenden Syntax tun:

> psexec \\REMOTECOMPUTER -c C:\Tools\program.exe

Wenn Sie den Schalter -c verwenden und keine ausführbare Datei angeben, kopiert PsExec die Datei weiterhin, aber Sie erhalten eine Fehlermeldung, dass das System die angegebene Datei nicht finden kann. Dies geschieht, weil PsExec immer versucht, die kopierte Datei auszuführen.,

Wenn Sie vor der Verwendung von PsExec Dateien auf Remotecomputer kopieren müssen, verwenden Sie stattdessen das PowerShell-Cmdlet Copy-Item.

Ausführen von Remote-Prozessen unter alternativen Anmeldeinformationen

Ein weiterer beliebter Anwendungsfall von PsExec besteht darin, Befehle unter alternativen Konten auszuführen. Standardmäßig versucht PsExec, unter Ihrem aktuell angemeldeten Konto eine Verbindung zum Remotecomputer herzustellen. Genauer gesagt, Es wird sich als Ihr Konto auf dem Remote-Computer ausgeben.,

Mit dem Schalter -u und optional -p können Sie mit einem alternativen Benutzerkonto eine Verbindung zum Remote-Computer herstellen. PsExec verschlüsselt dann sowohl den Benutzernamen als auch das Kennwort und sendet sie zur Authentifizierung an den Remotecomputer.

Wenn Sie sich beispielsweise in einer Arbeitsgruppe befinden, müssen Sie immer den Benutzernamen angeben, unter dem sich der Remotecomputer authentifizieren soll.

> psexec \\REMOTECOMPUTER hostname -u localadmin -p $$word

Wenn beide Computer Mitglied von Active Directory sind, stellen Sie sicher, dass Sie dem Benutzerkonto den Domänennamen voranstellen.,

> psexec \\REMOTECOMPUTER hostname -u contoso.local\domainadmin -p $$word

Wenn Sie den Schalter -u nicht verwenden, gibt sich psexec als Ihr angemeldetes Konto auf dem Remotecomputer aus. Es hat keinen Zugriff auf Netzwerkressourcen.

Prozesse als LOKALES Systemkonto ausführen

Eine der nützlichsten Funktionen zum Ausführen von PsExec unter einem alternativen Konto ist die Verwendung des Schalters -s. Mit diesem Schalter können PsExec (und Ihre remote ausgeführte Anwendung) unter dem LOKALEN Systemkonto des entfernten (oder lokalen) Computers ausgeführt werden.,

Hinweis unten habe ich keinen Remote-Computernamen angegeben. PsExec wird genauso gerne auch auf dem lokalen Computer ausgeführt. In diesem Fall verwende ich die Option -s, um PsExec anzuweisen, eine lokale Eingabeaufforderung als LOKALES Systemkonto zu starten.,

Ausführen von psexec als LOKALES SYSTEM

Um eine Eingabeaufforderung als LOKALES SYSTEM auf einem Remote-Computer auszuführen, fügen Sie den Computernamen wie folgt zur Referenz hinzu:

> psexec -s \\REMOTECOMPUTER cmd

GUI-Anwendungen remote starten

Ein weiterer nützlicher PsExec-Switch ist -i. Standardmäßig erlaubt PsExec dem remote ausgeführten Befehl nicht, Fenster auf dem Remote-Computer aufzurufen., Dies ist hilfreich, da Sie den Bildschirm sowieso nicht sehen, wenn Sie Befehle remote ausführen.

Aber vielleicht müssen Sie Programme für Ihre Benutzer aufrufen. Sie persönlich werden die Anwendung nicht verwenden, aber ein Endbenutzer wird. Verwenden Sie in diesem Fall den Schalter -i.

Möglicherweise müssen Sie ein Notizblock-Fenster auf einem Remote-Computer aufrufen. Kein problem. Editor ausführen.exe mit dem Schalter -i und PsExec öffnet den Editor.,

> psexec -i \\REMOTECOMPUTER notepad
psexec im interaktiven Modus ausführen

Verwenden Sie unbedingt auch den Schalter -d trennen, wenn das interaktive Fenster jedoch aufgerufen wird. Standardmäßig wartet PsExec, bis der ausgeführte Prozess abgeschlossen ist. Wenn der Remote-Prozess (in diesem Fall Notepad) weiterhin ausgeführt wird, gibt PsExec niemals die Kontrolle zurück.,

Wenn Sie den Schalter mit -i verwenden, wird PsExec angewiesen, nicht auf den Abschluss des Remote-Prozesses zu warten. Stattdessen wird die Verbindung getrennt und die Steuerung an Sie zurückgegeben, sobald der Remote-Prozess ausgeführt wird.

Ausgabe umleiten

Psexec verwendet jede Ausgabe, die vom Remote-Prozess an Ihre lokale Sitzung gesendet wird. Normalerweise wird diese Ausgabe direkt an Ihre lokale Konsole gesendet. Wenn Sie es jedoch umleiten möchten, können Sie dies mit typischen Umleitungsoperatoren tun.,

Wenn Sie beispielsweise einen Befehl ausführen und alle Ausgaben zum Schweigen bringen möchten, können Sie die Ausgabe und Fehler mit ^> nul ^2^&1auf null umleiten.

Hinweis Die Sonderzeichen sind mit einem Hut maskiert. ( ^).

PsExec Anwendungsfälle

Sobald Sie die Verwendung von psexec gelernt haben, werden Sie unweigerlich auf verschiedene spezifische Anwendungsfälle stoßen. In diesem Abschnitt erfahren Sie einige Reale Anwendungsfälle und-Beispiele mit psexec.,

Starten einer Remote – Eingabeaufforderung (psexec cmd)

Einer der häufigsten Anwendungsfälle ist das Starten von PsExec als interaktive Eingabeaufforderung. PsExec führt nicht nur Befehle remote aus. Es kann auch die Befehlsausgabe an Ihre Konsole zurücksenden. Aus diesem Grund kann es ein großartiges Telnet (wenn jemand das noch benutzt) oder vielleicht PowerShell Enter-PSSession ersetzen.

Um einen Remotebefehl zu starten, geben Sie den Namen des Remotecomputers an und führen Sie die cmd-Anwendung aus. Cmd ist der Windows-Befehlsinterpreter., Da PsExec die interaktive Verwendung unterstützt, wird gerne ein blinkender Cursor und eine Eingabeaufforderung zurückgegeben.

> psexec \\REMOTEPC cmd
Öffnen Sie eine Eingabeaufforderung auf einem remote-computer

An diesem Punkt, die Welt ist Ihre Auster. Sie können Befehle auf Ihrem lokalen Computer über diese „verschachtelte“ Eingabeaufforderung ausführen und diese werden auf dem Remotecomputer ausgeführt.

Um die Eingabeaufforderung zu verlassen, geben Sie exitein., PsExec stoppt den Prozess auf dem Remotecomputer und gibt den Fokus auf den lokalen Computer zurück.

Schließen Sie eine interaktive cmd-Sitzung NICHT mit Strg-C. Verwenden Sie immer exit. Wenn Sie Strg-C verwenden, wird die psexec-Sitzung weiterhin auf dem Remotecomputer ausgeführt.

Software remote installieren

Sie können PsExec als Software-Bereitstellungstool für Arme verwenden. Möglicherweise haben Sie ein MSI-Installationsprogramm, das Sie auf einem oder mehreren Remotecomputern namens setup ausführen müssen.msi., Dieses Installationsprogramm muss auf die Remotecomputer kopiert und dann mit dem msiexec ausgeführt werden.exe-Dienstprogramm mit ein paar Schaltern.

Unten finden Sie ein Beispiel, wie Sie PsExec für die Remote-Bereitstellung von Software verwenden können. Dieses Beispiel kopiert Setup.msi auf dem Remote-Computer startet dann das MSI-Installationsprogramm interaktiv auf als Systemkonto.

> psexec.exe \\REMOTECOMPUTER –i –s "msiexec.exe /i setup.msi" -c setup.msi

Akzeptieren der EULA ohne den Schalter / accepteula

Wie bereits erwähnt, müssen Sie beim ersten Ausführen von PsExec eine EULA akzeptieren., Sie können den Schalter /accepteula verwenden, ihn aber auch in der Registrierung „inszenieren“.

Beim ersten Start erstellt PsExec einen Registrierungsschlüssel unter HKCU\Software\Sysinternals\PsExec. Anstelle dieses Registrierungsschlüssels wird ein Registrierungswert namens EulaAccepted mit einem DWORD-Wert von 1 erstellt.

Wenn Sie Ihre bevorzugte Methode zum Ändern der Registrierung auf Remotecomputern verwenden, müssen Sie diesen Schlüssel/Wert lediglich auf Computern erstellen, auf denen Sie PsExec ausführen möchten. Einmal erstellt, keine Notwendigkeit zu laufen /accepteula!,

PowerShell und PsExec heiraten

Vor PowerShell hatten wir nur PsExec. Jetzt haben wir Optionen. PowerShell kann PsExec in vielen Situationen ersetzen, aber in anderen ergänzen.

Erstellen von Computernamen mit PowerShell

Anstatt \\* um alle Computer in der Domäne zu finden, können Sie stattdessen PowerShell verwenden. Mit PowerShell können Sie nicht nur bestimmte Computer auswählen,sondern auch nicht das firewall-anfällige Verhalten net view /all.,

Mit PowerShell können Sie eine Zeichenfolge erstellen, die alle durch ein Komma getrennten Computernamen enthält. Sie können diese Zeichenfolge dann an PsExec übergeben, das jeden fröhlich verarbeitet, wie Sie ihn manuell eingegeben haben.

Nachfolgend sehen Sie ein Beispiel für die Verwendung des Cmdlets Get-AdComputer des ActiveDirectory PowerShell-Moduls.

PS51> psexec "\\$((Get-AdComputer -Filter *).Name -join ',')" hostname

PowerShell Remoting remote aktivieren

Wenn Sie Remotecomputer haben, mit denen Sie lieber PowerShell Remoting anstelle von PsExec verwenden möchten, können Sie diese mit PsExec aktivieren.,

Durch Ausführen von Enable-PSRemoting oder dem winrm.cmd Batch-Datei auf Remote-Computern können Sie PowerShell Remoting schnell auf vielen Computern gleichzeitig aktivieren.

Unten sehen Sie ein Beispiel für den Aufruf von winrm.cmd Batch-Datei auf einem Remote-Computer als Systemkonto ausgeführt wird. Da die Ausgabe dieses Befehls nicht benötigt wird, wird sie mit 2>&1> $nullzum Schweigen gebracht.

$computerName = 'REMOTECOMPUTER'psexec "\\$Computername" -s c:\windows\system32\winrm.cmd quickconfig -quiet 2&>&1> $null 

PsExec Fehlermeldungen

Es ist erwähnenswert, dass die meisten von PsExec zurückgegebenen Fehlercodes aus dem Remote-Prozess stammen.nicht von PsExec., Es ist jedoch hilfreich, diese Fehlercodes zu verstehen und zu verstehen, was sie bedeuten könnten.

Wenn Sie einen Verweis auf alle Windows-Fehlercodes möchten, empfehle ich, diese vollständige Liste der Windows-Fehlercodes zu überprüfen.

Unten finden Sie eine Liste der häufigsten Fehlercodes, die von PsExec zurückgegeben werden.

Fehlercode Erklärung
-2146232576 Wird normalerweise von Windows Update zurückgegeben, wenn ein Fehler auftritt.,
0 – Befehl erfolgreich ausgeführt
1 Falsche Funktion. Ein Problem ist passiert. Es geht darum.
1603 Schwerwiegender Fehler bei der installation. Dies wird normalerweise von msiexec zurückgegeben.
2 Das System kann die angegebene Datei nicht finden
4 Das System kann die Datei nicht öffnen.
5 Der Zugriff wird verweigert.
6 Das handle ist ungültig.,
6118 Die Liste der Server in dieser Arbeitsgruppe ist derzeit nicht verfügbar

Ihr Feedback