Detection Artikel

Detection mit PowerShell so bauen, dass sie im Betrieb nicht bricht.

Detection ist dann gut, wenn sie Version, Kontext und reale Installationsartefakte sauber widerspiegelt. Dieser Artikel zeigt robuste Muster fuer Dateien, Registry und Sonderfaelle.

Worauf gute Detection achtet

Sie prueft keine zufaelligen Dateien, sondern stabile Artefakte. Dazu gehoeren Dateiversionen, produktnahe Registry-Werte oder bewusst gewaehlte MSI-Indikatoren.

Hauefige Fehlerquelle

Ein Paket installiert per User, die Detection sucht aber nur unter HKLM oder in Program Files. Das fuehrt zu dauernden Neuangeboten.

PowerShell
$file = 'C:\Program Files\App\app.exe'
if (Test-Path $file) {
  $version = (Get-Item $file).VersionInfo.ProductVersion
  if ([version]$version -ge [version]'5.2.0') {
    Write-Output 'Detected'
    exit 0
  }
}

exit 1

Wann Datei-Detection sinnvoll ist

  • EXE-basierte App ohne saubere MSI-Identitaet
  • Stabile Produktdatei mit belastbarer Version
  • Keine haeufig wechselnden Pfade

Wann Registry besser ist

  • Produkt pflegt saubere DisplayVersion
  • Dateien liegen je nach Sprache oder Benutzerprofil anders
  • Per-User-Installationen muessen ausgewertet werden

Wann MSI sinnvoll ist

  • Nur bei echtem MSI
  • Wenn Upgrade-/Produktlogik sauber dokumentiert ist
  • Wenn ProductCode nicht bei jedem Kleinstupdate unbrauchbar wird

Freigaberegel

Eine Detection gilt erst dann als brauchbar, wenn sie nach Install, Reinstall, Update und Uninstall in frischer VM sowie im Zielkontext getestet wurde.

Detection Recipes fuer Copy-Hilfe

Wenn du statt Grundsatztext lieber direkt mehrere typische Detection-Muster suchst, gibt es jetzt eine eigene Recipe-Sammlung fuer Datei, Registry, MSI, per-user und kombinierte Faelle.

Detection Recipes lesen

Warum das sinnvoll getrennt ist

Dieser Artikel erklaert die Denkweise. Die Recipe-Seite liefert konkrete Startmuster. Beides zusammen ist in der Praxis deutlich nuetzlicher.