PsExec v2.43
Par Mark Russinovich
Date de publication : 11 avril 2023
Télécharger PsTools (5 Mo)
Introduction
Des utilitaires tels que Telnet et des programmes de contrôle à distance tels que PC Anywhere de Symantec vous permettent d'exécuter des programmes sur des systèmes distants, mais ils peuvent être fastidieux à configurer et nécessiter l'installation d'un logiciel client sur les systèmes distants auxquels vous souhaitez accéder. PsExec est un remplacement léger de telnet qui vous permet d'exécuter des processus sur d'autres systèmes, avec une interactivité complète pour les applications de console, sans avoir à installer manuellement le logiciel client. Les utilisations les plus puissantes de PsExec incluent le lancement d'invites de commande interactives sur des systèmes distants et des outils d'activation à distance comme IpConfig qui, autrement, n'ont pas la capacité d'afficher des informations sur les systèmes distants.
Remarque : certains analyseurs antivirus signalent qu'un ou plusieurs des outils sont infectés par un virus "d'administration à distance". Aucun des PsTools ne contient de virus, mais ils ont été utilisés par des virus, c'est pourquoi ils déclenchent des notifications de virus.
Installation
Copiez simplement PsExec sur votre chemin exécutable. Taper "psexec" affiche sa syntaxe d'utilisation.
Utilisation de PsExec
Consultez le numéro de juillet 2004 de Windows IT Pro Magazine pour l'article de Mark qui traite de l'utilisation avancée de PsExec.
Utilisation :
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]
Paramètre | Description |
---|---|
-a | Séparez les processeurs sur lesquels l'application peut s'exécuter avec des virgules où 1 est le processeur numéroté le plus bas. Par exemple, pour exécuter l'application sur CPU 2 et CPU 4, entrez : "-a 2,4" |
-c | Copiez l'exécutable spécifié sur le système distant pour l'exécution. Si vous omettez cette option, l'application doit se trouver dans le chemin du système sur le système distant. |
-d | N'attendez pas que le processus se termine (non interactif). |
-e | Ne charge pas le profil du compte spécifié. |
-f | Copiez le programme spécifié même si le fichier existe déjà sur le système distant. |
-i | Exécutez le programme afin qu'il interagisse avec le bureau de la session spécifiée sur le système distant. Si aucune session n'est spécifiée, le processus s'exécute dans la session de la console. Cet indicateur est requis lorsque vous tentez d'exécuter des applications de console de manière interactive (avec des E/S standard redirigées). |
-h | Si le système cible est Vista ou supérieur, le processus s'exécute avec le jeton élevé du compte, s'il est disponible. |
-l | Exécuter le processus en tant qu'utilisateur limité (supprime le groupe Administrateurs et n'autorise que les privilèges attribués au groupe Utilisateurs). Sous Windows Vista, le processus s'exécute avec une faible intégrité. |
-n | Spécifie le délai d'expiration en secondes de connexion aux ordinateurs distants. |
-p | Spécifie un mot de passe facultatif pour le nom d'utilisateur. Si vous l'omettez, vous serez invité à entrer un mot de passe caché. |
-r | Spécifie le nom du service distant à créer ou avec lequel interagir. |
-s | Exécutez le processus distant dans le compte système. |
-u | Spécifie le nom d'utilisateur facultatif pour la connexion à l'ordinateur distant. |
-v | Copiez le fichier spécifié uniquement s'il a un numéro de version supérieur ou s'il est plus récent que celui du système distant. |
-w | Définissez le répertoire de travail du processus (par rapport à l'ordinateur distant). |
-x | Affichez l'interface utilisateur sur le bureau sécurisé Winlogon (système local uniquement). |
-priorité | Spécifie -low, -belownormal, -abovenormal, -high ou -realtime pour exécuter le processus avec une priorité différente. Utilisez -background pour s'exécuter avec peu de mémoire et une priorité d'E/S sous Vista. |
ordinateur | Dirigez PsExec pour exécuter l'application sur le ou les ordinateurs distants spécifiés. Si vous omettez le nom de l'ordinateur, PsExec exécute l'application sur le système local et si vous spécifiez un caractère générique (\\*), PsExec exécute la commande sur tous les ordinateurs du domaine actuel. |
@fichier | PsExec exécutera la commande sur chacun des ordinateurs répertoriés dans le fichier. |
cmd | Nom de l'application à exécuter. |
arguments | Arguments à transmettre (notez que les chemins de fichiers doivent être des chemins absolus sur le système cible). |
-accepterula | Ce drapeau supprime l'affichage de la boîte de dialogue de licence. |
-nobanner | Cet indicateur supprime la bannière de démarrage et le message de copyright. |
Vous pouvez entourer les applications qui ont des espaces dans leur nom de guillemets, par ex.
psexec \\marklap "c:\\long name app.exe"
L'entrée n'est transmise au système distant que lorsque vous appuyez sur la touche Entrée. Taper Ctrl-C termine le processus distant.
Si vous omettez un nom d'utilisateur, le processus s'exécutera dans le contexte de votre compte sur le système distant, mais n'aura pas accès aux ressources réseau (parce qu'il emprunte l'identité). Spécifiez un nom d'utilisateur valide dans la syntaxe Domain\User
si le processus distant nécessite l'accès aux ressources réseau ou pour s'exécuter dans un compte différent. Notez que le mot de passe et la commande sont chiffrés en transit vers le système distant.
Les codes d'erreur renvoyés par PsExec sont spécifiques aux applications que vous exécutez, pas à PsExec.
Exemples
Cet article que j'ai écrit décrit le fonctionnement de PsExec et donne des conseils sur son utilisation :
La commande suivante lance une invite de commande interactive sur \\marklap
:
psexec -i \\marklap cmd
Cette commande exécute IpConfig sur le système distant avec le commutateur /all
et affiche la sortie résultante localement :
psexec -i \\marklap ipconfig /all
Cette commande copie le programme test.exe
sur le système distant et l'exécute de manière interactive :
psexec -i \\marklap -c test.exe
Spécifiez le chemin complet d'un programme déjà installé sur un système distant s'il ne se trouve pas sur le chemin du système :
psexec -i \\marklap c:\bin\test.exe
Exécutez Regedit de manière interactive dans le compte système pour afficher le contenu des clés SAM et SECURITY ::
psexec -i -d -s c:\windows\regedit.exe
Pour exécuter Internet Explorer avec des privilèges d'utilisateur limité, utilisez cette commande :
psexec -l -d "c:\program files\internet explorer\iexplore.exe"
Télécharger PsTools (5 Mo)
PSTools
PsExec fait partie d'un kit croissant d'outils de ligne de commande Sysinternals qui facilitent l'administration des systèmes locaux et distants nommés PsTools.
Fonctionne sur :
- Client : Windows 8.1 et supérieur.
- Serveur : Windows Server 2012 et supérieur.