如何将Windows程序复制到另一台Windows机器?

我很有兴趣知道下面的步骤可能会导致在我的新机器上运行的应用程序将在我的生产机器上镜像应用程序。

背景:我在本地数据中心的Windows 2008 R2虚拟机上运行Windows应用程序。 我需要将此服务器应用程序迁移到云(AWS)。 我希望服务器应用程序保留所有的用户信息和configuration信息。 由于安全限制,我无法将预制VM镜像并将其导出到AWS。

build议的解决scheme:

  1. 使用相同版本的Windows(Windows Server 2008 R2)启动AWS实例。
  2. 在现有生产服务器上运行的AWS实例上运行相同的安装程序。
  3. 删除C:\ Program Files \ My_Server_App并将其replace为现有本地VM上的等效目录。

此方法假定所有必需的文件都存储在C:\ Program Files \ My_Server_App中。

任何想法或build议将不胜感激! 谢谢!

我们真的没有足够的关于你的应用程序的信息来完全回答这个问题,恕我直言,但是….

应用程序在哪里存储数据和configuration信息? 它是否存储在数据库中? registry? 硬盘上的文件? 上述所有的? 您需要了解这一点,才能迁移所有用户和configuration信息。

目录path是否保持不变(它们应该是这样的,否则你最终可能会编辑registry/数据库/configuration文件等)。

应用程序是否在registry/数据库/configuration文件中存储有关服务器(服务器名等)的信息? 如果是这样,你可能需要编辑registry/数据库/configuration文件。

如果你绝对不能将整个VM迁移到AWS,就像Craig Watson所build议的那样,我可能会:

  1. 使用相同的安装程序将应用程序安装到相同的目录path中。 (例如,应用程序可能在Windows中存储dll,所以您会想要运行安装程序,是的。)
  2. 将所有相关的数据库/registry项/configuration文件复制到新的服务器并导入它们,可能在审慎地编辑它们之后。 (如果它使用数据库,则可能需要更改数据库的权限。)
  3. testing,testing,testing。

这并不能保证它能正常工作,因为应用程序可能有其他一些防篡改编码(我曾经与一个许可证服务器一起使用,将MAC地址存储在一个隐藏的文件中,以防止它移动到一个新的服务器没有适当的许可证,例如)。

哦,我不会复制\程序文件\您的应用程序批发,除非这是它存储configuration文件/用户数据的唯一地方。 即便如此,我仍然只能离开二进制文件。

我个人build议将服务器操作系统批量迁移到AWS,然后清理操作系统并删除不需要的应用程序,而不是将应用程序安装到新安装中。

对于VMware,有AWSpipe理门户for vCenter ,通常您可以查看AWS迁移服务和VM导入 。

由于我们对应用程序了解得不多,因此我build议您向开发人员询问应用程序的path,registry项和数据。

一旦您获得了所需的信息,就可以部署全新的AMI并在AWS中安装您的应用程序。 通过重新定位/迁移您的应用程序,只需从PATHs on-prem VM中压缩应用程序数据,然后将其解压缩到AWS AMI上相应的PATH。