Statistiques sur vos serveurs d’impression

L’une des caractéristiques de nos économies néo-libérales est que nous voulons des statistiques sur tout, même si elles n’ont parfois aucun sens. Dont acte.

Activer le journal d’événements Microsoft Windows PrintService

Suite à un échange avec le camarade Bernard qui se promène sur les forums avec son tonnelet de schnaps, je me suis intéressé aux statistiques produits par les journaux Windows sur l’impression. Il vous faudra vérifier, pour disposer de ces précieuses informations, que le journal d’événements Microsoft-Windows-PrintService/Operational soit activé.

Allez dans la console du journal d’événements en lançant la commande eventvwr. Là, choisissez Journaux des applications et de services > Microsoft > Windows > PrintService > Opérationnel. Par un clic droit dans le bandeau de gauche sur le mot Opérationnel, choisissez Activer le journal.

Statistiques sur vos serveurs d'impression

Un script PowerShell pour disposer des statistiques d’impression

J’ai vite fait concocté un script PowerShell pour extraire les informations sur le nombre d’impressions réalisées, l’utilisateur, la machine, le nombre de pages imprimées.

Clear-Host
$res=@()
$events=Get-WinEvent -LogName Microsoft-Windows-PrintService/Operational|Where Id -eq 307|Select TimeCreated, Message
ForEach ($event in $events)
{
    $message=$event.message
    If($message -match "Le document ([0-9]+), Imprimer le document dont ([^ ]+) est propriétaire sur \\\\([^ ]+) a été imprimé sur Brother HL-2270DW series via le port 192\.168\.1\.252\. Taille en octets : ([0-9]+)\. Pages imprimées : ([0-9]+)\. Aucune action de l’utilisateur n’est requise\.")
    {
        #Le document 5, Imprimer le document dont Administrateur est propriétaire sur \\PAULINE a été imprimé sur Brother HL-2270DW series via le port 192.168.1.252. Taille en octets : 1452. Pages imprimées : 1. Aucune action de l’utilisateur n’est requise.
        $login=$matches[2]
        $server=$matches[3]
        $size=$matches[4]
        $pages=$matches[5]
        $res += [PSCustomObject]@{
            login=$login
            server=$server
            size=$size
            pages=$pages
        }
        $res|Export-Csv -Path d:\temp\stats.csv
        $res|Out-GridView
    }
}

PowerShell  / Formateur Powershell