IT 换机迁移助手:一键备份恢复 Python 脚本

背景

企业 IT 部门最头疼的场景之一:员工换电脑。

  • Chrome 收藏夹要迁移
  • SharePoint 团队网站挂载要恢复
  • 已安装软件要重新部署
  • 下载文件夹等数据要手动备份到 OneDrive

传统做法是 IT 工程师一台台手动处理,费时且容易遗漏。最近我在 AI 辅助下完成了一套 Python 脚本,实现了旧电脑一键导出 → OneDrive 暂存 → 新电脑一键恢复的全流程自动化。

两个脚本,各司其职

1️⃣ export_tool_admin.py — 旧电脑端(抓取 & 备份)

功能:

  • ✅ 检查管理员权限(必须右键”以管理员身份运行”)
  • ✅ 自动定位当前用户空间和企业 OneDrive 路径
  • ✅ 备份 Chrome 收藏夹(Bookmarks 文件)
  • ✅ 精准抓取 SharePoint 库的 SiteIDWebIDListID(从注册表读取)
  • ✅ 全量扫描已安装软件(用户级 + 系统64位 + 系统32位卸载注册表)
  • ✅ 弹出勾选界面,让员工选择新电脑上需要保留的软件
  • ✅ 生成迁移清单存入 OneDrive 的 IT_Migration_Backup 目录
  • ✅ 弹出红色加粗警告窗口,提醒 IT 现场手动备份无法自动处理的目录(下载文件夹、微信/钉钉本地数据、D盘业务文件等)

2️⃣ restore_tool_admin.py — 新电脑端(恢复 & 部署)

功能:

  • ✅ 检查管理员权限
  • ✅ 从 OneDrive 读取迁移清单
  • ✅ 强杀 Chrome 进程后无缝还原收藏夹
  • ✅ 将 SharePoint 挂载信息注入 HKLM 全局策略(TenantAutoMount),永久生效
  • ✅ 通过 Winget 从公司门户/企业私有源静默安装软件(失败降级为用户级安装)
  • ✅ 弹出绿色交付报告,汇总恢复状态并提醒 IT 工程师:重启电脑、检查手动备份数据

技术亮点

特性 实现方式
SharePoint 配置提取 读取 HKCU\Software\Microsoft\OneDrive\Accounts 注册表,解析 ScopeId 中的 SiteId/WebId/ListId
软件清单扫描 遍历三个注册表路径(HKCU Uninstall + HKLM Uninstall + HKLM Wow6432Node Uninstall)
静默安装 Winget --silent --scope machine,失败自动降级为用户级
全局策略注入 写入 HKLM\SOFTWARE\Policies\Microsoft\OneDrive\TenantAutoMount
管理员权限 ctypes.windll.shell32.IsUserAnAdmin() 检测 + PyInstaller --uac-admin 清单
GUI 界面 Tkinter + 中文界面,大尺寸弹窗确保信息不被忽略

使用流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
旧电脑(管理员运行)

├─ 1. 运行 export_tool_admin.py
├─ 2. 勾选需要保留的软件
├─ 3. 确认后自动备份到 OneDrive
├─ 4. 按提示手动备份下载文件夹等


OneDrive 云端同步


新电脑(管理员运行)

├─ 1. 确保 OneDrive 已同步完成
├─ 2. 运行 restore_tool_admin.py
├─ 3. 自动恢复收藏夹 + SharePoint + 软件
├─ 4. 查看交付报告,重启电脑


✅ 换机完成

打包成 .exe

1
2
3
pip install pyinstaller
pyinstaller --onefile --uac-admin --name "IT换机助手-旧电脑全量备份" export_tool_admin.py
pyinstaller --onefile --uac-admin --name "IT换机助手-新电脑全量恢复" restore_tool_admin.py

--uac-admin 确保生成的 exe 自动请求管理员权限,员工双击即可。

适用场景

  • 🔹 企业 IT 部门批量换机
  • 🔹 员工离职/入职设备交接
  • 🔹 设备故障后快速恢复工作环境
  • 🔹 需要标准化软件部署流程的团队

注意事项

  1. 必须以管理员身份运行 — 涉及注册表 HKLM 写入和 Winget 系统级安装
  2. OneDrive 必须已登录并同步 — 脚本依赖 OneDrive 作为中转存储
  3. Winget 需要公司门户配置 — 企业私有软件源需提前配置,否则只能从 Winget 公共源安装
  4. 无法自动备份的数据 — 下载文件夹、微信/钉钉本地数据、非系统分区文件需要手动处理

总结

这套脚本的核心思路是:用 OneDrive 作为桥梁,把旧电脑的配置”搬运”到新电脑。在 AI 辅助下,从需求梳理到代码实现、从注册表解析到 GUI 界面,开发效率大幅提升。对于没有专业 IT 运维工具的中小企业,这是一个低成本的换机自动化方案。

💡 完整代码已整理好,需要的话可以联系我要。