代码之家  ›  专栏  ›  技术社区  ›  Ayush

确认服务凭据已更改

  •  1
  • Ayush  · 技术社区  · 15 年前

    我正在使用以下代码更改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 回复  |  直到 15 年前
        1
  •  3
  •   A_Nabelsi    15 年前

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

        2
  •  1
  •   Steve Townsend    15 年前

    InvokeMethod 只需处理错误而不需要任何进一步的复杂性。唯一的问题是确定返回值意味着成功。

    object result = service.InvokeMethod("Change", wmiParams);
    
    // if result 'is bad', handle error