在无头虚拟机中运行基于gui的桌面软件

我正在处理一些“想要”从具有桌面系统(称之为主包)运行的软件。 此软件调用其他程序包,也作为桌面上的用户级应用程序运行(称为次要程序包)。

这些二级应用程序中的大多数是基于Windows的程序,需要它们的GUI才能运行,并且主程序包以编程方式按压次级程序包上的button以实现期望的结果。 其中一个辅助包是基于DOS的应用程序,使用button推送技术,而另一个实际上可以由OLE自动化调用并直接驱动。 (作为辅助程序的参考,分析数据并生成主要软件包将发送的报告)

希望将这个configuration移动到一个虚拟机,也许使用像SrvAny这样的第一个应用程序到Windows服务。 但是我相信,当虚拟机启动时,默认情况下不会有桌面,所以我的问题是:

  1. 基于gui的程序将如何反应?

  2. 当主程序尝试调用它们但是没有发现桌面时,它们是否会崩溃并烧毁?

  3. Windows会自动支持辅助程序吗?

  4. 或者我有完全错误,运行虚拟机会创build一个默认的桌面?

客户操作系统很可能是在ESX 3.5上托pipe的W2k3服务器

顺便说一句,运行无头的原因是不允许无人值守的系统运行的安全策略。

编辑

感谢您的答案 – 我不确定虚拟机的虚拟graphics系统的机制。

至于安全政策,事后我没有以最好的方式解释。 我真正想要说的是,我提出了另一种解决scheme:

  1. 启动虚拟机

  2. RDP到VM来获取桌面

  3. 启动软件

  4. 断开与VM的连接(不注销),以便软件在该会话中继续运行

离开断开连接但正在运行的RDP会话被视为禁止,而不是正常的VMfunction。

然而

这确实提出了可以连接到软件将运行的任何虚拟桌面的可能性的问题吗? (这样我就可以和它进行交互)(这听起来像是“请吃我的蛋糕,也吃了”)!

尽pipe我完全确定你正在运行的这个程序在做什么 – 而这个被误导的“不允许无人值守的系统保持运行的安全策略”是什么问题或者解决了什么问题,有很多虚拟机可以在主机操作系统上运行没有GUI。

正如你所说的, ESX主机是没有问题的。 VirtualBox也是一个很好的select,它具有VBoxHeadless和VBoxManage命令集,可以在无头(无GUI)操作系统上运行和configuration虚拟机。

客户机操作系统W2K3或其他任何操作系统的工作方式与GUI主机中的一样。 操作系统在那里,在“虚拟”graphics适配器上运行。 您可以将RDP安装到虚拟机中,并具有基于GUI的操作系统,就像数据中心内的独立服务器一样。

总而言之,无论主机操作系统是否支持GU,您的基于GUI的程序都可以在Gui的正常Guest OS中正常运行。

只是为了重申虚拟机本身并不是“无头的”,如果你已经安装了一个运行GUI界面的操作系统,它就高兴地认为它具有运行在虚拟化video适配器上的正在运行的GUI桌面。 您可能没有任何实际连接到VM实例的“查看”桌面,但它确实存在,就软件而言,它应该与真实的物理桌面没有什么不同。

它运行的主机是否为无头将不起作用。 实际上,这也适用于独立系统。 我也会严肃地质疑无人值守的系统安全策略 – 你如何处理标准服务器,当然他们无人值守?