【问题标题】:Process Information on Remote Computer在远程计算机上处​​理信息
【发布时间】:2011-06-25 05:52:30
【问题描述】:

我正在编写一个小程序来检索远程计算机上运行的服务和进程的列表,一切运行良好。我将 Process 用于 ret 进程列表和 ServiceController 用于服务列表。现在有没有办法获取远程 pc 上正在运行的进程的大小并实际找到与该进程关联的文件的大小?

【问题讨论】:

    标签: c# .net visual-studio-2010


    【解决方案1】:

    要执行远程管理功能,通常正确的答案是使用 WMI。

    并使用 System.Management 中的类型从 .NET 与 WMI 进行交互。 This page 包含一个简单的示例。

    我建议将 WMI 用于远程和本地信息——避免维护两组代码。

    【讨论】:

    • 谢谢,我现在正在研究您建议的方法!
    • 我尝试获取安装日期属性,但它总是检索 null!
    • @Aadi:这里始终为空。文档说“可以在没有向该属性写入值的情况下安装对象。”,我注意到 InstallDate 继承自 CIM_ManagedSystemElement,它有许多其他子类,InstallData 更有意义。
    【解决方案2】:

    命令提示符上的任务列表和任务视图功能也可以帮助执行此操作。您的程序可以在进程对象中运行 cmd.exe 并输入

    tasklist /s remoteServer /u userName
    

    作为输入,然后监听输出。它将要求输入帐户的密码,该密码应作为下一个输入提供。然后,您可以监听连续的输出,直到达到 EndOfOutput。

    或者,如果您可以访问远程计算机,您可以编写一个 Windows 窗体程序或控制台应用程序,该程序托管一个 WCF 服务,其方法使用 Process.GetProcesses() 返回正在运行的进程列表,该方法将在远程计算机。在您的程序中使用服务客户端,您可以调用远程方法。

    我猜以上两种方法都可以在不使用 WMI 的情况下工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多