dans la leçon d’aujourd’hui dans notre série Geek School couvrant SysInternals, nous allons vous montrer comment utiliser L’ensemble D’utilitaires PsTools pour effectuer toutes sortes de tâches d’administration à la fois localement, et sur des ordinateurs distants.,
Si vous avez déjà voulu vous connecter à un autre ordinateur et exécuter une commande, obtenir rapidement des informations sur les processus en cours d’exécution et éventuellement les tuer, ou même arrêter un service sur un autre PC, vous pouvez utiliser les utilitaires PsTools pour faire toutes ces choses et plus encore.
évidemment, vous pouvez utiliser Remote Desktop ou un service similaire pour vous connecter à N’importe quel ordinateur Windows et voir le bureau et faire tout ce que vous feriez localement, mais les utilitaires PsTools vous permettent d’effectuer de nombreuses tâches à partir de la ligne de commande — ou mieux encore, à partir d’un script que vous pouvez réutiliser,
Ce sont les types d’utilitaires qui fonctionnent le mieux dans un environnement d’entreprise, et la maîtrise de ces outils vous rendra certainement beaucoup mieux dans votre travail d’administration système, vous fera gagner du temps et vous permettra de faire les choses de manière beaucoup plus intelligente. Faire les choses plus intelligemment et plus rapidement est une compétence essentielle pour être un excellent administrateur système.
Il y a douze outils dans L’ensemble PsTools, et bien que certains d’entre eux soient extrêmement utiles, d’autres ont été remplacés par des outils intégrés dans des versions plus récentes de Windows, et il y en a quelques autres qui ne sont pas utiles pour la plupart des gens., Nous allons passer en revue tous afin que vous compreniez comment ils fonctionnent et pourquoi vous voudrez peut-être utiliser chacun d’eux.,psping – un utilitaire ping assez simple avec quelques fonctionnalités supplémentaires
Il est intéressant de noter que vous pouvez utiliser un outil comme PsExec pour exécuter toutes sortes d’utilitaires de ligne de commande sur des ordinateurs distants – y compris ceux vraiment utiles comme l’outil de ligne de commande autoruns et bien d’autres., Les possibilités sont infinies une fois que vous avez adopté la puissance des PsTools.
tous ces outils peuvent être utilisés sur des ordinateurs locaux, mais ils sont surtout utiles pour se connecter à des ordinateurs distants et exécuter des commandes sur eux.
connexion à des ordinateurs distants ( syntaxe pour tous les utilitaires)
tous les utilitaires peuvent être exécutés sur l’ordinateur local ou distant, ils ont donc tous le même premier argument pour le nom de l’ordinateur si nécessaire. Notez que vous pouvez utiliser l’adresse IP si vous le souhaitez à la place., Si vous omettez cet argument, la commande fonctionnera sur votre ordinateur local.
psinfo \\nom_ordinateur
Vous pouvez également la liste de plusieurs ordinateurs comme psinfo \\ordinateur1, ordinateur2, computer3, ou vous pourriez mettre tous les noms dans un fichier de référence et que, comme psinfo @computerlist.txt. La syntaxe finale est psinfo \ \ * qui fonctionne sur tous les ordinateurs du domaine, ce qui n’est probablement pas quelque chose que vous utiliserez tous les jours.,
Si vous devez vous connecter avec d’autres informations d’identification parce que le compte de votre ordinateur local a un nom d’utilisateur et un mot de passe différents de ceux de l’autre ordinateur, vous pouvez utiliser les options-u et-p, mais nous notons que vous ne voudrez peut-être pas utiliser-p sur la ligne de Mise à jour: à partir de la dernière version de PsExec, aucun outil ne transmet les mots de passe en texte clair, donc le seul souci est si quelqu’un peut lire vos fichiers de script et y voir le mot de passe.,
psinfo \\computername-u « utilisateur” -p « Mot de passe”
« L’utilisateur” partie de la commande de changement de « DOMAINE\utilisateur” si vous êtes dans un environnement de domaine et la nécessité de changer de de la cours d’exécution de l’utilisateur.
Remarque: vous devrez généralement vous connecter aux ordinateurs distants avec un compte administrateur.
configuration de L’accès à L’Administration À Distance
Si vous êtes dans un environnement de domaine, ce que la plupart des gens qui ont besoin d’utiliser PsTools seront, vous pouvez ignorer cette section entièrement car tout devrait fonctionner très bien., Pour toute personne exécutant Windows 7, 8 ou Vista dans un environnement domestique ou utilisant quelques ordinateurs dans un bureau Sans domaine, vous devrez modifier le contrôle du compte utilisateur sur l’ordinateur distant pour permettre à PsTools de s’exécuter correctement.
le problème est bien décrit par Microsoft:
lorsqu’un utilisateur membre du groupe Administrateurs locaux sur l’ordinateur distant cible établit une connexion administrative distante à l’aide de la commande net use * \\remotecomputer\Share Share, par exemple, il ne se connectera pas en tant qu’administrateur complet., L’utilisateur n’a pas de potentiel d’élévation sur l’ordinateur distant et ne peut pas effectuer de tâches administratives.
pour l’expliquer d’une manière différente, lorsque vous essayez de vous connecter à un autre ordinateur et exécutez quelque chose qui nécessite un accès administrateur, il n’y a aucun moyen de déclencher L’invite UAC et de l’accepter depuis votre ordinateur, il ne se connectera donc pas en tant qu’administrateur.
Et ce n’est pas une mauvaise chose., Vous ne devriez pas changer ce paramètre sans bien comprendre que vous autoriserez une ouverture pour les logiciels malveillants à se propager d’un ordinateur à un autre — en supposant que le logiciel malveillant a votre nom d’utilisateur et votre mot de passe locaux, et que ce mot de passe est le même que l’autre ordinateur, et que le logiciel malveillant est si délicat, ce qui n’est pas le cas pour la plupart. mais ce n’est toujours pas quelque chose à prendre à la légère.
Et encore une fois, si vous êtes dans un environnement de domaine, ce problème n’existe pas et n’a pas besoin d’être changé. Et si vous ne faites que tester avec un tas de machines virtuelles, vous n’avez pas grand-chose à craindre.,
pour modifier L’UAC pour permettre L’exécution de PsTools, vous devez ouvrir l’éditeur de registre et accéder à la clé suivante:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows\CurrentVersion\Policies\System
Une fois que vous y êtes, créez un nouveau DWORD 32 bits sur le côté droit, donnez-lui le nom LocalAccountTokenFilterPolicy et la valeur de 1. Vous n’avez pas à redémarrer l’ordinateur pour effectuer le réglage prenne effet.,
Note: juste pour préciser, ce paramètre doit arriver sur l’ordinateur distant que vous vous connectez.
PsExec
PsExec est probablement l’outil le plus puissant dans le kit, que vous pouvez exécuter n’importe quelle commande dans votre invite de commande locale comme de l’exécuter sur l’ordinateur distant. Cela inclut tout ce qui peut être exécuté sur la ligne de commande — vous pouvez modifier les valeurs de registre, exécuter des scripts et des utilitaires, ou vous connecter de ce PC à un autre., La sortie des commandes sera affichée sur votre PC local, plutôt que sur celui distant.
La syntaxe est simple:
psexec \\nom_ordinateur <options> apptorun.exe <arguments>
de manière Réaliste, même si, vous voulez également inclure le nom d’utilisateur et mot de passe sur la ligne de commande., Par exemple, pour vous connecter à un autre PC et vérifier la liste des connexions réseau, vous utiliseriez quelque chose comme ceci:
psexec \\computername-u User-p Password ipconfig
Cette commande produirait une sortie similaire à la suivante:
Si vous voulez passer la sortie d’une commande dans une autre commande, ou si vous voulez rediriger la sortie dans un fichier, vous feriez normalement quelque chose comme Command.exe > sortie.txt, et la même chose se produit avec PsExec., Ainsi, une commande comme celle-ci enregistrera la sortie de netstat-an dans un fichier du répertoire racine de votre ordinateur Local.
psexec \\nom_ordinateur netstat-an > C:\connections.txt
Si vous souhaitez transmettre le caractère> ou | à travers la connexion PsExec à l’ordinateur distant, vous devrez utiliser le caractère^, qui est un caractère d’échappement peu connu dans le shell de commande Windows., Cela, bien sûr, signifie que nous devrons réellement utiliser le shell de commande sur l’ordinateur distant, et pas seulement exécuter le processus, afin que nous puissions faire la redirection ou le tuyau en premier lieu. Donc, cela rend notre commande comme ceci (changer le chemin vers le répertoire personnel où nous avons accès en écriture).
psexec \\nom_ordinateur cmd /c netstat-an ^> C:\users\geek\connections.,txt
Cet exemple placerait la liste des connexions ouvertes générées par netstat dans le répertoire personnel de l’utilisateur sur l’ordinateur distant, dans un fichier nommé connections.txt.
copier des programmes sur le PC distant
Vous n’êtes pas limité aux applications sur le PC distant lorsque vous utilisez PsExec, et en fait, vous pouvez exécuter tout ce que vous avez localement. Par exemple, si vous vouliez effectuer une analyse en ligne de commande Autoruns du système distant, mais que vous n’aviez qu’autorunsc.exe sur votre ordinateur local, vous pouvez utiliser le commutateur-c pour copier l’application., PsExec supprimera l’outil du système distant une fois la commande terminée.
c’est un moment important pour mentionner l’option-accepteula de la plupart des outils SysInternals, qui permettra de s’assurer que le CLUF a été accepté sur l’ordinateur où la commande a été exécutée. Nous devrons ajouter ceci sur l’autorunsc.commande exe ou bien il échouera sur l’ordinateur distant.
psexec \\computername-c autorunsc.,exe-accepteula
Il existe quelques autres options qui spécifient si l’application est toujours copiée ou si elle doit être copiée si l’application locale est une version supérieure à celle distante. Vous pouvez simplement exécuter psexec à partir de l’invite pour voir ces options.
Note: Si une commande n’est disponible que dans l’invite de commande, vous devez ajouter cmd /c avant elle. Cela inclut les tuyaux et les redirections comme / et >.,
l’Interaction avec l’Utilisateur Connecté sur le PC Distant
Vous pouvez utiliser le commutateur-i pour faire le lancement de l’application et permettre à l’utilisateur distant de réellement interagir avec l’application. Vous voudriez probablement combiner cela avec le commutateur-d, qui n’attend pas la fin du processus distant avant que PsExec ne vous renvoie le contrôle., Par exemple, cette commande ouvrirait une fenêtre de bloc-notes sur un ordinateur distant:
psexec \\computername-d-i notepad
Vous pouvez également choisir d’exécuter en tant qu’utilisateur système avec l’option-s, ce qui peut être très dangereux. Par exemple, si vous souhaitez ouvrir l’éditeur de Registre sur votre propre ordinateur, mais avec des autorisations système au niveau de l’utilisateur, vous pouvez exécuter cette commande.
psexec-I-d-s regedit.,exe
Si vous vous demandez, Oui, cela vous donnera accès à beaucoup de choses que vous n’auriez normalement pas accès à modifier dans le registre. Et oui, c’est une très mauvaise idée.
exécution d’une invite de commande complète via PsExec
Oui, nous venons de vous montrer tous ces exemples de la façon d’exécuter une seule commande via PsExec… et il s’avère que vous pouvez exécuter un shell complet sur votre ordinateur local qui s’exécute réellement sur l’ordinateur distant. C’est comme si vous étiez sur la console de ce serveur (pour la plupart)., Et heureusement, la syntaxe de celui-ci est vraiment facile (ajoutez le nom d’utilisateur si vous avez besoin).
psexec \\nom_ordinateur cmd.exe
Une fois que vous avez fait cela, vous aurez une invite de commande qui s’exécute maintenant sur le PC distant.
l’invite de commande fonctionnera presque comme d’habitude, sauf que la complétion de l’onglet ne fonctionnera pas du tout, mais c’est très bien pour nous.,
Il convient de noter que si vous souhaitez exécuter des commandes PowerShell à distance sur un autre ordinateur, vous pouvez le faire nativement avec quelques ajustements à la configuration. Malheureusement, PowerShell ne fonctionne pas très bien avec PsExec, sauf si vous utilisez un tas de solutions de contournement étranges qui ne valent pas la peine.
Autres Options
Le psexec de commande a une tonne d’autres options utiles que vous pouvez utiliser chacun de ceux-ci seront utilisés dans l’espace juste après \\nom_ordinateur et avant toutes les autres commandes., Alors, pensez psexec \\computername-option <commande à distance>.
Si vous exécutez simplement la commande psexec à partir de l’invite sans aucun commutateur supplémentaire, vous les verrez tous.
PsFile
Cette commande affiche les fichiers qui sont actuellement ouverts sur le réseau sur un PC local ou un PC distant, et elle fonctionne de manière similaire à la commande Windows « net file”. La syntaxe est comme n’importe quelle autre commande dans le kit.
psfile \\nom_ordinateur
Oui, ce n’est pas aussi amusant que le précédent.,
Si vous voulez fermer l’un des fichiers et débranchez la personne à partir de la ressource, vous pouvez fermer la connexion en utilisant l’option-c, mais qui pourrait entraîner une perte de données depuis le fichier n’est pas fermé correctement.
psfile \\nom_ordinateur <chemin> -c
PsGetSid
Cela affiche l’identificateur de sécurité pour un ordinateur ou de l’utilisateur, et prend la norme arguments., Cet utilitaire n’est probablement utile que dans des scénarios très particuliers, dont nous n’avons personnellement rencontré aucun. Alors essayez – le une fois et oubliez-le jusqu’à ce que vous ayez besoin de l’utiliser un jour.
PsInfo
Cette commande répertorie de nombreuses informations utiles à propos d’un système, y compris la disponibilité, qui est beaucoup de plaisir. Vous pouvez exécuter celui-ci localement pour le tester en tapant simplement psinfo à l’invite de commande, en supposant que vos outils SysInternals sont dans le chemin.,
Si vous voulez obtenir beaucoup plus d’informations de PsInfo, et je sais que vous le faites, alors vous pouvez utiliser les options suivantes pour ajouter des informations de disque (-d) et des correctifs (-h) et une liste des applications installées et de leurs versions (-s).,
psinfo-D-h-S
Il en résulte beaucoup plus d’informations, même sur une machine virtuelle presque vide:
Vous pouvez également exécuter psinfo à distance en ajoutant le nom de l’ordinateur et éventuellement les commutateurs de nom d’utilisateur… mais il y a un gros problème: cela ne fonctionnera pas à moins que le service de Registre distant ne soit activé. De la tête à la fin de l’article où nous parlons de la façon de l’activer sur l’ordinateur distant.,
PsKill
Cette commande est vraiment simple — elle tue les processus, par nom ou ID, et vous pouvez utiliser le commutateur-T pour tuer éventuellement l’arborescence de processus entière.
pskill \\nom_ordinateur <PID ou le Nom>
Le problème avec PsKill est que les dernières versions de Windows ont un très puissant tâche de tuer utilitaire intégré appelé Taskkill qui a beaucoup plus de fonctionnalités.,
PsList
Cet utilitaire est extrêmement simple, mais assez pratique pour regarder rapidement un ordinateur et voir si quelque chose utilise trop de CPU ou de mémoire. Vous pouvez spécifier le nom ou une partie du nom sur la ligne de commande pour réduire la liste à une application problématique, et vous pouvez voir presque toutes les informations, y compris les threads.
Remarque: Pour que cet utilitaire fonctionne sur un ordinateur distant, vous devez activer le service de Registre distant. Assurez-vous de lire à la fin de la leçon, car nous expliquons comment gérer cela plus tard.,
PsLoggedOn
Cet utilitaire répertorie les comptes qui sont connectés sur la machine ou qui se connectent à distance. C’est assez simple et largement utile dans un environnement de type administrateur système.
PsLogList
Cet utilitaire affiche un journal d’événements local ou distant sur la ligne de commande, et il existe un certain nombre d’options qui peuvent être utilisées pour filtrer les données.,
psloglist \\computer System
Il existe également les options-h, -d et-m, qui vous permettent de réduire la liste des événements aux x dernières heures, jours ou minutes. L’option-n affiche la liste des enregistrements x, tandis que le commutateur-r inverse l’ordre afin que les derniers enregistrements soient en bas de la sortie. La dernière option, que nous avons définie sur « Système” dans cet exemple, n’est pas réellement nécessaire — si vous l’omettez, le journal système sera toujours tiré, mais vous pouvez le changer en Application ou sécurité pour extraire ces journaux à la place.,
Il convient de noter que si vous avez un accès administrateur à l’autre ordinateur, vous pouvez simplement ouvrir L’Observateur d’événements et choisir Se Connecter dans le menu Action. Entrez le nom de l’ordinateur dans la liste, modifiez les informations d’identification si nécessaire et accédez aux journaux d’événements de cette façon.
Le seul scénario où nous pouvons vraiment voir PsLogList être vraiment utile est si vous vouliez écrire quelque chose pour effectuer une action en cas de certains messages dans le journal des événements.,
PsPasswd
Cet utilitaire vous permet de modifier les mots de passe des utilisateurs, locaux et distants. La syntaxe est la même que tout le reste:
pspasswd \\computer-u User-p Password <AccountToChange> <newpassword>
l’avantage de cet utilitaire en utilisant simplement Net User à partir de l’invite de commande régulière est que vous pouvez changer les mots de passe pour plusieurs ordinateurs à la fois, et cela fonctionne également dans un environnement de domaine.,
PsPing
Cet utilitaire pings, vérifie les ports, et fait des tests de latence et de bande passante. Assez simple.,
psping <servername>
Ou vous pouvez vérifier la connexion à un port en ajoutant le numéro de port comme ceci:
psping <servername>:80
Il y a une tonne d’options avancées pour cette commande que vous aurez probablement envie de vérifier si vous nie de faire quelques dépannage du réseau.,
PsService
Cet utilitaire vous permet de gérer les Services Windows à partir de l’invite de commande. C’est vraiment très facile à utiliser — la syntaxe fonctionne comme ceci:
psservice \\nom_ordinateur <commande:> <arguments>
La liste des commandes peuvent être trouvés par la recherche à l’aide /? options, mais il y a quelques options que vous vous retrouverez à utiliser plus que le reste.,s la configuration
En particulier, la start | stop | pause | redémarrage | cont options sont vraiment simples et faciles à comprendre., Par exemple, dans la commande suivante, vous pouvez remplacer « démarrer” par l’une de ces autres commandes.
psservice \\nom_ordinateur start <servicename>
Les autres options peuvent être utilisées pour interroger plus d’informations au sujet d’un service, ou de modifier la configuration.
Remarque: le haut-sc.exe utilitaire a une tonne de fonctionnalités utiles qui se chevauchent avec cet utilitaire. La principale différence est que PsService est un peu plus convivial.,
PsShutdown
Cet utilitaire vous permet d’arrêter, fermer la session, ou même mettre un ordinateur en mode de sommeil. Le problème est que ce n’est pas mieux que l’arrêt intégré.utilitaire exe, et a été en fait conçu pour Windows XP, il est donc recommandé d’utiliser l’utilitaire intégré à la place dans la plupart des cas.
la seule option que psshutdown fournit que vous ne pouvez pas obtenir autrement est le commutateur (-d) pour mettre l’ordinateur en mode veille, ce qui peut être pratique.,
psshutdown \\computername-d
Vous pouvez également utiliser l’option-h pour mettre l’ordinateur en mode veille prolongée au lieu.
PsSuspend
Cet utilitaire est très similaire à PsKill, mais il fait quelque chose que l’utilitaire taskkill intégré ne peut tout simplement pas-vous pouvez suspendre les processus plutôt que de les tuer, ce qui peut être très pratique si vous souhaitez arrêter temporairement un processus intensif en CPU pendant que vous terminez une tâche sysadmin.,
la Suspension d’un processus est extrêmement simple:
pssuspend \\ordinateur <PID ou le Nom>
Et la reprise de ce processus est tout aussi simple: tout ce que vous avez à faire est d’ajouter le commutateur-r.,
pssuspend \\computer-R <PID ou nom>
lorsque les utilitaires ne se connectent pas à cause du Registre distant
certains de ces utilitaires, notamment psinfo, pslist, psloglist et psloggedon, nécessitent que le service de Registre distant soit activé sur l’ordinateur distant, et il n’est pas activé par défaut sur les versions modernes de Windows.
la bonne nouvelle est que ce problème est facilement réparable et que vous n’avez pas besoin de laisser le Registre distant activé., Exécutez simplement cette commande en utilisant PsService pour démarrer le service:
psservice \\computername start RemoteRegistry
et lorsque vous avez terminé tout ce que vous faites avec PsInfo ou PsList, vous pouvez arrêter le service à nouveau en utilisant cette commande:
psservice \\ComputerName stop remoteregistry
les solutions simples sont les meilleures, n’est-ce pas?
prochaine leçon
assurez-vous de nous rejoindre demain, lorsque nous couvrirons les utilitaires de fichiers et de disques, et quelques choses plus intéressantes.