我已经在具有 Hyper-V Server 2012 的服务器上安装了 Hyper-V Server 2012 R2。当我这样做时,标准Windows.old
文件夹被创建。我现在想安全地删除该文件夹。使用完整 GUI 执行此操作的标准方法是使用磁盘清理,但我当然在 Hyper-V 服务器上没有该选项。
在这种情况下,是否有正式的方法可以删除该文件夹?我知道如果这是服务器核心,我可以安装完整的 GUI,包括桌面体验,但是仅仅为了干净地删除一个文件夹就很废话了。
我询问的主要原因,而不是仅仅做rmdir /s
或类似的事情,是该Windows.old
文件夹有很多连接点,我不想破坏生产操作系统副本中的任何内容作为这样做的一部分。
我首先尝试复制并运行 cleanmgr.exe(磁盘清理工具),但它对 Core/Hyper-V 服务器中不存在的 DLL 有太多依赖。
所以我手动删除了目录。
首先,我删除了所有连接点和符号链接。为此,我使用了 SysInternals 的junction.exe。将 exe 复制到路径中的目录中。我运行它以获取所有路口的列表:
我打开了一个 PowerShell:
并运行以下脚本以找到相关行并再次执行 junction.exe:
这删除了我系统上的所有连接点和单个符号链接。
回到 cmd.exe 我现在执行了三个命令来清除权限并删除所有文件:
在我的测试中,我安装了一个新的 Hyper-V 服务器 2012,然后升级到 2012 R2,Windows.old 现在消失了,系统运行良好,所有旧的连接目标都完好无损。
我使用了 Peter H 的答案并确认它确实有效,但是我需要在多台服务器上执行此操作,因此我将他的代码修改为一个 powershell 脚本,该脚本可以在本地执行,也可以通过 PS 从另一台机器远程执行。这是 .ps1 文件: