# Betriebsempfehlungen

LLMS index: [llms.txt](/v1.0.1.0/llms.txt)

---

Diese Seite beschreibt empfohlene Betriebsabläufe für PackageUpdateInfo in interaktiven Shells, Profilen und Automatisierungen.

## Beginne mit dem Standardverhalten

Setze die Einstellungen zurück, bevor du benutzerdefinierte Anpassungen vornimmst, insbesondere auf gemeinsam genutzten Systemen:

```powershell
Set-PackageUpdateSetting -Reset
```

Prüfe die aktuelle Konfiguration und Regeln:

```powershell
Get-PackageUpdateSetting
Get-PackageUpdateRule -IncludeDefaultRule
```

## Nutze Update-Intervalle, um Rauschen zu reduzieren

`Get-PackageUpdateInfo` respektiert `UpdateCheckInterval`. Wenn die letzte effektive Überprüfung noch innerhalb des konfigurierten Intervalls liegt, gibt das Cmdlet frühzeitig zurück.

Lege ein Intervall fest, das zu deiner Umgebung passt:

```powershell
Set-PackageUpdateSetting -UpdateCheckInterval (New-TimeSpan -Hours 6)
```

Verwende `-Force` nur für ad-hoc Überprüfungen:

```powershell
Get-PackageUpdateInfo -Force
```

## Bevorzuge nicht-blockierende Shell-Starts

Ein praktisches Profilmuster ist:

```powershell
Start-Job -ScriptBlock {
    Get-PackageUpdateInfo -ShowOnlyNeededUpdate | Export-PackageUpdateInfo
} | Out-Null

Import-PackageUpdateInfo
```

Warum das gut funktioniert:

- Der Start bleibt schnell, weil der Import zwischengespeicherte Daten liest.
- Die aufwändige Online-Überprüfung läuft im Hintergrund.
- Du erhältst in jeder Sitzung eine nützliche Übersicht über Updates.

## Überprüfungen explizit bei Bedarf einschränken

Verwende Scope-Parameter, wenn Berechtigungen zwischen Benutzer- und Systemmodulen unterschiedlich sind:

```powershell
Get-PackageUpdateInfo -CurrentUser
Get-PackageUpdateInfo -AllUsers
```

Nutze `-Repository` in Umgebungen mit mehreren konfigurierten Repositories:

```powershell
Get-PackageUpdateInfo -Repository PSGallery
```

## Regeln sorgfältig entwerfen

Verwende breite Ausschlüsse nur, wenn es beabsichtigt ist. Das Ausschließen großer Muster kann wichtige Updates verbergen.

Erstelle fokussierte, benutzerdefinierte Regeln für Module mit hoher Änderungsrate:

```powershell
Add-PackageUpdateRule -IncludeModuleForChecking "Az.*" -ReportChangeOnMajor $true -ReportChangeOnMinor $true -ReportChangeOnBuild $false -ReportChangeOnRevision $false
```

Überprüfe die Priorität der Regeln, indem du alle Regeln auflistest:

```powershell
Get-PackageUpdateRule -IncludeDefaultRule | Sort-Object Id
```

## Exportieren/Importieren gezielt einsetzen

Standardpfade für Export und Import sind plattformspezifisch und enthalten PowerShell-Edition sowie die Hauptversion im Dateinamen. Das hilft, Daten verschiedener Laufzeiten nicht zu vermischen.

Gängige Exportoptionen:

```powershell
Get-PackageUpdateInfo | Export-PackageUpdateInfo -OutputFormat XML
Get-PackageUpdateInfo | Export-PackageUpdateInfo -OutputFormat JSON
Get-PackageUpdateInfo | Export-PackageUpdateInfo -OutputFormat CSV
```

Empfohlene Vorgehensweise:

- Verwende XML, wenn du typisierte Objekte für einen erneuten Import bewahren möchtest.
- Nutze JSON oder CSV für externe Berichte und Integrationen.
- Nutze `-IncludeTimeStamp` für eine historische Nachverfolgung.

## Benachrichtigungen sinnvoll nutzen

Verwende Toast-Benachrichtigungen nur dort, wo sie Mehrwert bieten:

- Auf Windows-Hosts mit installiertem BurntToast.
- Bei Sitzungen, in denen interaktive Warnungen erwartet werden.

Für Server, CI und nicht-interaktive Shells bevorzugst du exportierte Berichte gegenüber Toast-Benachrichtigungen.
