You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

批量远程清理Windows.old目录的脚本需求

批量远程清理Windows.old目录的脚本需求

针对你遇到的批量清理旧工作站Windows.old目录的痛点,我整理了几个无需用户交互、适合通过PDQ Deploy远程执行的方案,都是经过实践验证的:

方案1:使用DISM原生命令(推荐)

DISM是Windows自带的系统维护工具,专门有清理旧系统文件的命令,全程无交互,管理员权限即可执行,不会触发任何弹窗:

DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase

说明:

  • /StartComponentCleanup 会清理组件存储中的冗余文件,包括Windows.old里的旧系统备份
  • /ResetBase 参数会移除所有已安装的更新组件备份,确保彻底释放空间(注意:执行后无法卸载已安装的Windows更新)

方案2:PowerShell强制删除目录

如果DISM的清理不够彻底,或者你需要直接定向删除Windows.old,可以用这个PowerShell脚本,它会先获取目录所有权、修改权限,再强制删除:

# 检查Windows.old目录是否存在
if (Test-Path "$env:SystemDrive\Windows.old") {
    # 递归获取目录所有权
    takeown /F "$env:SystemDrive\Windows.old" /R /D Y
    # 赋予管理员完全控制权限
    icacls "$env:SystemDrive\Windows.old" /grant administrators:F /T
    # 强制递归删除目录,忽略错误
    Remove-Item "$env:SystemDrive\Windows.old" -Recurse -Force -ErrorAction SilentlyContinue
}

说明:

  • 这个脚本会绕过Windows对Windows.old的系统保护机制,确保删除成功
  • 全程无任何用户提示,适合批量远程执行

方案3:配置Cleanmgr自动清理预设

你之前尝试的cleanmgr.exe /SAGERUN:0其实可以实现无交互,只需要先配置好清理预设:

  1. 在一台测试机上以管理员身份运行 cleanmgr.exe /SAGESET:0
  2. 在弹出的窗口中勾选「以前的Windows安装」以及你需要清理的其他项,点击确定保存预设
  3. 导出注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches(这是Cleanmgr的预设配置)
  4. 通过PDQ Deploy先把这个注册表项推送到所有目标工作站,再远程执行 cleanmgr.exe /SAGERUN:0,就会自动按照预设清理,无需用户干预

注意事项:

  • 所有方案都必须以管理员权限运行,PDQ Deploy中要指定管理员账号作为运行身份
  • 清理Windows.old后将无法回滚到之前的Windows版本,建议提前确认用户没有回滚需求
  • 先在少量测试机上验证脚本效果,再批量部署到全量工作站

备注:内容来源于stack exchange,提问作者PedalTech

火山引擎 最新活动