■周玉
如何远程操作重装系统并让电脑继续受控
■周玉
最近几天,在家用TeamViewer控制办公室电脑办公。这天晚上,办公室的电脑出问题了,远程控制没有问题,但软件运行出错,技术人员说系统出了问题,需要重装。但此时已是凌晨两点,去办公室已不太现实,时间紧迫。
经过一番思虑,我决定远程重装系统。用一键安装Windows的软件,只需要在Windows下做好设置,电脑启动后会自动利用ghost镜像文件即可进行安装。
由于办公室的电脑并没有做过备份,得使用一个新的ghost镜像文件,但重装后系统中的TeamViewer没有了,如何远程控制呢?思前想后,我打开软件GhostExplorer.exe,将手头的一个ghost镜像文件做一下修改,将安装好的TeamViewer文件夹复制到镜像文件里面的c:program files下面去,这样,新系统安装好后也就有了TeamViewer文件。
新系统安装好后,必须得运行TeamViewer才能受控,这也难不倒我,我编写了一个批处理a.bat,内容就是一行语句:"C:ProgramFilesTeamViewerVersion6TeamViewer.exe" --control"%1",作用就是启动TeamViewer,将这个批处理文件也放进了手头的ghost包中。这次放的位置是“C: Documents and SettingsAdministrator「开始」菜单程序启动”文件夹下,这样就意味着新系统装好后,启动完毕,会自动运行这个批处理,那么就能启动TeamViewer。
考虑到TeamViewer是有受控密码的。如果系统重装,用户设定的密码没有了,依然无法控制。那么只有找到TeamViewer用户设定密码的存储位置,将其放在远程的电脑中去。经过查找,我终于在注册表中找到[TeamView]一项。经过测试得知其中的SecurityPasswordAES这行就是密码,于是我将其导出,保存在E盘,取名为tea.reg。
如果直接把这个文件放进启动菜单,那么系统开机的时候确实会自动执行该注册表,但是这个时候不会导入,而是弹出一个导入的对话框,如果是在本机操作,单击确定就可以了,但这时远程电脑已不受我控制了,所以,会在这一步卡住。怎么办?我突然想到regedit.exe命令有个参数/s。如果加上了这个参数,在导入注册表时不会有任何提示,直接导入。于是我在批处理文件中添加了一条语句,现在a.bat的内容就变成了如下样子:
regedit.exe/s"e:tea.reg"
"C:Program FilesTeamViewerVersion6TeamViewer.exe" --control"%1"
第一行先导入注册表,第二行启动Teamviewer受控端。
这时我又忽然想到一个系统的网络延迟问题。批处理命令会在进入系统过后马上执行。但那台受控机器档次高,开机速度比较慢。XP在开机后,网络不能马上使用,初始化要等待一段时间。而TeamViewer早早运行,可能会因没有网络而产生错误。最好做点延时!批处理命令的延时比较麻烦,而且不准确。不过也没关系,我只需要延长一段大约的时间就可以了。经过再三斟酌,我再次修改了a.bat文件,如下所示:
regedit.exe/s"e:tea.reg"
@echo off
echo%time%
ping/n 60 127.1>nul
echo%time%
"C:ProgramFilesTeamViewerVersion6TeamViewer.exe" --control"%1"
其中ping/n 60 127.1>nul这行的意思就是等待60秒左右的时间。
计算机安装好后,都是自动获取的IP地址可能有所变化,怎么办呢?我首先查看了受控计算机的MAC地址,然后登录路由器,将其MAC地址和IP地址绑定在一起,这样,就算重装了系统,其获取的IP地址还是不会发生改变。
新安装的系统在一般情况下本地连接的防火墙是打开了的,那么TeamViewer这款软件在启动的时候会访问网络,这个时候防火墙会弹出对话框,如果不解除阻止的话,那么Windows的系统防火墙会自动阻止TeamViewer访问网络,这样我还是不能控制远程电脑。该怎么办呢?还是老方法,注册表。防火墙的打开和关闭,在注册表中肯定有所体现,只要导出就可以了,经过一番搜索和测试,我找到了这个项目。其中,这个EnableFirewall项就是是否打开防火墙的,如果值为0,则关闭防火墙,如果值为1,则打开防火墙。我同样将其导出,起名为fire.reg,存放在受控机的E盘。
最后修改启动菜单的批处理,使之能导入防火墙的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:ProgramFilesTeamViewerVersion6TeamViewer.exe" --control"%1"
所有工作准备就绪,开始操作。我首先通过共享文件夹,将我做好的注册表文件、ghost安装镜像文件(我修改过的)都复制到受控机器的指定位置,然后在受控机上运行一键还原,出现对话框后选择“自定义操作”,出现选择文件对话框,选择我刚才复制过去的ghost镜像文件并确定,只见系统窗口一暗,受控机器重新启动了。
下面的操作就不受我控制了,只能寄希望于我的所有构思完全正确。过了一段时间,我在CMD窗口输入ping 192.168.1.102 t这个命令(该IP是我为受控机器绑定的IP地址),耐心等待,在受控机还没有安装好,没有进入系统的时候,CMD窗口中就一直是Request timed out。
突然,CMD窗口出现了Reply from 192.168.1.102: bytes=32 time=3ms TTL=63,说明受控机的系统安装好了,我心中一阵狂喜,又等了几分钟,启动本机的TeamViewer,在伙伴ID中输入受控机的IP地址,然后点击连接到伙伴。过了一会,出现要求输入密码的对话框,这说明受控机的TeamViewer也正常启动了,输入我开始设置好的密码,点击“登录”,出现了受控机的屏幕,呵呵,成功了!我又可以远程办公了。