非networking连接到本地Hyper-V虚拟机的非GUI连接

我在Hyper-Vpipe理器(Windows 2008 R2)上有一台虚拟机,没有在虚拟机上configurationnetworking。 从在主机Windows服务器上运行的powershell脚本,我想查询到本地虚拟机的操作系统的某些信息(即如果一个给定的过程已经完成)。

我正在使用codeplex的pshyperv模块( https://pshyperv.codeplex.com/ )与Hyper-Vpipe理器进行交互,但连接到vm的唯一cmdlet是“New-VMConnectSession”,它启动了“vmconnect.exe”连接到VM。 由于vmconnect.exe基本上是RDP,所以对脚本不是很友好。

在主机的powershell脚本中,如果虚拟机上没有configurationnetworking,有没有办法将命令发送到本地虚拟机的操作系统并接收输出? (我相信Vmware的'vmrun'工具有这个function)

提出这个问题的另一种方法是:Hyper-V是否具有非基于GUI的vmconnect.exeforms?

(PS。不知道这是更多的stackoverflow或serverfault)

vmconnect允许客户端连接到pipe理程序。 它确实使用了RDP协议,典型的是作为“服务器”的pipe理程序。 虚拟机完全不了解这种交互,只能看到一个VGA或类似的设备。 在较新的操作系统中,Hyper-V和VM操作系统都支持通过VMbus扩展的特定RDP,客户端知道连接。 但即使在这种情况下,也不是通过“networking”连接进行处理,而是通过pipe理程序进行处理。

没有内置的方式来沟通你想要的方式。 你可以写一个自定义的VMbus驱动程序,通过Hyper-V的虚拟总线从主机通信到VM; 或者使用映射到串口的napedpipe道; 但是这两者都需要一些努力

你的评论说,你想能够在虚拟机内运行命令,但你不想要的GUI。

如果客户操作系统是Windows Server的某个版本,则可以启用EMS控制台。 这将导致控制台出现在其中一个虚拟机的串行端口上。 (你select哪一个。)然后你可以通过PuTTY或者其他一些VT100仿真器连接到它。 从那里,你可以开始一个命令窗口会话,并运行你喜欢的任何程序。 (当然,这会迫使你login。)

有关启用EMS控制台的更多信息,请参阅以下命中:

http://www.bing.com/search?q=enable+windows+ems+console&form=TMXHSB&mkt=en-us&scope=&pq=enable+windows+ems+console&sc=0-18&sp=-1&qs=n&sk=

当然,您也可以通过将主机升级到Server 2012 R2来实现此目的。 然后,您可以使用Hyper-V在托pipe层使用PowerShell在VM中放置文件。 你可以在客人中设置一个周期性的任务来运行它发现的任何东西。