WMI:创建Win32_Service类的方法

时间:2010-04-01 23:48:01

标签: .net wmi

我正在尝试使用Win32_Service类的Create方法,但是当我调用InvokeMethod时,我收到此异常:

System.Management.ManagementException: Invalid method 
at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
at System.Management.ManagementObject.InvokeMethod(String methodName, ManagementBaseObject inParameters, InvokeMethodOptions options)
at <StartupCode$FSI_0075>.$FSI_0075.main@()

这是代码(在F#中,但对于C#程序员来说也是如此:)):

let scope = new ManagementScope(@"root\cimv2", null)
use imageService = Utility.getServiceObject scope "Win32_Service"
use inParams = imageService.GetMethodParameters("Create")
inParams.["Name"] <- name
inParams.["DisplayName"] <- displayName
inParams.["PathName"] <- pathName
inParams.["ServiceType"] <- 0x10   // Own Process
inParams.["ErrorControl"] <- 0     // User is not notified
inParams.["StartMode"] <- "Automatic"
inParams.["DesktopInteract"] <- false
inParams.["StartName"] <- "LocalSystem"
inParams.["StartPassword"] <- ""
inParams.["ServiceDependencies"] <- null

use outParams = imageService.InvokeMethod("Create", inParams, null) 

执行最后一行时抛出异常(我删除了下一行)。

我认为我正确调用了该方法,所以我不知道为什么会抛出异常。 任何人都可以帮助我吗?

提前致谢, 马可

1 个答案:

答案 0 :(得分:0)

我解决了:) 我只需要创建imageService对象:

    let imageService = new ManagementClass(scope, new ManagementPath("Win32_Service"), null)

非常感谢:) 马可