先说几个核心判断:远程重装系统这件事,听起来虽然有些复杂,但只要方法正确,完全可以在家独立完成。下面分享一次凌晨的实战经验,供大家参考。
凌晨2:00——机房告急
最近几天,我一直通过TeamViewer在家远程办公。这天晚上,办公室的电脑突然出现问题——远程控制功能正常,但运行监控软件时频繁报错。技术人员判断是系统故障,建议重装系统。问题是,当时已是凌晨两点,去办公室显然不现实,但时间紧迫,必须立即解决。
凌晨2:05——决定重装
经过反复思考,我决定直接远程重装系统。手头有一键安装Windows的工具,只需在Windows下做好设置,重启后它就会自动调用ghost镜像文件进行安装,理论上完全可行。
凌晨2:10——定制镜像文件
办公室这台电脑没有提前做过系统备份,因此需要一个新的ghost镜像文件。但问题来了:重装后系统中就没有TeamViewer了,如何继续远程控制?经过思考,我打开GhostExplorer.exe这个软件,取出手头的一个ghost镜像文件进行修改——直接将已经安装好的TeamViewer文件夹复制到镜像里的C:\Program Files目录下。这样,新系统安装完成后,TeamViewer就已经内置其中。
凌晨2:25——制作启动菜单批处理
系统装好之后,还需要让TeamViewer自动启动。这并不难,我编写了一个简单的批处理文件a.bat,内容只有一行:"C:\Program Files\TeamViewer\Version6\TeamViewer.exe" --control "%1"。把这个批处理放入ghost包的C:\Documents and Settings\Administrator\「开始」菜单\程序\启动文件夹下——这样一来,新系统启动完毕,就会自动运行这个批处理,TeamViewer也随之启动。
凌晨2:33——搜寻受控密码,制作reg文件
但这还不够。TeamViewer有一个受控密码,系统重装后原来的密码就会丢失,依然无法控制。必须找到存储密码的位置,将其也放入远程电脑中。经过一番查找,最终在注册表里找到[TeamView]这一项(图1)。测试发现,SecurityPasswordAES这个值就是密码所在。于是将其导出,保存为E:\tea.reg。

凌晨2:42——让启动菜单自动导入reg文件
直接把tea.reg放进启动菜单行不行?系统开机时确实会执行这个注册表文件,但问题在于,它不是静默导入的,而是会弹出一个导入确认对话框——在本机操作点确定即可,可远程电脑已经不受控制,这就卡住了。怎么办?突然想到regedit.exe有一个/s参数,加上之后导入注册表时不会有任何提示。于是修改批处理,现在a.bat变成这样:
regedit.exe /s "e:\tea.reg"
"C:\Program Files\TeamViewer\Version6\TeamViewer.exe" --control "%1"
第一行静默导入密码,第二行启动TeamViewer受控端。
凌晨2:50——再次修改批处理,设置延时
刚改完,又想到一个潜在问题:网络延迟。批处理会在系统进入桌面后立即执行,但那台机器配置不低,开机速度比较慢。Windows XP在开机后,网络初始化需要一小段时间,如果TeamViewer启动太早,可能因为网络还没准备好而出错。加点延时比较稳妥。批处理里做延时比较麻烦,但也难不倒——用ping命令模拟延时即可。最终的a.bat变成这样:
regedit.exe /s "e:\tea.reg"
@echo off
echo %time%
ping /n 60 127.1 >nul
echo %time%
"C:\Program Files\TeamViewer\Version6\TeamViewer.exe" --control "%1"
其中ping /n 60 127.1 >nul的意思就是等待大约60秒。
凌晨2:55——登录路由器,绑定IP与MAC地址
还有一件事:重装系统后,电脑的IP地址可能会变化(如果是自动获取IP)。先查清楚受控电脑的MAC地址,然后登录路由器,将它的MAC地址和IP地址绑定在一起。这样就算系统重装了,IP地址也不会变,远程连接时就不必担心找不到机器了。
凌晨3:00——搜寻注册表,导出防火墙reg文件
新系统默认会开启本地连接的防火墙。TeamViewer启动时需要访问网络,防火墙会弹窗询问是否允许——如果无人点击“允许”,就会被自动阻止。还是老办法:到注册表里查找。经过一番搜索和测试,找到了防火墙相关的注册表项(图2)。其中EnableFirewall这个值决定了防火墙是否开启:0表示关闭,1表示打开。将其导出为E:\fire.reg。

凌晨3:03——让批处理能导入防火墙reg文件
再次修改启动菜单的批处理,把防火墙的注册表也一并导入。现在a.bat变成这样:
regedit.exe /s "e:\tea.reg"
regedit.exe /s "e:\fire.reg"
@echo off
echo %time%
ping /n 60 127.1 >nul
echo %time%
"C:\Program Files\TeamViewer\Version6\TeamViewer.exe" --control "%1"
凌晨3:05——远程复制文件,重装系统
所有准备工作就绪。通过共享文件夹,把做好的注册表文件、修改过的ghost镜像文件全部复制到受控电脑的指定位置。然后在受控机上运行一键还原工具,选择“自定义操作”(图3),选中刚才复制过去的ghost镜像文件,确认。只见系统窗口一暗,机器重启了。

凌晨3:10——漫长的等待
接下来只能干等了。打开CMD窗口,输入ping 192.168.1.102 -t(这个IP已经提前绑定好)。系统还没装好的时候,CMD里一直显示Request timed out。
凌晨3:28——恢复正常
突然,CMD窗口里出现了Reply from 192.168.1.102: bytes=32 time=3ms TTL=63——系统装好了!心里一阵狂喜。又等了几分钟,启动本机的TeamViewer,在伙伴ID里输入受控机的IP地址(图4),点击“连接到伙伴”。过了一会儿,密码输入框出现了——说明受控机上的TeamViewer也正常启动了。输入预先设定好的密码,点击登录,受控机的桌面清晰地呈现在屏幕上。成功了!

