Comment surveiller l’utilisation d’une imprimante à l’aide des journaux de l’Observateur d’événements Windows

Gérer les journaux d’utilisation des imprimantes sous Windows n’est pas toujours simple, surtout si vous souhaitez savoir qui a imprimé quoi et quand. Curieusement, Windows n’enregistre pas toutes les activités d’impression par défaut, ce qui complique l’audit et le dépannage. Si vous administrez un réseau ou souhaitez simplement mieux suivre les travaux d’impression, activer la journalisation détaillée des événements d’impression est la solution. Une fois cette option maîtrisée, vous pourrez consulter les travaux d’impression, les informations utilisateur et même les détails de format dans l’Observateur d’événements. De plus, grâce à PowerShell, vous pourrez analyser les journaux ou exporter des rapports au format CSV. Ce n’est pas parfait – car Windows a tendance à complexifier inutilement les choses – mais c’est faisable et utile.

Comment activer la journalisation des impressions sous Windows

Méthode 1 : Activer manuellement le journal des événements

Ce journal est désactivé par défaut car Windows a tendance à masquer les informations importantes, sauf si vous le lui indiquez. L’activer vous permet de consulter tous les travaux d’impression, y compris les noms de fichiers et les informations utilisateur, ce qui est très pratique pour les audits ou le dépannage.

  1. Ouvrez l’Observateur d’événements en tapant eventvwr.mscdans la boîte de dialogue Exécuter ( Win + R) et en appuyant sur Entrée.
  2. Accédez à Journaux des applications et des services > Microsoft > Windows > PrintService. Si vous ne le voyez pas, vous devrez peut-être développer les dossiers ou activer les options avancées.
  3. Faites un clic droit sur Opérationnel et sélectionnez Activer le journal. Cela lance la collecte des événements d’impression.
  4. Facultatif : Augmentez la taille maximale du journal si vous souhaitez conserver toutes les données d’impression plus longtemps. Cliquez avec le bouton droit sur Opérationnel, choisissez Propriétés, puis augmentez la taille de 1 Mo à une valeur supérieure, par exemple 10 Mo.

Sinon, si vous préférez la ligne de commande, vous pouvez simplement exécuter ceci dans PowerShell ou l’invite de commandes :

wevtutil.exe sl Microsoft-Windows-PrintService/Operational /enabled:true

Cela devrait activer le journal. Attention : sur certaines configurations, des droits d’administrateur ou une modification rapide de la stratégie de groupe peuvent être nécessaires pour un fonctionnement optimal.

Méthode 2 : Activation via la stratégie de groupe

Pour que les informations relatives aux travaux d’impression incluent le nom du fichier, il est nécessaire de modifier une stratégie. Windows propose un paramètre pratique appelé « Autoriser le nom des travaux dans les journaux d’événements ».

  1. Ouvrez gpedit.msc depuis la boîte de dialogue Exécuter.
  2. Accédez à Configuration ordinateur > Modèles d’administration > Imprimantes.
  3. Recherchez et activez l’option « Autoriser le nom de la tâche dans les journaux d’événements ». Cela peut nécessiter une actualisation de la stratégie (à exécuter gpupdate /forcedans l’invite de commandes).

Une fois cette opération effectuée, les impressions suivantes incluront les informations du nom de fichier dans les journaux d’événements, ce qui facilitera grandement le suivi. Je ne comprends pas pourquoi Windows n’active pas cette fonctionnalité par défaut, mais bon, il faut bien que Windows complique les choses inutilement.

Consultation de l’historique d’impression avec l’Observateur d’événements

L’enregistrement des événements étant activé, vous pouvez consulter l’Observateur d’événements pour suivre les travaux d’impression. Accédez à Microsoft > Windows > Service d’impression > Opérationnel. Recherchez l’événement 307 : il s’agit de l’événement « impression de document ».Il contient des informations détaillées, notamment le nom du fichier, le nom de l’utilisateur, le nom de l’imprimante, le nombre de pages et la taille du fichier.

Voici un exemple de ce que vous pourriez voir dans les détails de l’événement :

Document 12, Microsoft Word - woshub.docx owned by maxadm on \\DESKTOP-PC617 was printed on HP LaserJet M1530 MFP Series PCL 6 through port USB001. Size in bytes: 31780. Pages printed: 1. No user action is required.

Les détails comprennent généralement :

  • Nom du document et application :woshub.docx
  • Qui l’a imprimé :maxadm
  • Nom de l’imprimante :HP LaserJet M1530 MFP Series PCL 6
  • Taille en octets et en pages — utile pour estimer les coûts d’impression ou résoudre les problèmes techniques.

Gardez simplement à l’esprit que ces journaux peuvent parfois être un peu étranges ou manquants si la journalisation n’a pas été activée assez tôt ; ne vous attendez donc pas à des données rétroactives.

Analyse des journaux d’impression avec PowerShell

C’est là que ça devient un peu plus complexe. L’Observateur d’événements est correct, mais si vous souhaitez des résumés rapides, des aperçus statistiques ou des rapports filtrés, PowerShell peut prendre le relais. Il vous suffit d’un script qui récupère les journaux, les filtre et, éventuellement, exporte les informations.

Voici un exemple simple : il récupère tous les travaux d’impression des dernières 24 heures et affiche les détails clés :

$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='SizeKb';expression={$_.properties[6].value/1024}}, @{label='Pages';expression={$_.properties[7].value}} $all2dayprint | Format-Table

Modifiez la période ou filtrez par utilisateur pour affiner les résultats. Vous souhaitez uniquement un utilisateur spécifique ? Ajoutez une ligne comme :

$PrintUsername='maxadm' $all2dayprint | Where-Object -Property UserName -like $PrintUsername | Format-Table

Pour exporter, utilisez :

$all2dayprint | Export-Csv -Path "c:\ps\Print Audit.csv" -NoTypeInformation -Encoding UTF8

Et si vous avez envie de faire les choses en grand, ouvrez-le dans une fenêtre quadrillée avec :

$all2dayprint | Out-GridView -Title "All print jobs"

Astuce : Vous pouvez même programmer l’exécution quotidienne de ce script avec le Planificateur de tâches, puis transférer les données vers une base de données (comme MySQL ou SQL Server).Selon le niveau de détail souhaité, c’est très pratique pour la traçabilité des données ou le suivi des coûts.

Pour une analyse plus poussée, consultez des outils comme Winhance sur GitHub.

Conclure

L’activation de la journalisation des impressions nécessite quelques étapes manuelles, mais une fois activée, elle fournit des informations très pertinentes. PowerShell permet de filtrer et de gérer les journaux, simplifiant ainsi la recherche d’informations. Attention cependant : si la journalisation n’a pas été activée dès le départ, des lacunes peuvent subsister. Malgré tout, c’est mieux que rien et bien plus performant que les fonctionnalités natives de Windows.

Résumé

  • Activez l’impression du journal des événements via l’Observateur d’événements ou PowerShell
  • Facultatif : modifier la stratégie de groupe pour inclure les informations sur le nom de fichier
  • Consultez les journaux PrintService pour connaître les événements d’impression avec l’ID d’événement 307.
  • Utilisez des scripts PowerShell pour analyser, filtrer ou exporter les journaux.

J’espère que ça aidera.