C# 从远程计算机检索进程信息和文件
我正在尝试使用以下代码检索特定进程:C# 从远程计算机检索进程信息和文件,c#,remote-access,C#,Remote Access,我正在尝试使用以下代码检索特定进程: Process[] Process = Process.GetProcessesByName(_ProcessName, _Ip); 当\u Ip为“127.0.0.1”时,将成功检索该进程。 当\u Ip表示远程机器时,会发生以下异常: System.InvalidOperationException occurred HResult=-2146233079 Message=Couldn't connect to remote machine.
Process[] Process = Process.GetProcessesByName(_ProcessName, _Ip);
当\u Ip
为“127.0.0.1”时,将成功检索该进程。
当\u Ip
表示远程机器时,会发生以下异常:
System.InvalidOperationException occurred
HResult=-2146233079
Message=Couldn't connect to remote machine.
Source=System
StackTrace:
at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine)
at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName)
at System.Diagnostics.Process.GetProcesses(String machineName)
at System.Diagnostics.Process.GetProcessesByName(String processName, String machineName)
at ToisSimulator.ToisResultsCollector.CollectResults() in d:\PI2\ThirdParty\TCC_New\TccMediator\ToisSimulator\ToisResultsCollector.cs:line 101
InnerException: System.InvalidOperationException
HResult=-2146233079
Message=Couldn't get process information from performance counter.
Source=System
StackTrace:
at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library)
at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine)
InnerException: System.ComponentModel.Win32Exception
HResult=-2147467259
Message=Access is denied
Source=System
ErrorCode=-2147467259
NativeErrorCode=5
StackTrace:
at System.Diagnostics.PerformanceMonitor.Init()
at System.Diagnostics.PerformanceCounterLib.GetPerformanceData(String item)
at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library)
InnerException:
我试着做到以下几点:
FileStream fStream = new FileStream(fileInfo.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
希望你已经试过了
.
它说正确的方法是使用WMI
这个链接有一个很好的例子,它使用System.Management
连接到远程系统并获取流程详细信息