C# 是否有方法获取本地虚拟机上运行的进程列表?
我在Windows7上运行了一个名为“VirtualXP-12345”的虚拟机。我试着用C# 是否有方法获取本地虚拟机上运行的进程列表?,c#,.net,process,virtual-machine,system.diagnostics,C#,.net,Process,Virtual Machine,System.diagnostics,我在Windows7上运行了一个名为“VirtualXP-12345”的虚拟机。我试着用 System.Diagnostics.Process.GetProcesses("VirtualXP-12345") 来自主机,但这不起作用。我刚刚收到InvalidOperationException(“无法连接到远程计算机”) 我正在尝试编写一个程序,检查某个特定进程是否在PC上运行,包括该计算机上运行的所有虚拟机。在本地非虚拟机上使用Pocess.GetProcesses()可以正常工作,但
System.Diagnostics.Process.GetProcesses("VirtualXP-12345")
来自主机,但这不起作用。我刚刚收到InvalidOperationException(“无法连接到远程计算机”)
我正在尝试编写一个程序,检查某个特定进程是否在PC上运行,包括该计算机上运行的所有虚拟机。在本地非虚拟机上使用Pocess.GetProcesses()可以正常工作,但我需要确定该进程是否在本地机上的任何位置运行,因为它需要关闭才能更新正在使用的文件。不太确定,但我想你不能,因为基本上,虚拟机就像局域网中的另一台机器。你需要有人与你合作。换言之,您可以通过网络调用某些工具并检索进程列表 事实上,在设置机器的过程中,您设置了Bridge/NAT/。。。网络类型,如果您还记得的话,就像您想设置LAN一样
注意。默认情况下,您无法连接到windows 7计算机并获取进程列表。尝试关闭虚拟机中的防火墙,看看是否有帮助。根据文档,您正在使用正确的API调用在另一台机器上获取进程(虚拟与否无关紧要) 返回的错误指定这是连接问题。要解决此问题,应首先检查:
- 您的主机可以将名称映射到IP地址(使用ping进行测试)
- 您具有基本的IP连接(使用ping进行测试)
- 您的虚拟机允许在端口445上进行入站连接,端口445是所有Windows核心网络功能都使用的TCP/IP上的RPC。(简单的测试是点击开始->运行并键入
)\\virtualxp-12345
XPMUser
是否有足够的权限通过网络查看VM?要允许您的程序查看VM的进程,您首先需要成功地对VM进行身份验证。命令行上的net use
命令可用于建立其他程序可以使用的经过身份验证的连接。