某些收费软件授权价格暂时还不在我能承受的范围内,但又暂时找不到什么免费或者价格更低的替代品,比如TMSR,不仅是个能分析帧类型的切片工具,还能自动识别CM和TS档内不同段内容。于是在经过了Windows Sandbox(以下简称WSB)上接近半年的试用(白嫖)体验后,我写下了这篇文章,但由于WSB和依赖的Hyper-V都没有可供参考的公开文档,暂时没有理论依据支撑,仅供参考和为其他研究提供依据。

可能原理

试用严格限制每台机器只有一次试用机会(重装系统部分除外),因此可以大致确定试用限制是根据安装系统后生成的机器码判定的,想要无限免费试用只需要不停的重装系统就可以了。

在利用WSB之前,我的通常做法是为TMSR单独建立一个虚拟机实例,每次完成剪辑任务后直接退出而不关机,这样即便虚拟机的系统时间在流逝,TMSR处于打开状态后并不会再次校验试用证书有效性,因此可以无限试用下去。但也难免会有翻车的时候,当虚拟机的Win10迎来幸福大更新的时候就不得不重启了,TMSR试用期直接结束,只能被迫重装系统一切重来。

后来我把目光瞄向了WSB,相比起虚拟机其即开即用的特性能节省更多的开启时间,而且在不定期时间它的识别码还会自动刷新,省却了大量烦恼。不过识别码刷新机制暂时我还无从得知,希望能有后续文档或开放代码能揭秘这一原理。

前置要求

  1. WSB配置文件
  2. VC运行库安装文件
  3. 提前解压好的TMSR程序目录(可选)
  4. 一个自动部署脚本
  5. 在Windows可选功能中启用Windows Sandbox

尽管3是可选项,但我还是更建议事先就将TMSR目录解压好,这样能节省WSB每次开机部署工作环境的时间。

WSB配置文件中可以配置WSB的映射目录,直接将素材文件夹映射到WSB当中就可以直接通过网络传输文件,省去了复制粘贴的时间。以上这些内容(1、4直接提供了样例文件,2提供了下载路径,3提供了解压参考脚本)都可以在我的相关仓库中获得。

开始配置

WSB配置具体如何书写这里不再赘述,请直接根据MS Docs官方提供的说明自行修改。

VC运行库在物理机安装TMSR的过程中会附带安装,但由于WSB镜像的某些未知问题,连TMSR本身也无法顺利进行安装,而直接运行解压后的TMSR(安装包为MSI格式,可以直接进行解压)又缺少相关依赖,因此需要自行安装。下载链接:https://aka.ms/vs/17/release/vc_redist.x64.exe

前面提到,TMSR的安装包本质在自解压之后可以从临时文件夹找到,是MSI安装包,因此可以直接通过解压获取TMSR本体。在物理机执行安装程序完全解压后,不要急着进行下一步安装(直接安装也可以省略后面步骤,不过记得从Program Files拷贝安装路径到待映射目录下),进入%temp%\D0路径下,找到TMSR6Retail_JA.msi,极为我们所需要的MSI文件,此外还有安装引导程序和各种KB补丁,但由于2202年在Windows 10及以上环境已经不需要这些补丁了,因此可以直接无视他们。提取出MSI文件,然后关闭原安装程序。

1
msiexec /a "TMSR6Retail_JA.msi" /qb TARGETDIR="YOURPATH"

在命令行中执行上述命令,记得将YOURPATH替换为需要映射到的TMSR放置路径,解压后仅保留Pegasys Inc文件夹即可。

上述工作全部完成后编写WSB环境的部署脚本,VC运行库可以通过静默方式安装:

1
VC_redist.x64.exe /install /quiet /norestart

我们也可以通过VBScript来为TMSR生成快捷方式:

1
2
set "exe=C:\Users\WDAGUtilityAccount\Videos\TMSR6\Pegasys Inc\TMPGEnc MPEG Smart Renderer 6\TMPGEncMPEGSmartRenderer6.exe"
mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\TMSR6.lnk""):b.TargetPath=""%exe%"":b.WorkingDirectory=""%~dp0"":b.Save:close")

这里exe变量对应的文件位置请根据自己映射后需要放置的位置进行调整。

在WSB配置文件中令WSB开启后自动运行上述部署脚本,全部准备工作就完成了,每次打开配置文件即可直接启动带有无限试用TMSR的WSB环境:

image-20220605151554925

在发稿日我的WSB环境剩余试用期间还有7天,但根据多次测试下面的序列号会在某个时间更新,又可以恢复到30天试用状态。不过根据测试,多台系统产生的序列号相同,不免让人担心Pegasys有朝一日会发现异样并进行修补,且用且珍惜吧。