我正在寻找以下命令的C#版本:
sc config "someServiceName" start=auto
我发现了很多关于将服务配置为在安装时自动启动的信息,但我无法找到如何对现有服务执行相同操作。
现在,我已经把它炮轰了,但如果有办法使用.NET API,我宁愿这样做。
答案 0 :(得分:6)
这应该可以解决问题:
var serviceName = "<your service name here>";
string objPath = string.Format("Win32_Service.Name='{0}'", serviceName);
using (var service = new ManagementObject(new ManagementPath(objPath)))
{
var result = (int)service.InvokeMethod("ChangeStartMode", new object[] {"Automatic"});
}
您需要添加对System.Management
程序集的引用,以及导入名称空间System.Management
。
请注意,您的程序必须升级(以管理员身份运行)才能使其正常工作,并且无法解决此问题。对于ChangeStartMode
的其他可能值,您可以refer to MSDN。
result
变量将是一个表示结果的数值。例如,0表示成功。请参阅之前链接的MSDN文章,了解所有可能的返回值。
答案 1 :(得分:-1)
user tag1 tag2 tag3
0 Roshan ghai 0 .287 0
1 mank nion .143 .287 0
2 pop rajuel .287 0 0
3 random guy .287 .287 0
您需要添加对var serviceName = "<your service name here>";
string objPath = string.Format("Win32_Service.Name='{0}'", serviceName);
using (var service = new ManagementObject(new ManagementPath(objPath)))
{
service.InvokeMethod("ChangeStartMode", new object[] {"Automatic"});
}
程序集的引用,以及导入名称空间System.Management
。