A- A A+

Verwijderen C:\Windows.old

Ster inactiefSter inactiefSter inactiefSter inactiefSter inactief
 

Sinds enige tijd is Windows Server 2012 R2 uit en zijn er velen welke een in-place upgrade uitvoeren van Windows Server 2012 naar Windows 2012 R2. Daarnaast zijn er inmiddels een hoop mensen welke een upgrade naar Windows 8.1 en 10 hebben uitgevoerd.

Na de installatie van de upgrade blijft altijd de folder C:\Windows.old achter. Helaas neemt deze folder behoorlijk wat ruimte in beslag en is het beter deze weg te halen. Nu kan dat op drie verschillende methoden:

  1. Rechtstreeks wissen – Nadeel, het systeem gaat stuk, als het al lukt om het te doen vanwege de rechten;
  2. Doormiddel van Disk Cleanup – Nadeel, Je moet Desktop Experience installeren op een server;’
  3. Doormiddel van een script – Nadeel, je hebt junction.exe nodig uit de Windows SysInternals Suite.

De methodiek waar wij voor kiezen is nummer 3. Hiervoor volgt het onderstaande Powershell Script. Dit script gaat er van uit dat junction.exe is te vinden in het huidige PATH.

# Script to remove windows.old after an upgrade
# Assumes path to sysinternals is in the PATH env variable
$ErrorActionPreference = "Inquire"
junction.exe -accepteula -s -q C:\windows.old | out-file $env:temp\juncts.txt -force
foreach ($line in [System.IO.File]::ReadLines("$env:temp\juncts.txt"))
   {
    if ($line -match "^\\\\")
       {
         $file = $line -replace "(: JUNCTION)|(: SYMBOLIC LINK)",""
           & junction.exe -d "$file"
       }
    }
takeown /F C:\windows.old /R /D Y
echo y | cacls C:\windows.old /T /G Everyone:F

rm C:\windows.old -recurse -force
rm "$env:temp\juncts.txt" -force

Sla bovenstaande script op als Clean2012R2Upgrade.ps1 en voer deze uit vanuit powershell.