> Tech > PsExec

PsExec

Tech - Par Mark Russinovich - Publié le 24 juin 2010
email

Le fait que PsExec puisse exécuter les processus à distance sans installation manuelle de logiciel sur le système éloigné, facilite le déploiement. Mais PsExec ne serait que bien peu utile s’il se bornait à lancer un programme sur un système distant.

Si l’outil est un utilitaire d’administration de

systèmes polyvalent, c’est bien parce qu’il est capable de rediriger l’entrée et la sortie des applications de console. La figure 1 montre les options ligne de commande de PsExec et donne une bonne idée de ses possibilités. Beaucoup d’outils de console administrative Windows ne peuvent fonctionner que sur une machine locale. PsExec permet de les utiliser à distance. Par exemple, PsExec permet à Ipconfig, l’utilitaire Windows qui affiche la configuration TCP/IP pour les adaptateurs réseau d’un système, de montrer la configuration d’un système à distance. Voici un exemple de commande à cet effet

psexec \\remote ipconfig

où remote est le nom ou l’adresse IP du système que l’on veut interroger. La sortie d’Ipconfig vous apparaîtra comme si Ipconfig s’était exécuté sur la machine locale.

Si vous ne précisez pas le chemin du programme à exécuter, PsExec recherche dans le répertoire \windows\system32 du système distant. Si vous savez que le programme ne se trouve pas dans ce répertoire, entrez son chemin complet sur le système distant. S’il s’agit d’un exécutable sur le système local que vous voulez exécuter sur le système lointain, spécifiez le commutateur -c et le chemin local du fichier.
Le commutateur -c ordonne à PsExec de copier l’exécutable spécifié sur le système à distance pour exécution et supprime l’exécutable de ce système, quand le programme a fini de s’exécuter.

La faculté de redirection de la console de PsExec va plus loin : exécuter une invite de commande sur un système à distance comme si cette invite s’exécutait localement. Cette utilisation de PsExec est comparable à exécuter un client Telnet sur la machine locale et à se connecter à un service Telnet sur la machine distante. Mais ici, il n’est pas nécessaire que le service Telnet, ou tout autre service spécial, tourne sur le système à distance. Il suffit d’exécuter la commande :

psexec \\remote cmd

Si vous voulez exécuter une commande de console sur le système à distance, passez à l’invite de commande le commutateur /c suivi de la commande à exécuter. Ainsi, la commande

psexec \\remote cmd /c ver

affiche le numéro de version Windows du système à distance sur la console de la machine locale.

PsExec est aussi très intéressant pour déployer des correctifs à chaud qui supportent une interface non interactive sur le réseau. Pour faciliter encore plus cette tâche, PsExec prend de multiples noms d’ordinateurs, le nom d’un fichier texte contenant une liste des noms d’ordinateurs, ou le nom spécial de \\* qui recense tous les ordinateurs présents dans le domaine courant. Par exemple, pour exécuter l’outil de retrait Microsoft MyDoom sur les ordinateurs nommés Remote et Remote1 et pour journaliser l’état de sortie du nettoyage dans un fichier, vous pourriez utiliser la commande

psexec \\remote,remote1
-c doomcln.exe
-s 2> results.log

Après la sortie, un processus spécifie un entier que le processus parent du processus peut lire. Les programmes utilisent souvent le code exit pour signaler la réussite ou l’échec de leur exécution. Quand un processus exécuté avec PsExec est terminé, PsExec affiche son code exit et le renvoie comme son propre code exit. Il faut tester le comportement d’un programme ou consulter sa documentation pour savoir ce que signifient les codes d’erreur spécifiques du programme.
Mais, généralement, un code exit de 0 indique la réussite. La communication -s spécifie que PsExec devrait exécuter la commande sous le compte System. Nous reviendrons plus loin sur cette option.

Téléchargez gratuitement cette ressource

Le XDR au service de la Sécurité IT

Le XDR au service de la Sécurité IT

Découvrez comment mettre à profit le Machine Learning et un traitement analytique orienté sécurité pour corréler les événements, tout en automatisant et en accélérant les processus de détection et de réponse.

Tech - Par Mark Russinovich - Publié le 24 juin 2010

A lire aussi sur le site

Revue Smart DSI

La Revue du Décideur IT