PsExec est un outil portable de Microsoft qui vous permet d'exécuter des processus à distance en utilisant les informations d'identification de n'importe quel utilisateur. C'est un peu comme un programme d'accès à distance mais au lieu de contrôler l'ordinateur avec une souris, les commandes sont envoyées via l'invite de commande.
Vous pouvez utiliser PsExec non seulement pour gérer les processus sur l'ordinateur distant, mais également pour rediriger la sortie de la console d'une application vers votre ordinateur local, ce qui donne l'impression que le processus s'exécute localement.
Aucun logiciel n'est nécessaire sur l'ordinateur distant pour faire fonctionner PsExec, mais il y a quelques points à garder à l'esprit si l'outil ne fonctionne pas correctement la première fois que vous l'essayez.
Comment configurer PsExec
Si PsExec est portable et n'a pas besoin d'être copié sur l'ordinateur distant, de quel type de configuration a-t-il vraiment besoin ?
L'outil ne fonctionne que sous certaines conditions. À savoir, lorsque le partage de fichiers et d'imprimantes est activé à la fois sur l'ordinateur local et distant, et lorsque la machine distante a le partage $admin correctement configuré pour fournir l'accès à son dossier \Windows\.
Vous pouvez vérifier que le partage de fichiers et d'imprimantes est activé en consultant les paramètres du pare-feu Windows:
- Entrez firewall.cpl dans la boîte de dialogue Exécuter. Une façon d'ouvrir Run consiste à utiliser le raccourci clavier WIN+R.
-
Sélectionnez Autoriser une application ou une fonctionnalité via le pare-feu Windows sur le côté gauche de la fenêtre.
Cela peut se lire comme Autoriser une application ou une fonctionnalité via le pare-feu Windows Defender selon la configuration de votre ordinateur, mais c'est la même option.
-
Assurez-vous que Partage de fichiers et d'imprimantes est coché dans la case Privé à sa droite. Si ce n'est pas le cas, cochez cette case et sélectionnez OK.
Si vous ne pouvez pas modifier les paramètres du pare-feu car ils sont grisés, sélectionnez Modifier les paramètres en haut de la fenêtre.
- Vous pouvez maintenant quitter tous les paramètres ouverts du pare-feu Windows.
Avec le pare-feu Windows correctement configuré pour PsExec, vous ne devriez avoir aucun problème pour accéder au partage $admin sur la machine distante tant que les conditions suivantes sont remplies:
- Les deux ordinateurs appartiennent au même groupe de travail
- Vous connaissez le mot de passe d'un compte administrateur sur l'ordinateur distant
Consultez ce tutoriel sur Wintips.org si vous avez besoin d'aide pour faire ces choses ou si vous les avez faites correctement mais plus tard, après avoir essayé d'utiliser PsExec comme décrit ci-dessous, vous obtenez une erreur "accès refusé".
Comment utiliser PsExec
Avant d'utiliser PsExec pour exécuter des commandes à distance, vous devez télécharger le programme et positionner l'invite de commande de manière à pouvoir utiliser l'outil correctement.
Télécharger et ouvrir
- Téléchargez PsExec sur l'ordinateur qui exécutera les commandes à distance. Il est disponible gratuitement auprès de Microsoft sur Sysinternals dans le cadre de PsTools.
-
Extraire les fichiers du téléchargement PsTools.zip. Vous pouvez le faire en cliquant avec le bouton droit sur le fichier ZIP et en sélectionnant Extract All. Tout extracteur de fichiers tiers fonctionnera également.
-
Ouvrez le dossier où se trouvent les fichiers extraits, et depuis la barre de navigation en haut du dossier, effacez ce qui s'y trouve et entrez cmd.
Une autre façon de faire cela, du moins dans certaines versions de Windows, est de Maj+Clic droit un espace vide dans le dossier PsTools et de choisir Ouvrir fenêtre de commande ici.
Cela ouvrira l'invite de commande dans ce dossier afin que vous puissiez exécuter des commandes via PsExec.
- Avec l'invite de commande maintenant ouverte dans le dossier contenant PsExec.exe, vous pouvez commencer à saisir des commandes sur la machine distante.
Comprendre la syntaxe
Comme n'importe quel outil de ligne de commande, PsExec ne fonctionne que lorsque sa syntaxe est suivie à la lettre. Une fois que vous avez compris comment taper des commandes de la manière dont l'outil les comprend, vous pouvez contrôler le programme à partir de n'importe quelle invite de commande.
C'est ainsi que les commandes PsExec doivent être saisies:
psexec [ ordinateur [, ordinateur2 [, …] | @fichier\][- u nom d'utilisateur [- p mot de passe][- n s][- r servicename][- h][- l][- s |- e][- x][- i[session][-c exécutable [-f |-v ][-w répertoire][- d][- ][- a n, n
Cela peut sembler complexe et déroutant, mais ne vous inquiétez pas ! Il y a quelques exemples au bas de cette page que vous pouvez utiliser pour vous entraîner.
La syntaxe ci-dessus est utilisée pour exécuter l'un des arguments de commande PsExec suivants:
Options de la commande PsExec | |
---|---|
Paramètre | Explication |
- a | Processeurs séparés 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 le CPU 2 et le CPU 4, vous devez saisir: - a 2, 4 |
- c | Copiez l'exécutable spécifié sur le système distant pour l'exécution. Si omis, l'application doit se trouver dans le chemin 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 | Copier le programme spécifié même si le fichier existe déjà sur le système distant. |
- i | Exécutez le programme pour 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. |
- h | Si le système cible est Windows Vista ou supérieur, exécutez le processus avec le jeton élevé du compte, si 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 (en secondes) de connexion aux ordinateurs distants. |
- p | Spécifie un mot de passe facultatif pour le nom d'utilisateur. S'il est omis, vous serez invité à saisir un mot de passe masqué. |
- r | Spécifie le nom du service distant à créer ou avec lequel interagir. |
- s | Exécute le processus distant dans le compte système. |
- u | Spécifie le nom d'utilisateur facultatif pour la connexion à l'ordinateur distant. |
- v | Copie 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éfinit le répertoire de travail du processus (par rapport à l'ordinateur distant). |
- x | Affiche l'interface utilisateur sur le bureau sécurisé Winlogon (système local uniquement). |
- priorité | Spécifie -low, -belownormal, -abovenormal, -high ou -re altime pour exécuter le processus à une priorité différente. Utilisez -background pour s'exécuter avec peu de mémoire et une priorité d'E/S sous Windows Vista. |
ordinateur | Demande à PsExec d'exécuter l'application sur le ou les ordinateurs distants spécifiés. S'il est omis, PsExec exécute l'application sur le système local, et si un caractère générique () est spécifié, PsExec exécute la commande sur tous les ordinateurs du domaine actuel. |
@fichier | PsExec exécutera la commande sur chacun des ordinateurs listés dans le fichier. |
cmd | Nom de l'application à exécuter. |
arguments | Arguments à passer (notez que les chemins de fichiers doivent être des chemins absolus sur le système cible). |
Exemples de commandes PsExec
Voici quelques exemples d'utilisation de PsExec pour exécuter des commandes d'invite de commande à distance, gérer les services Windows et lancer ou installer des programmes.
Ouvrir CMD à distance
psexec \\192.168.86.62 cmd
L'un des moyens les plus simples d'utiliser PsExec pour exécuter des commandes d'invite de commande sur un ordinateur distant consiste à exécuter cmd après l'adresse IP de la machine, 192.168.86.62 dans cet exemple.
Cela lancera une fenêtre d'invite de commande normale dans celle existante et vous permettra de saisir chaque commande comme si vous étiez assis devant l'ordinateur distant. Par exemple, vous pouvez alors entrer ipconfig pour obtenir ces résultats depuis l'autre ordinateur, ou mkdir pour créer un nouveau dossier, dir pour lister le contenu du dossier, etc.
Exécuter une commande à distance
psexec \\mediaserver01 tracert lifewire.com
Une autre façon d'utiliser PsExec est d'entrer des commandes individuelles mais sans démarrer une invite de commande complète. Dans cet exemple, nous exécutons la commande tracert sur lifewire.com, et parce que nous avons spécifié le nom de l'ordinateur distant, mediaserver01, les résultats de la commande sont pertinents pour cette machine, pas pour la machine locale (c'est-à-dire celle que vous utilisez). activé).
Démarrer un service à distance
psexec \\FRONTDESK_PC -u tomd -p 3(tom87 net start spooler
L'exemple de commande PsExec présenté ci-dessus démarre le service Print Spooler, spooler, à distance sur l'ordinateur FRONTDESK_PC à l'aide du mot de passe de l'utilisateur tomd, 3(tom87.
La même commande peut être utilisée pour arrêter un service à distance, mais vous devez taper "stop" au lieu de "start".
Ouvrir l'Éditeur du Registre
psexec \\mikelaptopw10 -i -s C:\Windows\regedit.exe
Ici, nous utilisons PsExec pour lancer l'Éditeur du Registre sur la machine distante, mikelaptopw10, dans le compte système. Parce que -i est utilisé, le programme s'ouvrira en mode interactif, ce qui signifie qu'il se lancera réellement sur l'écran de la machine distante.
Si -i était omis dans la commande ci-dessus, elle s'exécuterait en mode caché pour éviter d'afficher des boîtes de dialogue ou d'autres fenêtres.
Installer le programme sur l'ordinateur distant
psexec \\J3BCD011 -c Z:\files\ccleaner.exe” cmd /S
Dans ce dernier exemple d'utilisation de PsExec, nous utilisons -c pour copier le programme ccleaner.exe sur l'ordinateur distant J3BCD011, puis l'exécutons avec le /S car c'est ce que CCleaner utilise pour activer une installation silencieuse (ne nécessitant aucune intervention de l'utilisateur). L'ajout d'un argument comme celui-ci nécessite cmd.
PsExec peut être dangereux
Il est très important de comprendre à quel point PsExec est puissant et comment il pourrait être utilisé pour compromettre votre ordinateur lorsqu'il est utilisé dans un environnement autrement non sécurisé.
Par exemple, la combinaison de - c, - u et - p, laissez toute personne disposant d'une connexion réseau à votre ordinateur et connaissant les informations d'identification de l'administrateur, exécuter des logiciels malveillants secrets avec les informations d'identification de n'importe qui.
Même ce dernier exemple parfaitement acceptable dans la section précédente prend un tout nouveau but si vous considérez qu'au lieu de CCleaner, quelqu'un peut installer tout ce qu'il souhaite, en arrière-plan, et aucune fenêtre ne s'affiche pour montrer que il se passe quelque chose.
Cela dit, compte tenu des changements de pare-feu requis et des informations d'identification d'administrateur que quelqu'un devrait avoir, il n'y a pas de raison de s'inquiéter tant que le mot de passe administrateur sur l'ordinateur distant est complexe et que d'autres mesures de sécurité de base ont été prises.
Certains programmes antivirus identifient à tort PsExec comme un fichier dangereux, mais ces avertissements peuvent être ignorés si vous savez avec certitude que le programme que vous utilisez provient de la source Microsoft ci-dessus. La raison pour laquelle cela se produit est que les logiciels malveillants sont connus pour utiliser PsExec pour transférer des virus.