如何将其扩展到远程计算机(获取Windows服务)?

时间:2010-11-09 19:46:32

标签: c# wmi

我有以下代码来获取在某台计算机上运行的所有Windows服务。如果机器是我正在运行的机器,它工作正常,但如果它是一台远程机器,我得到一个'拒绝访问'异常,因为我没有传递用户名/密码。

我的问题是,我如何/在哪里传递用户名/密码?

static void Main(string[] args)
        {
            bool filter;
            string machineName = "mymachine";
            string objPath = String.Format("\\\\{0}\\root\\cimv2:Win32_Service",machineName);

            ManagementClass servicesMC = new ManagementClass(new ManagementPath(objPath));
            Dictionary<string, string> ServicesDict = new Dictionary<string, string>();
            List<string> Aggregate = new List<string>();

            foreach (ManagementObject service in servicesMC.GetInstances())
            {
                //Console.WriteLine(service.GetPropertyValue("Name"));
            }

1 个答案:

答案 0 :(得分:1)

我没有运行这个,因为我现在不在网络上,但这应该有效:

ConnectionOptions theConnection = new ConnectionOptions();

theConnection.Username = "username";
theConnection.Password = "password";

ManagementScope scope = new ManagementScope(objPath, theConnection);
ManagementClass servicesMC = new ManagementClass(scope, new ManagementPath("Win32_Service"), new ObjectGetOptions());