Comment identifier qui a installé ou désinstallé un programme sous Windows

Déterminer qui a installé ou désinstallé un programme sur un serveur ou un poste de travail Windows peut s’avérer complexe, surtout dans les grandes entreprises où plusieurs administrateurs interviennent. Heureusement, Windows enregistre de nombreuses informations de ce type dans l’Observateur d’événements. Avec un peu d’exploration, il est généralement possible de retrouver l’utilisateur à l’origine de ces installations et désinstallations parfois obscures. C’est extrêmement utile pour les journaux d’audit ou pour le dépannage en général, lorsque des anomalies apparaissent. Vous apprendrez ainsi à analyser les journaux de l’Observateur d’événements pour identifier l’utilisateur qui a effectué certaines modifications, qu’il s’agisse d’une installation ou d’une désinstallation.

Lors de l’installation ou de la désinstallation d’applications Windows « classiques » à l’aide du programme d’installation MSI, Windows enregistre automatiquement ces événements dans le journal des applications, avec des identifiants spécifiques. Vous pouvez filtrer ces identifiants pour affiner votre recherche. Les principaux identifiants à rechercher sont 11707 (installation MSI réussie) et 11724 (désinstallation).Ces événements contiennent généralement des informations telles que le nom du programme et l’utilisateur à l’origine de l’action, mais il est nécessaire d’examiner plus en détail les informations concernant l’utilisateur.

  • 11707 — Installation MSI réussie
  • 11724 — Événement de suppression MSI

Pour ce faire, ouvrez l’Observateur d’événements en saisissant `zabbix` eventvwr.mscdans la boîte de dialogue Exécuter. Accédez à Journaux Windows > Application et filtrez par ID d’événement (vous pouvez le faire dans le menu Filtre).Une fois les événements pertinents trouvés, développez-les pour consulter leur description détaillée. Vous y trouverez des lignes telles que « Produit : Zabbix Agent 2 (64 bits) – Suppression réussie », et surtout, les détails de l’événement indiqueront qui a effectué l’opération. Les informations de l’utilisateur se trouvent généralement dans la propriété « Utilisateur », qui peut correspondre à un nom d’utilisateur ou à un compte de domaine.

Parfois, la recherche manuelle dans l’Observateur d’événements est fastidieuse ; c’est là que PowerShell se révèle précieux. Vous pouvez exécuter un script pour récupérer tous les événements d’installation/désinstallation d’un programme spécifique, ainsi que l’auteur de ces actions : un outil indispensable pour la traçabilité des opérations. Copiez et exécutez simplement ce script en remplaçant « Zabbix » par le nom du logiciel que vous surveillez :

Get-WinEvent -FilterHashtable @{LogName="Application"; ID=11707, 11724; ProviderName='MsiInstaller'} | Where-Object { $_. Message -like '*Zabbix*' } | Select TimeCreated, @{Name='Username'; Expression={(New-Object System. Security. Principal. SecurityIdentifier($_.userid)).Translate([System. Security. Principal. NTAccount]).Value}}, Message

Remarque : Le script extrait le useridchamp qui correspond à un SID, puis le convertit en un nom de compte convivial. De légères modifications peuvent être nécessaires dans certaines configurations, mais il fonctionne dans la plupart des cas.

Autre astuce pratique : le Moniteur de fiabilité Windows surveille également les installations et désinstallations, et il est très utile pour un aperçu rapide des modifications récentes. C’est parfois plus simple que de parcourir les journaux, surtout si vous n’êtes pas à l’aise avec PowerShell ou les journaux d’événements.