c# - 使用 C# 检查进程是否正在远程系统上运行

标签 c# .net system.diagnostics

我正在尝试检查一个进程是否正在远程系统上运行。我正在使用以下代码:

string procSearc = "notepad";
string remoteSystem = "remoteSystemName";

Process[] proce = System.Diagnostics.Process.GetProcessesByName(procSearch, remoteSystem);

但是,当我尝试运行代码时,出现以下错误:“无法连接到远程计算机。”

我可以使用以下命令运行 pslist: C:>pslist\remoteSystemName 所以我知道可以获得我需要的信息是可能的,但我需要在代码中得到它。

另一种可能是将 pslist 集成到 C# 中并搜索列表以查看进程是否存在,但我还没有找到有关如何执行此操作的信息。

最佳答案

为服务使用 System.ServiceProcess.ServiceController 类。您可以使用 Status 检查它是否正在运行,并使用 Stop()Start() 来控制它。

ServiceController sc = new ServiceController();
sc.MachineName = remoteSystem;
sc.ServiceName = procSearc;

if (sc.Status.Equals(ServiceControllerStatus.Running))
{
   sc.Stop();
}
else
{
   sc.Start();
}

关于c# - 使用 C# 检查进程是否正在远程系统上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/865412/

相关文章:

C#继承隐藏继承成员

c# - 处理 wpf 应用程序中任何未处理的点击事件

.net - 使用 ETW 记录异常的最佳方法是什么?

c# - 如何识别流程是否需要输入?

c# - 有没有办法获取在本地虚拟机上运行的进程列表?

c# - 可观察集合

c# - 为什么 wpf UpdateSourceTrigger 没有明确绑定(bind)?

c# - 如何从 docusign 检索已签名的用户文档?

c# - 有没有一种自动处理数组和强类型集合之间转换的好方法?

.net - Log4net html 格式的 SmtpAppender