使用ServiceController修改服务凭据

本文关键字:服务 修改 ServiceController 使用 | 更新日期: 2023-09-27 18:10:29

是否有一种方法可以做到这一点,但不是使用当前在我的环境中不工作的WMI,而是使用ServiceController类。

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");
                }

谢谢!

使用ServiceController修改服务凭据

ServiceController类不允许更改服务凭据。如果WMI不是一个选项,您可以P/Invoke ChangeServiceConfig代替。你可以在这里找到一个c#的例子:

更改Windows服务登录凭据