把权(wei)力(xin)装进笼子

鉴于最近两个月以来愈发频繁的“设备网络环境异常”已经影响到微信的正常使用,基于前两天ChatGPT对微信桌面版行为的分析,结论已经非常明显:微信管的太宽了,整日仗着管理员权限扫描这个、监控那个,一有风吹草动就打小报告,小小的PC已经很难容得下它。但它又辣么重要,该怎么办呢?

给它建个独栋别墅吧。

我们可以创建一个虚拟机,然后把微信、QQ、企业微信统统请进去,让它们你侬我侬。这个系统将无比纯洁,腾讯三件套们拿着管理员权限可以每天对着一尘不染的别墅自我陶醉,岂不是美事一件。

当然,考虑到三件套的历史文件动辄数百个GB,如果全部迁移到虚拟机内,似乎有点过于庞大;但若不迁移,历史记录查询起来很不方便。最佳的方式是“双栈”使用,同一份数据文件,宿主机也能用,虚拟机也能用,这样就完美了,偶尔着急的时候还可以请他们仨中的某一个出来放放风。

一、安装虚拟机

考虑到节约资源占用,虚拟机系统采用Windows Server 2025。实践表明,虽然Windows Server 2025本身只需要2G内存即可运行,但在“三件套”的加持下,分配8G的内存较为合适。

二、设置共享文件夹

Vmware Workstation Pro可以将宿主机上的文件夹设置为“共享文件夹”,并映射成虚拟机的网络驱动器。虚拟机甚至不用关闭,直接在“虚拟机”-“设置”-“选项”-“共享文件夹”中进行设置即可。我们可以在这里把微信、QQ的存储文件夹统统映射出来,然后加载到虚拟机的网络驱动器“Z:”盘之中。然后在虚拟机中安装微信、QQ,首次登录后将存储目录设置为Z:\xwechat_files、Z:\QQ Files\Tencent Files。

这一招经对微信、QQ都没问题,但对企业微信无效,可能因为安全性方面的考虑,企业微信并不支持将存储路径设置为网络驱动器(甚至连mklink也不行)。

三、创建新的vmdk虚拟机硬盘暗渡陈仓

为了将企业微信搬入新家,可以用vmware创建一个新的虚拟硬盘,假设为wxwork.vmdk,动态大小,上限为500G。之后要先将它挂载到宿主机上。很遗憾,vmware的新版本已经不再提供vm-mount工具,而windows默认不支持vmdk。这就需要用到一款新的工具osfmount。它在这里下载:https://www.osforensics.com/tools/mount-disk-images.html,安装之后,默认在这里创建程序文件夹:C:\Program Files\OSFMount。我们将用到其中的osfmount.com程序。

编辑一个attach.bat文件(注意编码是ANSI):

@echo off
cd /d "C:\Program Files\OSFMount"
osfmount.com -a -t file -f "D:\Vmware\WXWork.vmdk" -m T:
pause

然后为它创建一个快捷方式,并在属性中设置为管理员运行。在宿主机上运行它,将会把wxwork.vmdk挂载为T盘。

之后就可以在宿主机的企业微信中,将存储路径设置到T盘——企业微信将需要一些时间完成数据迁移工作。完成后,企业微信的历史数据就全部转移到了wxwork.vmdk这个虚拟硬盘中。

再编辑一个detach.bat文件(注意编码是ANSI):

@echo off
cd /d "C:\Program Files\OSFMount"
osfmount.com -D -m T:
pause

同样创建快捷方式,属性中设置为管理员运行。它将强行卸载T盘(-D是强制卸载参数,实践证明-d会出现权限不足问题)。

必须卸载宿主机中对vmdk的挂载,才能在vmware中挂载它,反之亦然(虚拟机关机)。这不难理解:我们无法同时在两个地方挂载同一个硬盘文件。

在宿主机中卸载掉wxwork.vmdk后,在虚拟机关机的情况下,为虚拟机添加NVme硬盘,选择已有硬盘,选择wxwork.vmdk,将它添加到虚拟机。后面就简单了,在虚拟机中安装企业微信,将存储路径设置到添加的硬盘上,就可以正常运行了。

四、放风

经过以上操作,微信、QQ这两个程序是随时可以出来放风的,只需要在虚拟机中关闭微信或QQ,接着在宿主机上打开微信或QQ,即可无缝衔接使用。

企业微信则稍微麻烦一点:如果只是临时在宿主机上使用,那么可以将虚拟机关机,然后运行attach.bat将vmdk挂载到宿主机,接着在宿主机上运行企业微信即可;如果需要放风较长时间,建议在虚拟机关机后移除添加的wxwork.vmdk硬盘,这样再启动虚拟机就不会影响宿主机上的企业微信了。

无论如何,“三件套”的数据文件有且只有一份,不会出现两个版本。