我正在处理一些“希望”从具有桌面的系统运行的软件(称为主软件包)。该软件调用也作为用户级应用程序在桌面上运行的其他包(称它们为辅助包)。
这些辅助应用程序中的大多数是基于 Windows 的程序,需要它们的 gui 才能运行,并且主程序包以编程方式按下辅助程序包上的按钮以实现所需的结果。其中一个辅助包是基于 DOS 的应用程序,它使用按钮推送技术,而另一个实际上可以由 OLE 自动化调用并直接驱动。(作为参考,辅助程序分析数据并生成主要包将通过电子邮件发送的报告)
希望将此配置移至 VM 并可能使用 SrvAny 之类的东西将第一个应用程序硬塞到 Windows 服务中。但是我相信当虚拟机启动时,默认情况下不会有桌面,所以我的问题是:
基于 gui 的程序将如何反应?
当主程序尝试调用它们但找不到桌面时,它们是否会崩溃和烧毁?
windows会自动支持辅助程序吗?
还是我完全错了并且运行虚拟机确实创建了一个默认桌面?
来宾操作系统很可能是托管在 ESX 3.5 上的 W2k3 服务器
顺便说一句,无头运行的原因是安全策略不允许无人看管的系统继续运行。
编辑
感谢您的回答 - 我不确定 VM 虚拟图形系统的机制。
至于安全策略,事后我没有以最好的方式解释它。我真正想说的是,有人向我提出了一个替代解决方案:
启动虚拟机
RDP 到 VM 以获取桌面
启动软件
断开与 VM 的连接(不注销),以便软件在该会话中继续运行
离开断开连接但正在运行的 RDP 会话被视为禁止,不正常的 VM 功能。
然而
这确实提出了一个问题,是否有可能连接到软件将在其下运行的任何虚拟桌面?(这样我就可以与它互动了)(这听起来像是一个“吃我的蛋糕,也吃它”的请求!)
尽管我完全确定您正在运行的这个程序的目的是什么——以及这种误导性的“不允许无人看管的系统继续运行的安全策略”是什么或者它解决了什么问题,但有很多虚拟机在主机操作系统上运行没有 GUI。
正如您所说,ESX主机是无图形的。VirtualBox也是一个不错的选择,它具有 VBoxHeadless 和 VBoxManage 命令集,可在无头(无 GUI)操作系统上运行和配置虚拟机。
来宾操作系统,W2K3 或任何其他操作系统,就像它在 GUI 主机中一样工作。操作系统在那里,在“虚拟”图形适配器上运行。您可以 RDP 进入 VM,它具有基于 GUI 的操作系统,就像它是数据中心中的单独服务器一样。
总而言之,无论主机操作系统是否无 gui,您的基于 gui 的程序都可以在带有 Gui 的普通访客操作系统中完美运行。
重申一下,VM 本身并不是“无头的”,如果您安装了运行 GUI 界面的操作系统,它很高兴地相信它有一个运行在虚拟化视频适配器上的 GUI 桌面。您可能没有任何实际连接到虚拟机实例来“查看”桌面,但它确实存在,并且就软件而言,它应该与真实的物理桌面没有什么不同。
它运行的 Host 是否是 Headless 都没有影响。事实上,这同样适用于独立系统。我还会认真质疑无人值守的系统安全策略——你如何处理标准服务器,它们肯定是无人值守运行的?