WMI:Win32_Service 类的创建方法

发布于 2024-08-27 02:25:01 字数 1268 浏览 4 评论 0原文

我正在尝试使用 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) 

当以下情况抛出异常:最后一行被执行(我删除了下一行)。

我认为我正确调用了该方法,所以我不知道为什么会引发异常。 谁能帮助我吗?

提前致谢, 马可

I'm trying to use the Create method of the Win32_Service class, but when I call the InvokeMethod, I receive this exception:

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@()

This is the code (in F# but it is understable for C# programmers too :)):

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) 

The exception is thrown when the last line is executed (I removed the next lines).

I think I'm calling correctly the method, so I don't know why the exception is thrown.
Can anyone help me?

Thanks in advance,
Marco

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

随波逐流 2024-09-03 02:25:01

我解决了:)
我只需要创建 imageService 对象,如下所示:

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

无论如何,谢谢:)
马可

I resolved :)
I just need to create the imageService object as this:

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

Thanks anyway :)
Marco

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文