确认服务凭据已更改

时间:2010-10-27 15:16:30

标签: c# service

我使用以下代码更改Windows服务的凭据。在我显示成功更改凭据的消息之前,我想确认已应用新凭据。我怎么能这样做?

using (ManagementObject service = new ManagementObject(new ManagementPath(objPath)))
                {
                    object[] wmiParams = new object[11];
                    wmiParams[6] = _username;
                    wmiParams[7] = _password;
                    service.InvokeMethod("Change", wmiParams);
                    Thread.Sleep(2000);
                    //check if new credentials in order
                    //Console.WriteLine("Service credentials changed");
                }

2 个答案:

答案 0 :(得分:3)

在重新启动服务之前,新凭据将不适用,我建议您使用ServiceController而不是WMI。

答案 1 :(得分:1)

您应该能够从InvokeMethod检查返回的对象,并且只需处理错误而不会有任何进一步的复杂性。唯一的问题是找出返回值意味着成功的东西。

object result = service.InvokeMethod("Change", wmiParams);

// if result 'is bad', handle error