Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有方法获取本地虚拟机上运行的进程列表?_C#_.net_Process_Virtual Machine_System.diagnostics - Fatal编程技术网

C# 是否有方法获取本地虚拟机上运行的进程列表?

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()可以正常工作,但

我在Windows7上运行了一个名为“VirtualXP-12345”的虚拟机。我试着用

    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

不太确定,但我认为您不能,因为基本上,虚拟machnie就像局域网中的另一台机器。你需要有人与你合作。换句话说,一些工具,你可以通过网络调用并检索进程列表。关闭防火墙没有帮助。我禁用了防火墙,这让我ping。我尝试通过转到“\\VirtualXP-12345”测试端口445,它提示我输入密码。对不起,我的机器在打字时坏了!我尝试使用VirtualXP-12345\XPMUser登录和正确的密码,但这无法让我成功登录到VM。您的
XPMUser
是否有足够的权限通过网络查看VM?要允许您的程序查看VM的进程,您首先需要成功地对VM进行身份验证。命令行上的
net use
命令可用于建立其他程序可以使用的经过身份验证的连接。