是否有一个原因,下面的工作两个例子试图设置服务启动模式时,只有1?
ManagementObjectCollection services = new ManagementObjectSearcher(scope, query).Get();
foreach (ManagementObject service in services)
{
// WORKS
service.InvokeMethod("ChangeStartMode", new object[] { ServiceStartMode.Manual });
// DOESN'T WORK
service.SetPropertyValue("StartMode", ServiceStartMode.Manual);
service.Put();
}
连接选项:
var scope = new ManagementScope(@"root\cimv2", new ConnectionOptions
{
Impersonation = ImpersonationLevel.Impersonate,
Authentication = AuthenticationLevel.Connect,
EnablePrivileges = true
});
问题是,绝大多数Win32_Service
属性都是只读的,并且只是为了通过该类公开的方法进行修改。你可以看到,在类的定义
STARTMODE - 字符串预选赛:CIMTYPE,描述,覆盖,读取,ValueMap,价值观