我首先尝试复制并运行cleanmgr.exe(磁盘清理工具),但是它对DLL的依赖过多,而DLL在Core / Hyper-V Server中不存在。
因此,我手动删除了该目录。
首先,我删除了所有连接点和符号链接。为此,我使用了SysInternals的junction.exe。将exe复制到您路径中的目录中。我运行它来获取所有路口的列表:
c:\tools\junction.exe -s -q C:\windows.old > %temp%\junc.txt
我打开了一个PowerShell:
start powershell.exe
并运行以下脚本以找到相关行并再次执行junction.exe:
foreach ($line in [System.IO.File]::ReadLines("$env:temp\junc.txt"))
{
if ($line -match "^\\\\")
{
$file = $line -replace "(: JUNCTION)|(: SYMBOLIC LINK)",""
& c:\tools\junction.exe -d "$file"
}
}
这删除了我系统上的所有连接点和单个符号链接。
回到cmd.exe,我现在执行了三个命令以清除权限并删除所有文件:
takeown /F C:\windows.old /R /D Y
cacls C:\windows.old /T /G Everyone:F
rd /s /q C:\windows.old
在测试中,我安装了新的Hyper-V服务器2012,然后升级到2012 R2,Windows.old现在消失了,系统运行良好,所有旧的联结目标均完好无损。