Peut-être que vous travaillez joyeusement sur un serveur Windows distant, puis vous trouvez un processus qui tourne mal et utilise des cycles CPU précieux. Que faites-vous ? Tuez-le !
Dans ce tutoriel, vous apprendrez comment tuer un processus Windows en utilisant des utilitaires natifs, des utilitaires tiers et PowerShell. Vous apprendrez d’abord comment examiner les processus en cours d’exécution dans Windows, puis comment les arrêter.
Prérequis
Si vous souhaitez suivre les étapes de ce tutoriel, assurez-vous d’avoir les éléments suivants à portée de main:
- A Windows PC – All demos in this tutorial will use Windows 10, but Windows 7+ will work also.
- A Windows Server or another Windows desktop to use as your target for killing the remote tasks. This tutorial uses a standalone Windows Server 2016 as the remote server.
- La Sysinternals Suite de Microsoft.
- Windows PowerShell 5 ou ultérieur. Ce tutoriel utilise PowerShell v7.1.3
Interrogation d’un processus Windows distant avec Tasklist
Depuis Windows XP, il existe un outil pratique appelé tasklist. Tasklist est un outil pratique qui interroge les processus sur des ordinateurs distants. Avant de pouvoir tuer un processus, vous devez d’abord les découvrir!
Ouvrez une session PowerShell ou une invite de commande sur votre bureau et tapez la commande suivante pour afficher tous les processus en cours d’exécution sur votre ordinateur distant.
La commande ci-dessous interroge un ordinateur distant (/S
) en authentifiant la connexion avec le nom d’utilisateur administrateur (/U
) et le mot de passe (/P
).
Vous remarquerez ci-dessous que le Nom de la session n’apparaît pas. Étant donné que vous exécutez tasklist
sur un ordinateur distant, tasklist
ne fournit pas le Nom de la session.

Peut-être préférez-vous simplement répertorier un seul processus. Pas de problème. Pour cela, spécifiez le paramètre /FI
. Le paramètre /FI
accepte une requête qui est transmise à tasklist
pour filtrer des processus spécifiques.

Interrogation du processus Windows distant avec PSList
Un autre outil pour afficher les processus en cours d’exécution est PSList, et cet utilitaire fait partie de la Suite Sysinternals. Cette suite d’outils existe depuis de nombreuses années et a été créée par Mark Russinovich, CTO d’Azure!
Commençons par voir comment vous pouvez afficher les processus en cours d’exécution sur un ordinateur distant.
1. Ouvrez une session PowerShell ou une invite de commande sur votre bureau et changez le répertoire vers l’endroit où vous avez extrait la Suite Sysinternal.
2. Dans votre session PowerShell, exécutez la commande suivante pour afficher les processus en cours d’exécution sur l’ordinateur distant et l’utilisation du processeur associée en temps réel.
La commande ci-dessous exécute pslist
pour interroger tous les processus Windows distants sur l’ordinateur WIN-BANGJIEFNOC
en s’authentifiant avec le nom d’utilisateur Administrateur
(-u
) et le mot de passe (-p
).
La commande utilise l’option -s
pour basculer pslist
en mode « gestionnaire de tâches » qui met à jour la liste de manière répétée.
Si c’est la première fois que vous utilisez un outil Sysinternals, une bannière peut apparaître vous demandant d’accepter le EULA; cliquez sur OK.
Vous voyez maintenant la sortie suivante de l’exécution de cette commande ; pour cet article, vous êtes intéressé par 3 de ces valeurs. Comme indiqué ci-dessous.
- Nom: Le nom du processus.
- Pid: Identifiant du processus, une valeur critique utilisée dans ce tutoriel, le numéro de PID peut être utilisé pour arrêter un processus distant. C’est l’identifiant numérique attribué à un processus.
- CPU: Cela montre en temps quasi réel l’utilisation de votre CPU disponible dans son ensemble.
Les autres valeurs sont liées à la mémoire et dépassent le cadre de cet article.

3. Étant donné que l’étape deux utilise l’option -s
, appuyez sur Ctrl-C pour quitter pslist
et revenir à la console.
Restreignez la liste des processus retournés en utilisant l’option
-e
suivie du nom du processus, par exemple,-e Winlogon
.
Tuer les processus par nom de processus avec PSKill
Une fois que vous savez comment trouver des processus distants, plongeons maintenant dans la façon de les tuer. Pour commencer, couvrons l’utilitaire pskill . Apprenez d’abord à tuer les processus par nom de processus.
1. Assurez-vous d’avoir un processus que vous pouvez tuer sur votre serveur distant. Ce tutoriel utilisera le processus du bloc-notes.
2. Ouvrez une session PowerShell ou une invite de commande sur votre bureau local et changez le répertoire vers l’endroit où vous avez extrait le Sysinternal Suite, puis exécutez la commande suivante. Vous pouvez voir que la syntaxe de pskill
est similaire à celle de pslist
.

3. Maintenant, exécutez pslist
, comme expliqué dans la section précédente, pour confirmer que le processus est effectivement arrêté.

