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.