gpt4 book ai didi

.NET - 获取在另一个域中的机器上运行的进程

转载 作者:行者123 更新时间:2023-12-02 08:52:12 25 4
gpt4 key购买 nike

我正在寻找一种方法,从 .NET 代码中获取远程计算机上正在运行的进程列表,该计算机位于不同的域中。

我有机器的用户名和密码。但是,System.Diagnostics.Process.GetProcesses() 函数只有两个重写。其中之一接受远程机器的名称,但无法将用户名和密码发送到该机器。为了使 punciton 工作,它必须是您域中您已经有权访问的机器。

我不是 100% 确定这是否可以完成,但我怀疑它可以通过 Interop 和 WMI 完成。

如果重要的话,.NET 应用程序正在 Windows 7 监控机器上运行,该机器需要连接到我们零售店之一的 Windows XP 机器。

在发布此问题之前,我曾尝试搜索以前的问题并尝试过谷歌。如果那里有重复的问题,请告诉我,我会删除这个问题。

最佳答案

我讨厌回答自己的问题,但对于下一个面临这一挑战的人,我确实找到了一种更简单的方法来通过 System.Management 对象来完成此任务。

在 codeproject.com 上有一个带源代码的完整工作应用程序。

http://www.codeproject.com/KB/cs/Remote_process_controller.aspx

为了我的特定目的,我对它进行了相当多的修改,并获得了尽可能小的功能来做到这一点。我将它分享给下一个一起来的人。

请注意,您需要将对 System.Management 的引用添加到您的项目中。

    private bool CheckForExpectedProcess(string userName, string password, string machineName, string logonDomain, string PartialProcessname)
{
bool ReturnValue = false;
System.Management.ManagementScope managementScope;
try
{
System.Management.ConnectionOptions connOptions = new System.Management.ConnectionOptions();

connOptions.Impersonation = System.Management.ImpersonationLevel.Impersonate;
connOptions.EnablePrivileges = true;
connOptions.Username = logonDomain + "\\" + userName;
connOptions.Password = password;
managementScope = new System.Management.ManagementScope(@"\\" + machineName + @"\ROOT\CIMV2", connOptions);

managementScope.Connect();
System.Management.ManagementObjectSearcher objSearcher = new System.Management.ManagementObjectSearcher("SELECT Name FROM Win32_Process WHERE NAME LIKE'%" + PartialProcessname + "%'");
System.Management.ManagementOperationObserver opsObserver = new System.Management.ManagementOperationObserver();
objSearcher.Scope = managementScope;
string[] sep = { "\n", "\t" };

System.Management.ManagementObjectCollection objects = objSearcher.Get();
ReturnValue = objects.Count > 0;

}
catch (Exception ex)
{
// handle error - we log it to our own system, but it's up to you.
}

return ReturnValue;
}

关于.NET - 获取在另一个域中的机器上运行的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7715515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com