Deployment Snippet

Dateien und Ordner mit Logging sicher loeschen.

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.

PowerShell
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
        }
    }
}

Wann das sinnvoll ist

Zum Entfernen alter Konfigurationsreste, gecachter Dateien, Hersteller-Tempordner oder veralteter Detection-Artefakte.

Worauf man achten muss

Nie unvalidierte Pfade loeschen, keine breiten Wildcards in produktiven Skripten und bei Ordnern bewusst entscheiden, ob rekursiv gearbeitet werden soll.