Tuer les processus par ID de processus avec PSKill
Tuer le processus par nom peut être suffisant pour vos besoins si une seule instance de ce processus est en cours d’exécution ou si vous voulez tuer tous les processus avec ce nom. Et si vous souhaitez tuer une instance particulière d’un processus en cours d’exécution? Les étapes suivantes démontreront cela.
1. Sur votre serveur distant, ouvrez le Bloc-notes deux fois ; vous tuerez l’un de ces processus dans cette démonstration ; vous pouvez bien sûr, substituer d’autres processus.
2. Exécutez la commande suivante en prenant note de l’un des Pid comme indiqué ci-dessous ; vous en aurez besoin pour l’étape suivante.

3. En utilisant le PID, exécutez maintenant pskill
, en fournissant le PID comme dernier argument.

4. Enfin, vérifiez que vous avez toujours une instance de Notepad en cours d’exécution en relançant pslist
. Vous ne devriez maintenant voir qu’une seule instance de Notepad en cours d’exécution.

Arrêt des processus Windows à distance avec TaskKill par nom
Le taskkill utilitaire est natif à Windows et comprend d’autres options en ligne de commande pour redémarrer les processus par nom d’utilisateur et nom d’application. Commençons et tuons à nouveau Notepad!
Tuer le processus par nom
1. Sur votre serveur distant, ouvrez Notepad; Notepad est le processus que vous tuerez dans cette démonstration; vous pouvez bien sûr substituer un autre processus.
2. Ouvrez une session PowerShell ou une invite de commande sur votre bureau. En tapant la commande suivante, vous tuerez notepad.exe
La sortie est affichée ci-dessous:
/IM est le paramètre pour Image; dans ce cas, c’est notepad.exe

3. Pour confirmer que le processus est arrêté, exécutez tasklist
. Vous ne devriez maintenant voir aucune tâche correspondant à ce filtre.

Arrêt des processus Windows à distance avec TaskKill par PID
Tuer un processus avec taskkill
en utilisant un PID n’est pas très différent de l’utilisation du nom du processus. Mais, comme vous ne pouvez pas utiliser le nom, vous devrez d’abord trouver le PID et le passer à taskkill
.
En supposant que Notepad est en cours d’exécution sur votre hôte Windows distant:
1. Exécutez tasklist
comme indiqué ci-dessous pour trouver le PID du processus Notepad. Notez l’un des PID comme indiqué ci-dessous ; vous en aurez besoin pour l’étape suivante.

2. Maintenant, exécutez taskkill
en fournissant le PID en tant que dernier argument.

3. Enfin, exécutez tasklist
pour confirmer que le processus est arrêté.

Arrêt d’un processus Windows à distance avec PowerShell
PowerShell vous offre quelques options pour tuer des processus à distance ; le premier cmdlet Stop-Process
ne peut pas tuer nativement un processus à distance, car il n’a pas d’option pour spécifier un nom d’ordinateur. Mais, vous pouvez contourner ce problème en exécutant Stop-Process
à distance via PowerShell Remoting.
1. Si votre hôte et votre serveur distant ne sont pas dans un domaine Active Directory, fournissez d’abord un nom d’utilisateur et un mot de passe, en créant un objet PSCredential.

2. Ensuite, puisque le tutoriel utilisera SSL pour se connecter à l’ordinateur distant et utilisera un certificat auto-signé, créez une option PSSessionOption qui ignorera la vérification du certificat pour une autorité de certification de confiance.
3. Maintenant, connectez-vous au serveur avec la commande Enter-PSSession
, qui établit une session interactive sur le serveur distant.
La commande ci-dessous se connecte à l’ordinateur WIN-BANGJIEFNOC.local.net
en utilisant le nom d’utilisateur et le mot de passe fournis ci-dessus (Credential
), en sautant la vérification de l’autorité de certification (SessionOption
), et en se connectant via SSL (UseSSL
).

4. Une fois connecté à l’hôte distant, vérifiez le processus que vous souhaitez arrêter en exécutant Get-Process
. Dans ce cas, vous verrez le processus notepad
.

5. Pour arrêter ce processus, exécutez Stop-Process
, comme indiqué ci-dessous.
6. Enfin, confirmez que vous avez arrêté le processus en réexécutant Get-Process
, et vous devriez recevoir un message d’erreur.

Si vous souhaitez arrêter un processus Windows distant de manière non interactive, utilisez la commande
Invoke-Command
en utilisant les paramètres suivants :Invoke-Command -ComputerName WIN-BANGJIEFNOC.local.net -Credential $credentials -ScriptBlock {Stop-Process -ProcessName notepad} -UseSSL
. Encapsuler la commandeStop-Process
dans le paramètreScriptBlock
envoie la commande à l’hôte distant.
Conclusion
Vous avez appris différentes méthodes pour tuer des processus à distance et comment surmonter les situations où les règles du pare-feu réseau pourraient empêcher les utilitaires de fonctionner correctement ; ce tutoriel aurait également pu vous aider à résoudre des problèmes sur Windows.
Les utilitaires dont vous avez appris l’existence sont des outils puissants ; utilisez-les avec précaution !
Source:
https://adamtheautomator.com/how-to-kill-a-windows-process/