如何获得使用System.Diagnostics.Process.GetProcess(string)的权限?

Pey*_*man 5 c# authorization remote-access user-permissions

我正在使用Microsoft Visual Studio创建一个简单的远程任务管理器以用于体验目的.

我想使用,Process.GetProcesses(string);但有一个访问被拒绝的异常,不允许我获得远程计算机进程.事实上这是正常的,因为我们应该使用用户名和密码进行身份验证,但是如何

Pil*_*anz 2

您可以尝试使用WMI来实现此目的

/// using System.Management;  
// don't forget! in VS you may have to add a new reference to this DLL
ConnectionOptions op = new ConnectionOptions();
op.Username = "REMOTE_USER";
op.Password = "REMOTE_PASSWORD";

ManagementScope sc = new ManagementScope(@"\\REMOTE_COMPUTER_NAME\root\cimv2", op);

ObjectQuery query = new ObjectQuery("Select * from Win32_Process");

ManagementObjectSearcher searcher = new ManagementObjectSearcher(sc, query);
ManagementObjectCollection result = searcher.Get();

foreach (ManagementObject obj in result)
{
     if (obj["Caption"] != null) Console.Write(obj["Caption"].ToString() + "\t");
     if (obj["CommandLine"] != null) Console.WriteLine(obj["CommandLine"].ToString());
}
Run Code Online (Sandbox Code Playgroud)

有关Win32_Process类的更多详细信息,请参阅 MSDN。