我使用以下代码片段来更改Windows服务的帐户和密码凭据。但是,这仅在服务停止时才有效。
如何以编程方式在进行这些更改之前停止服务,然后再次启动它?
namespace ServiceAccount
{
class Program
{
static void Main(string[] args)
{
string serviceName = "DummyService";
string username = ".\\Service_Test";
string password = "Password1";
string objPath = string.Format("Win32_Service.Name='{0}'", serviceName);
using (ManagementObject service = new ManagementObject(new ManagementPath(objPath)))
{
object[] wmiParams = new object[11];
wmiParams[6] = username;
wmiParams[7] = password;
service.InvokeMethod("Change", wmiParams);
}
}
}
}
答案 0 :(得分:6)
使用ServiceController
课程。如果您知道其名称,它会公开启动和停止服务的方法。
ServiceController sc = new ServiceController("Simple Service");
if (sc.Status == ServiceControllerStatus.Stopped)
{
sc.Start();
}
答案 1 :(得分:2)
这里有一篇文章向您展示如何:http://www.csharp-examples.net/restart-windows-service/