假设您有两台计算机,都具有相同的指令集和 Windows 版本。
是否有可能(好吧,任何事情都有可能,但可行吗)使用 procmon 监视应用程序读取/写入的每个文件和注册表项以及它加载的 DLL,然后将它们移动到另一台计算机?然后,将整个程序的目录移动到该计算机,并让它正常工作?
如果这样做合理,那么实际操作起来有多困难?
答案1
是的。Microsoft 用户体验虚拟化 (UE-V) 和应用程序虚拟化 (App-V) 是两种工具,它们可以监控和捕获一台计算机上的注册表和文件写入,并小心地将它们复制到其他计算机上。结果是应用程序可以在目标计算机上运行而无需安装它。这就是大型企业中大量应用程序的部署方式。
这绝对是可行的,但要成功实现却相当复杂。复杂到微软收购了 App-V 的前身,而不是自己重新实现它。
答案2
不太可能。尽管 procmon 确实会监控应用程序执行的所有操作,但实际上您必须执行所有操作才能完全了解该应用程序的整个范围。不执行某项任务可能不会暴露您错过的某个注册表项或文件。
再次,procmon 不会告诉您它注册了哪些 dll。一个 dll 实际上可能会加载另一个 dll,如果您仅根据应用程序进行过滤,则不会显示该操作。
您可能希望先将该应用程序安装到另一台计算机,然后将整个文件夹复制过去,通过监控,您可能会看到一些其他设置,这是一种更好的方法,但即使如此,您也可能没有得到所有设置。但鉴于它包含安装,它不符合您的问题:移动程序。
但是,如果您想将程序从一台计算机移动到另一台计算机,最简单的方法是开始使用程序的便携版本或寻找具有便携版本的替代方案。它们不会将必要的文件写入注册表,并将所有文件保存在程序的同一文件夹(或子文件夹中)。甚至有专门提供便携应用程序的网站,例如 www.portablefreeware.com