10 exemples d’utilisation de PsExec à connaître !

10 exemples d'utilisation de PsExec à connaître !

Vous venez d’installer PsExec, mais vous ne savez pas par où commencer pour l’utiliser ? Pas de panique, dans cet article nous vous proposons 10 exemples d’utilisation de PsExec qui sont à connaître pour bien débuter, et comprendre la syntaxe de cet outil incroyable.

Avant de passer aux exemples, quelques mots sur l’outil en lui-même….

PsExec est un outil gratuit proposé par Microsoft et intégré à la suite d’outils SysInternals. Il permet d’effectuer des tâches d’administration à distance entre machines sous Windows, sans avoir besoin d’installer un agent sur la machine cible.

Cet outil s’appuie sur le partage administratif admin$ de Windows, créé par défaut sur le système, et il nécessite que le pare-feu local autorise le flux 445/TCP. Ensuite, à condition d’avoir les bons droits (un compte administrateur), il est possible d’administrer la machine Windows à distance. Autre avantage de cet outil : il fonctionne avec toutes les versions de Windows : de Windows XP à Windows 11, en passant par les différentes versions de Windows Server.

PsExec

1. Exécuter une commande sur une machine distante

Pour exécuter une simple commande sur une machine distante et obtenir le résultat dans la console, la syntaxe est simple. Voici un exemple où j’exécute la commande « ipconfig » sur le serveur « serveur-tutobox ».

psexec \\serveur-tutobox ipconfig

2. Exécuter une commande sur plusieurs machines

L’outil peut cibler plusieurs machines, qu’il va interroger tour à tour, dans l’ordre. On peut constituer cette liste de machines manuellement ou récupérer une liste via l’Active Directory, un fichier CSV, etc…. Voici comment cibler trois serveurs pour obtenir le résultat de la commande « ipconfig » :

psexec \\serveur-tutobox1,serveur-tutobox2,serveur-tutobox3 ipconfig

La console va retourner le résultat pour les trois serveurs. Dans le cas où un serveur bloque l’exécution de cet outil ou qu’il est injoignable, un message d’erreur sera affiché dans la console.

3. Lancer une console PowerShell avec PsExec

PsExec est capable d’ouvrir une console PowerShell sur l’hôte distant dans laquelle vous pouvez saisir toutes vos commandes, comme si vous étiez en local sur la machine cible.

psexec \\serveur-tutobox powershell.exe

4. Exécuter une commande avec le compte SYSTEM

Le compte « NT AUTHORITY\SYSTEM » peut être utilisé au travers de cet outil, ce qui correspond à un niveau de droit encore plus élevé que Administrateur. On peut s’en servir pour exécuter une simple commande ou ouvrir une console PowerShell avec ce niveau de droits.

psexec -s \\serveur-tutobox powershell.exe

5. Lancer une console PowerShell locale avec le compte SYSTEM

L’outil est également utile pour exécuter des commandes sur la machine locale en utilisant un autre utilisateur, ou pour exécuter un programme avec le compte « NT AUTHORITY\SYSTEM ». La commande ci-dessous lance une console PowerShell sur l’hôte local avec le compte SYSTEM.

psexec -i -s powershell.exe

6. Exécuter un script Batch avec un utilisateur spécifique

Pour exécuter le script Batch « C:\mon-script.bat » (situé en local, qui sera copié sur l’hôte distant puis exécuté), en utilisant le compte du domaine Active Directory « TUTOBOX\Admin », on utilise cette syntaxe :

psexec \\serveur-tutobox -u TUTOBOX\Admin -p AdminMotDePasse cmd.exe /c "C:\mon-script.bat"

7. Exécuter une commande PowerShell

En précisant « powershell » puis le paramètre -Command, on peut préciser derrière une commande PowerShell à exécuter sur l’hôte distant. Le résultat sera affiché dans la console locale. Dans cet exemple, on crée un fichier sur l’hôte distant.

psexec \\serveur-tutobox powershell -Command New-Item -ItemType File -Path "C:\fichier.txt"

8. Exécuter un script PowerShell avec PsExec

Au-delà d’exécuter une commande PowerShell avec cet outil, on peut aussi exécuter un script PowerShell sur une machine distante, en précisant un chemin réseau vers ce script. Sinon, l’hôte distant ne pourra pas accéder au fichier. L’option -ExecutionPolicy Bypass permet d’outrepasser la politique d’exécution de la machine locale et forcer le lancement de notre script.

psexec \\serveur-tutobox powershell -File "\\serveur-fichiers.tutobox.local\scripts\mon-script.ps1" -ExecutionPolicy Bypass

9. Exécuter une commande sur toutes les machines

La commande ci-dessous va exécuter la commande « choco upgrade all » sur toutes les machines du domaine Active Directory. Cette commande est propre à Chocolatey et elle sert à mettre à jour les paquets. Pour rappel, Chocolatey est un gestionnaire de paquets que l’on peut installer sur une machine Windows pour installer des logiciels facilement en ligne de commandes. C’est un outil très populaire et apprécié ! Ceci dit, ici ce n’est qu’un exemple, on pourrait exécuter une autre commande que celle-ci.

psexec \\* choco upgrade all

10. Installer un logiciel au format MSI avec PsExec

Cet outil permet d’utiliser des commandes diverses et variées, les possibilités sont illimités. En utilisant MsiExec, on peut installer un logiciel au format MSI sur une ou plusieurs machines, toujours à distance.

psexec \\serveur-tutobox -s msiexec.exe /i \\serveurs-fichiers.tutobox.local\logiciels\vlc-mediaplayer.msi /q

J’espère que ces différents exemples vous seront utiles ! Amusez-vous bien…!

Ressources :

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *