Sous Windows, vous pouvez suivre l’utilisation de l’imprimante avec l’Observateur d’événements. Tous les travaux d’impression envoyés au spouleur d’impression sont enregistrés dans l’Observateur d’événements. Si vous disposez d’un serveur d’impression déployé sous Windows, vous pouvez utiliser ces journaux pour organiser une solution simple d’audit d’impression qui vous permet de comprendre qui a imprimé sur vos imprimantes, quand et combien de pages.
Dans cet article, nous montrerons comment activer et configurer la journalisation des événements d’impression dans Windows, afficher l’historique d’impression dans l’Observateur d’événements et rechercher ou filtrer les événements d’impression avec PowerShell.
Comment activer la journalisation des impressions sous Windows
Windows dispose d’un journal d’Observateur d’événements distinct dans lequel tous les événements d’impression sont enregistrés :
SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-PrintService%4Operational.evt
.
Cependant, ce journal est désactivé par défaut. Pour activer la journalisation d’impression sous Windows :
- Ouvrez l’Observateur d’événements (
eventvwr.msc
); - Accédez à Journaux d’applications et de services -> Microsoft -> Windows -> PrintService.
- Cliquez avec le bouton droit sur Opérationnel et sélectionnez Activer le journal;
- Augmentez la taille de ce journal d’événements par rapport à la valeur par défaut de 1 Mo si vous souhaitez conserver les journaux d’impression pendant une longue période. Ouvrir Opérationnel propriétés du journal et définition de la taille maximale du journal ;
Vous pouvez également activer (désactiver) un journal d’événements spécifique avec la commande :
wevtutil.exe sl Microsoft-Windows-PrintService/Operational /enabled:true
Analyse des journaux d’impression avec PowerShell
L’Observateur d’événements ne permet pas d’obtenir des statistiques pratiques sur l’historique d’impression ou une recherche par date/utilisateur/document. Vous pouvez traiter et filtrer les événements d’impression à l’aide de PowerShell.
Pour obtenir des événements du journal PrintService/Operational, utilisez l’applet de commande Get-WinEvent PowerShell. Le script PowerShell suivant affiche une liste de tous les documents imprimés sur l’ordinateur actuel au cours des dernières 24 heures :
$all2dayprint=Get-WinEvent -FilterHashTable @{LogName="Microsoft-Windows-PrintService/Operational"; ID=307; StartTime=(Get-Date).AddDays(-1)} | Select-object -Property TimeCreated, @{label="UserName";expression={$_.properties[2].value}}, @{label="Document";expression={$_.properties[1].value}}, @{label="PrinterName";expression={$_.properties[4].value}}, @{label="PrintSizeKb";expression={$_.properties[6].value/1024}}, @{label="Pages";expression={$_.properties[7].value}}
$all2dayprint|ft
Si vous souhaitez afficher uniquement les documents imprimés par un utilisateur particulier :
$PrintUsername="maxadm"
$all2dayprint| Where-Object -Property UserName -like $PrintUsername|ft
Vous pouvez exporter une liste de documents imprimés dans un fichier CSV à l’aide de Export-CSV :
$all2dayprint | Export-Csv -Path "c:\ps\Print Audit.csv" –NoTypeInformation -Encoding UTF8
Ou affichez-le sous une forme graphique Out-GridView :
$all2dayprint| Out-GridView -Title "All print jobs"
Vous pouvez planifier l’exécution quotidienne de ce script PowerShell et écrire les informations d’utilisation de l’imprimante dans une base de données externe.