繁体   English   中英

如何通过WMIC命令行将参数传递给WMI方法?

[英]How to pass arguments to a WMI method via WMIC command line?

我正在尝试使用WMIC命令从WESL_UserSetting类执行SetCustomShell方法。 该类位于Windows 10 Enterprise中的非默认\\\\root\\StandardCimv2\\Embedded命名空间中。

我已经启用了自定义外壳功能,并且我知道该类已正确安装,因为命令:

wmic /namespace:\\root\StandardCimv2\Embedded CLASS WESL_UserSetting CALL SetCustomShell /?

产生以下输出:

Call                    [ In/Out ]Params&type                         Status
====                    =====================                         ======
SetCustomShell          [IN ]CustomReturnCodes(array of sint32)       Implemented
                        [IN ]CustomReturnCodesAction(array of sint32)
                        [IN ]DefaultAction(sint32)
                        [IN ]Shell(string)
                        [IN ]Sid(string)
                        [OUT]ReturnValue(uint32)

这也与Microsoft的文档相对应(除了它列出的参数以不同的顺序排列),所以我认为我在这里是正确的。 但是我试图以多种不同的方式传递参数,而wmic似乎并不理解我要做什么。

我尝试过命名参数(例如shell = xxx,Sid = xxx等),将整个列表括在引号中,仅将值括在引号中,并用括号调用,并仅用逗号分隔的值对其进行爆破。 似乎没有任何作用。 我总是以:

Invalid named parameter list.
Hint: <named param list> ::= <named param> | <named param> <named param list> where <named param> ::= <param name>=<param value>

要么:

Invalid format.
Hint: <paramlist> = <param> [, <paramlist>].

如何正确调用此方法?

具有讽刺意味的是,我知道如何使用VBScript或PowerShell执行此操作。 有许多示例说明了如何使用各种语言的脚本来执行此操作。 但是我需要从组策略或在操作系统部署期间执行它,而不必依赖脚本文件在客户端可以看到的某个地方可用,而这应该是我可以用一个命令完成的事情。

我相信以下内容:

wmic /namespace:\\root\StandardCimv2\Embedded CLASS WESL_UserSetting CALL SetCustomShell Sid="s-1-*" Shell="cmd.exe" DefaultAction=0 CustomReturnCodes=(0,1,2) CustomReturnCodesAction=(0,1,2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM