2.7 KiB
System Inventory Script (PowerShell)
📖 Beschreibung
Dieses PowerShell-Skript dient zur Erfassung der auf einem Windows-System installierten Software inklusive Versionsinformationen.
Die Daten werden aus der Windows-Registry ausgelesen und anschließend als JSON-Datei exportiert. Der Dateiname enthält einen Zeitstempel, sodass mehrere Durchläufe versioniert gespeichert werden können.
⚙️ Funktionalität
Das Skript führt folgende Schritte aus:
-
Auslesen installierter Software
-
Liest Einträge aus den Registry-Pfaden:
HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*
-
Dadurch werden sowohl 64-Bit als auch 32-Bit Anwendungen erfasst
-
-
Filtern der Daten
- Es werden nur Einträge berücksichtigt, die einen Anzeigenamen (
DisplayName) besitzen
- Es werden nur Einträge berücksichtigt, die einen Anzeigenamen (
-
Extraktion relevanter Informationen
- Name
- Version
- Publisher
- Installationsdatum
-
Datenbereinigung
- Sortierung nach Name
- Entfernen von Duplikaten
-
Export
- Ausgabe als JSON-Datei
- Dateiname enthält einen Zeitstempel (Format:
MM-dd-yyyy-HH-mm)
▶️ Verwendung
Script ausführen
.\Get-InstalledSoftware.ps1
Nach der Ausführung wird eine Datei im aktuellen Verzeichnis erstellt:
software_<timestamp>.json
Beispiel:
software_03-25-2026-14-30.json
🧪 Beispielausgabe (JSON)
[
{
"Name": "Google Chrome",
"Version": "123.0.0",
"Publisher": "Google LLC",
"InstallDate": "20260320"
}
]
🛠️ Funktionen im Detail
Get-InstalledSoftware
Diese Funktion:
- iteriert über definierte Registry-Pfade
- liest installierte Programme aus
- formatiert die Daten als PowerShell-Objekte
- gibt eine bereinigte Liste zurück
💡 Hinweise
-
Nicht alle Programme tragen vollständige Informationen in die Registry ein → Felder wie Version oder InstallDate können leer sein
-
Microsoft Store Apps werden in der Regel nicht erfasst
-
Für erweiterte Erkennung kann zusätzlich
winget listverwendet werden
🚀 Erweiterungsmöglichkeiten
- Export als CSV oder HTML
- Vergleich mehrerer Inventories (Delta-Erkennung)
- Integration in ein Logging-Framework
- Automatisierung über geplante Tasks
- Remote-Ausführung auf mehreren Systemen
📌 Voraussetzungen
- Windows System
- PowerShell 5.1 oder höher
- Leserechte auf die Registry (Standard bei lokalen Admins)
🧠 Ziel des Projekts
Dieses Skript bildet die Grundlage für:
- Software-Inventarisierung
- Lizenz- und Compliance-Checks
- Update- und Patch-Management
- Automatisierte Systemanalysen