Journaliser l’activité de Windows Server 2022

Un moyen simple en PowerShell de loguer – journaliser – l’activité de vos serveurs Windows 2022 est d’utiliser la cmdlet Get-Counter. Il vous faudra tout d’abord récupérer les compteurs fournis par le système d’exploitation.

(Get-Counter -ListSet *).Paths|Select-String '\\Mémoire'
(Get-Counter -ListSet *).Paths|Select-String '\\Processeur'
(Get-Counter -ListSet *).Paths|Select-String '\\Interface réseau'
(Get-Counter -ListSet *).Paths|Select-String '\\Disque physique'

Les compteurs qui vont m’intéresser sont :

\Mémoire\Mégaoctets disponibles
\Processeur(*)\% temps processeur
\Interface réseau(*)\Octets envoyés/s
\Interface réseau(*)\Octets reçus/s
\Disque physique(*)\Lectures disque, octets/s
\Disque physique(*)\Écritures disque, octets/s

Le script PowerShell à planifier

Afin de journaliser toutes les données issues de ces compteurs dans un fichier CSV stocké dans le répertoire c:\windows, je vous propose le code suivant :

$dj=Get-Date -Format 'dd/MM/yyyy hh:mm'
$freemem_go=(Get-Counter -Counter '\Mémoire\Mégaoctets disponibles').CounterSamples.CookedValue/1024
$timecpu_pourcent=((Get-Counter -Counter '\Processeur(*)\% temps processeur').CounterSamples|Where Path -Match '_total').CookedValue
$tx_mbits=(Get-Counter -Counter '\Interface réseau(*)\Octets envoyés/s').CounterSamples.CookedValue*8/1048576
$rx_mbits=(Get-Counter -Counter '\Interface réseau(*)\Octets reçus/s').CounterSamples.CookedValue*8/1048576
$readio_mo=((Get-Counter -Counter '\Disque physique(*)\Lectures disque, octets/s').CounterSamples|Where Path -Match '_total').CookedValue/1048576
$writeio_mo=((Get-Counter -Counter '\Disque physique(*)\Écritures disque, octets/s').CounterSamples|Where Path -Match '_total').CookedValue/1048576
$path='c:\windows\counters.csv'
$res=@()
$res+=[PSCustomObject]@{dj=$dj;ram=$freemem_go;cpu=$timecpu_pourcent;tx=$tx_mbits;rw=$rx_mbits;hdread=$readio_mo;hdwrite=$writeio_mo}
$res|Export-Csv -Path $path -Append -NoTypeInformation
$res=$null

Le tableau CSV comprend 7 colonnes :

  1. la date, l’heure et les minutes du relevé
  2. la mémoire disponible en Go ;
  3. Le pourcentage d’utilisation du CPU ;
  4. les transmissions / envois des interfaces réseaux en MBits ;
  5. les réceptions des interfaces réseaux en MBits ;
  6. les lectures sur disque en Mo/s ;
  7. les écritures sur disque en Mo/s.

Journaliser l'activité de Windows Server 2022

Il vous suffit, par la suite, de planifier l’exécution de ce script au travers de la console taskschd.msc, en indiquant le chemin complet de la commande C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe dans Programme/Script et le chemin du script d:\supports\powershell\counters\counters.ps1

Journaliser l'activité de Windows Server 2022

PowerShell /