Wie man herausfindet, wer ein Programm unter Windows installiert oder deinstalliert hat

Herauszufinden, wer ein Programm auf einem Windows-Server oder einer Workstation installiert oder deinstalliert hat, kann eine echte Herausforderung sein, insbesondere in großen Unternehmensumgebungen, wo mehrere Administratoren aktiv sind. Glücklicherweise protokolliert Windows viele dieser Informationen in der Ereignisanzeige. Mit etwas Recherche lassen sich die Benutzerdetails hinter diesen kniffligen Installations- und Deinstallationsereignissen meist ermitteln. Dies ist äußerst hilfreich für die Protokollierung von Vorgängen oder die allgemeine Fehlersuche, wenn etwas nicht zusammenpasst. Sie lernen, wie Sie die Protokolle der Ereignisanzeige durchsuchen, um den Benutzer zu identifizieren, der bestimmte Programmänderungen vorgenommen hat – sei es eine Neuinstallation oder eine Deinstallation.

Bei der Installation oder Deinstallation von klassischen Windows-Anwendungen mithilfe des MSI-Installers protokolliert Windows diese Ereignisse automatisch mit spezifischen IDs im Anwendungsprotokoll. Sie können diese Ereignis-IDs filtern, um die Aktivitäten einzugrenzen. Besonders relevant sind die IDs 11707 (erfolgreiche MSI-Installation) und 11724 (Deinstallation).Diese Ereignisse enthalten in der Regel Details wie den Programmnamen und den Benutzer, der die Aktion ausgelöst hat. Um die Benutzerinformationen einzusehen, müssen Sie jedoch genauer hinschauen.

  • 11707 — erfolgreiche MSI-Installation
  • 11724 — MSI-Entfernungsereignis

Öffnen Sie dazu die Ereignisanzeige, indem Sie eventvwr.mscim Ausführen-Dialog „Ereignisanzeige“ eingeben. Navigieren Sie zu „Windows-Protokolle“ > „Anwendung“ und filtern Sie nach den entsprechenden Ereignis-IDs (über das Filtermenü).Sobald Sie die relevanten Ereignisse gefunden haben, erweitern Sie diese und sehen Sie sich die detaillierte Beschreibung an. Sie finden dort Zeilen wie „ Produkt: Zabbix Agent 2 (64-Bit) – Entfernung erfolgreich abgeschlossen “.Wichtig ist, dass die Ereignisdetails den Benutzer anzeigen. Die Benutzerinformationen befinden sich üblicherweise unter der Eigenschaft „ Benutzer “, bei der es sich um einen Benutzernamen oder ein Domänenkonto handeln kann.

Manchmal ist die manuelle Suche in der Ereignisanzeige mühsam, und hier kommt PowerShell ins Spiel. Sie können ein Skript ausführen, das alle Installations-/Deinstallationsereignisse eines bestimmten Programms sowie den jeweiligen Verursacher abruft – eine echte Erleichterung für die Protokollierung von Audit-Protokollen. Kopieren Sie einfach den folgenden Code und führen Sie ihn aus, wobei Sie „Zabbix“ durch die Bezeichnung der zu überwachenden Software ersetzen:

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

Hinweis: Das Skript liest das useridFeld aus, das eigentlich eine SID ist, und wandelt es dann in einen benutzerfreundlichen Kontonamen um. Bei manchen Konfigurationen sind möglicherweise geringfügige Anpassungen erforderlich, aber in den meisten Fällen funktioniert es.

Ein weiterer praktischer Tipp: Der Windows- Zuverlässigkeitsmonitor protokolliert auch Installationen und Deinstallationen und eignet sich hervorragend für einen schnellen Überblick über die letzten Änderungen. Das ist manchmal einfacher als das Durchsuchen von Protokollen, insbesondere wenn Sie mit PowerShell oder Ereignisprotokollen nicht vertraut sind.