Windows update törölhetetlen ideiglenes mappáinak törlése a meghajtó gyökeréből

Bizonyára sokan futottak már bele ebbe a jelenségbe, amikor a Windows a legtöbb szabad hellyel rendelkező meghajtót teleszemetelte ilyen számokból, pontosabban hexadecimális karakterekből álló (pl. C:\a772b112c233d2321) mappákkal, amiket nem lehet törölni. A probléma a mappák jogosultságával van, mivel a system felhasználó tulajdonaként jönnek létre, ezért le kell cseréljük a tulajdonost, majd azt alkalmazni az alatta lévő objektumokra is. Nagy számú mappa esetében viszont ez egy élet munkája lenne, így ebben segít nekünk az alábbi script:

# Hexadecimális nevű Windows Update / .NET telepítési mappák törlése a C:\ gyökérből
# Futtasd rendszergazdai jogokkal!

$rootPath = "C:\"
$pattern = '^[0-9A-Fa-f]{8,}$'

$folders = Get-ChildItem -Path $rootPath -Directory | Where-Object { $_.Name -match $pattern }

foreach ($folder in $folders) {
    Write-Host "Feldolgozás: $($folder.FullName)" -ForegroundColor Cyan
    
    try {
        # Tulajdonjog átvétele (rekurzívan) – CMD parancson keresztül
        cmd /c "takeown /F `"$($folder.FullName)`" /R /D Y" | Out-Null

        # Teljes hozzáférés adása az Administrators csoportnak
        cmd /c "icacls `"$($folder.FullName)`" /grant Rendszergazda:(F) /T /C" | Out-Null

        # Törlés
        Remove-Item -Path $folder.FullName -Recurse -Force -ErrorAction Stop

        Write-Host "Törölve: $($folder.FullName)" -ForegroundColor Green
    }
    catch {
        Write-Host "Hiba: $($folder.FullName) - $($_.Exception.Message)" -ForegroundColor Red
    }
}

Write-Host "`nKész. Ellenőrizd a C:\ gyökerét." -ForegroundColor Yellow

A kész script letölthető innen.

Vélemény, hozzászólás?

Facebook