91 votes

La commande Linux "Top" pour Windows Powershell?

Je recherche une commande PowerShell qui peut offrir une fonctionnalité similaire à l'application Linux Top. Quelque chose qui se rafraîchit à un intervalle donné et affiche la liste des processus avec utilisation CPU %.

J'ai vu des scripts qui listent l'utilisation de CPU % dans une boucle mais quelque chose comme top serait beaucoup plus pratique car nous avons configuré un accès SSH/Powershell pour la gestion (je préfère toujours un shell Putty!)

0 votes

Cela tombe clairement dans la catégorie des questions superuser.com.

0 votes

Cool - Je ne savais même pas que ce site existait! (Je suis principalement un développeur C#)

3 votes

La propriété CPU sur l'objet Process n'est pas un pourcentage de CPU, c'est le temps total du CPU depuis le démarrage du processus.

1voto

Josiah Points 1714

Je tiens à souligner que si vous souhaitez disposer d'un environnement similaire à Linux pour Windows, vous pouvez utiliser Cygwin, car il offre un environnement similaire à Linux pour Windows, où vous pouvez utiliser presque toutes les commandes.

1voto

Matthi _ Points 11

Ce commentaire de Mark devrait recevoir plus de recommandations car il fait presque exactement ce que la question demandait et cela fonctionne :

  • Fournit de belles en-têtes en haut à chaque mise à jour sans avoir besoin de vider toute la console.

    $saveY = [console]::CursorTop
    $saveX = [console]::CursorLeft      
    
    while ($true) {
      Get-Process | Sort -Descending CPU | Select -First 30;
      Sleep -Seconds 2;
    }

0 votes

Sauf que Get-Process ne vous donne pas un instantané du processeur, c'est cumulatif.

0voto

Kironide Points 5891

Pour exécuter top directement depuis cmd, vous devrez créer %WinDir%\top.bat avec ce code :

@echo off

Cls && @echo Initialisation du programme TOP. Veuillez patienter...

Powershell -ExecutionPolicy unrestricted -command "& {
  Cls
  While(1) { Ps | Sort -des CPU | Select -f 35 | Ft -a; sleep 2; Cls }
}"

0voto

joeytwiddle Points 3226

Si vous souhaitez filtrer par processus, utilisez findstr:

while (1) { Ps |Findstr explorer | Sort -desc cpu | Select -first 30; Sleep -seconds 2; Cls }

0voto

Albino Cordeiro Points 471

Vous voudrez peut-être lancer le moniteur de ressources depuis Powershell via resmon, qui peut être fermé via Alt+F4, en passant le focus de nouveau sur le terminal Powershell.

1 votes

OP aimerait utiliser des sessions powershell à distance, donc une réponse en GUI ne convient pas ici.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X