Wann das sinnvoll ist
Zum Entfernen alter Konfigurationsreste, gecachter Dateien, Hersteller-Tempordner oder veralteter Detection-Artefakte.
Deployment Snippet
Loeschen im Deployment ist riskant, wenn Pfade nicht sauber geprueft und Fehler nicht geloggt werden. Dieses Snippet ist fuer kontrolliertes Entfernen gedacht, nicht fuer blindes Aufraeumen.
function Remove-PathWithLog {
[CmdletBinding(SupportsShouldProcess)]
param(
[Parameter(Mandatory)]
[string]$Path,
[Parameter(Mandatory)]
[string]$LogFile,
[switch]$Recurse
)
if (-not (Test-Path -LiteralPath $Path)) {
Write-Log -Path $LogFile -Component 'Cleanup' -Type Info -Message "Pfad nicht vorhanden: $Path"
return
}
if ($PSCmdlet.ShouldProcess($Path, 'Entfernen')) {
try {
Remove-Item -LiteralPath $Path -Force -Recurse:$Recurse -ErrorAction Stop
Write-Log -Path $LogFile -Component 'Cleanup' -Type Info -Message "Pfad entfernt: $Path"
}
catch {
Write-Log -Path $LogFile -Component 'Cleanup' -Type Error -Message "Loeschen fehlgeschlagen fuer '$Path'. $($_.Exception.Message)"
throw
}
}
}
Zum Entfernen alter Konfigurationsreste, gecachter Dateien, Hersteller-Tempordner oder veralteter Detection-Artefakte.
Nie unvalidierte Pfade loeschen, keine breiten Wildcards in produktiven Skripten und bei Ordnern bewusst entscheiden, ob rekursiv gearbeitet werden soll.