SelectEtoile : Base de connaissance SGBD

Quelques commandes pratiques pour gérer son système via powershell

1

 

Vous trouverez quelques commandes pratiques pour gérer votre système windows.

Cela permet de visualiser / superviser les différentes consommations CPU/Mémoire/Réseau...

 

Les configurations système

Cette commande permet de récupérer plusieurs informations du système (nb de cpu, serial Number, Memoire physique, mémoire libre, mémoire swap...).

Les commandes WMI qui suivent peuvent être exécutées à distance avec le paramètre '-computername'.

# Info sur l'OS
get-wmiobject Win32_OperatingSystem -computername $Computer
# Info sur la machine
get-wmiobject Win32_computerSystem -computername $Computer
# Info sur le Bios
get-wmiobject win32_bios -computername $Computer
# Sans le parametre -computername, elle s'execute en local

# Affiche les différentes propriétés et méthodes de la commande
Get-WmiObject Win32_OperatingSystem | Get-Member

 

Quelques exemples pratiques :

Affichage des informations sur la machine locale

$fields = "Name","Manufacturer","Model","NumberOfProcessors","NumberOfLogicalProcessors",@{label = "Memory (GB)"; Expression = {$_.TotalPhysicalMemory / 1gb}}
get-wmiobject Win32_computerSystem | format-table $fields | Out-String

 Configuration de la machine Locale

 

 

Version Windows et Date d'installation

Get-WmiObject Win32_OperatingSystem | Select-Object -property @{Name='ComputerName'; Expression = {$_.Csname}},@{Name='OS'; Expression = {$_.caption}},@{Name='ServicePack'; Expression = {$_.csdversion}},@{Name='InstallationDate'; Expression ={[system.Management.ManagementDateTimeConverter]::ToDateTime($_.Installdate)}}

Version Windows et date d'installation 

 

La consommation Mémoire

Espace Mémoire totale et libre

Get-WmiObject -Class Win32_OperatingSystem | Format-List TotalVirtualMemorySize,TotalVisibleMemorySize,FreePhysicalMemory,FreeVirtualMemory,FreeSpaceInPagingFiles

 

Memoire Totale et Libre

Avec un autre format, ca peut être sympa !!!

$objComputerSystem = get-wmiObject -class win32_computerSystem
$objOperatingSystem = Get-WmiObject -class Win32_OperatingSystem
"Total Physical Memory (GB) : "+([math]::round([long]$objComputerSystem.TotalPhysicalMemory /(1gb),2))
"Free Physical Memory (GB) : "+([math]::round([long]$objOperatingSystem.FreePhysicalMemory /(1mb),2))
"Total Virtual Memory (GB) : "+([math]::round([long]$objOperatingSystem.TotalVirtualMemorySize /(1mb),2))
"Free Virtual Memory (GB) : "+([math]::round([long]$objOperatingSystem.FreeVirtualMemory /(1mb),2))

 

 

Visualisation des 10 processus les plus consommateur en Mémoire Virtuelle :

gps | sort -desc vm | select -first 10

or

get-process | sort-object -desc vm | select -first 10

 

Top 10 des processus les plus consommateur en mémoire

 

Avec un autre format :

$fields = "Name",@{label = "Memory (MB)"; Expression = {$_.ws / 1mb}; Align = "Right"}
get-process | Sort-Object -Descending WS | select -first 10 | format-table $fields | Out-String

 

Top 10 des processus consommateurs en mémoire

 

 

Les disques

L'espace utilisé sur les différents drive

$fields = "DeviceID",@{label = "Size (GB)"; Expression = {[math]::round($_.Size / 1gb,2)}},@{label = "FreeSpace (GB)"; Expression = {[math]::round($_.FreeSpace / 1gb,2)}},@{label = "% Occupation"; Expression = {[math]::round(($_.Size-$_.FreeSpace) * 100 / $_.Size,2)}}
Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" | format-table $fields | Out-String

 

Utilisation des différents disques

 

Calcul de la somme de tous les disques :

Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" -ComputerName . | Measure-Object -Property FreeSpace,Size -Sum | Select-Object -Property Property,Sum

 

Visualisation de l'espace disque (drive et point de montage)

gwmi WIN32_Volume | select Caption, FreeSpace, Capacity

 

Visualiser les processus consommateur en IO :

Get-WmiObject Win32_PerfFormattedData_PerfProc_Process | where-object{ $_.Name -ne "_Total" -and $_.Name -ne "Idle"} | Sort-Object IOReadBytesPersec -Descending | select -First 10 | Format-Table Name,IDProcess,IODataBytesPersec,IOOtherBytesPersec,IOReadBytesPersec,IOWriteBytesPersec -AutoSize

 

 

 

 

 

Le réseau

La commande pratique est la suivante

Get-WmiObject -class Win32_PerfFormattedData_Tcpip_NetworkInterface

 

Quelques articles très sympa pour checker la bande passante d'une machine :

http://blogs.technet.com/b/parallel_universe_-_ms_tech_blog/archive/2012/03/29/powershell-simple-bandwidth-monitor.aspx

http://ss64.com/ps/syntax-get-bandwidth.html

 

 

Les Services SQLServer

get-wmiobject win32_service -filter "(name Like 'MSSQL$%')" | Select name,Startname,State,Started,PathName

 

Les Services SQLServer

 

Commentaires   

0 #1 KALFON 21-07-2014 14:25
Bonjour,

lorsque je lance une requete Powershell avec Win32_PerfForma ttedData_Tcpip_ NetworkInterfac e, j'ai systématiquemen t une erreur car la classe n'est pas installée. Quelqu'un sait-il comment je peux installer les classes manquantes dont celle-ci, il m'en manque à peu pres 278 § Merci de votre réponse
Citer

Ajouter un Commentaire


Code de sécurité
Rafraîchir