Invoke-CimMethod的(静态)方法无效



我正试图用PowerShell cmdled Invoke-CimMethod设置一个值,但我收到了一个错误"无效方法",我现在有点不知所措。这是我的代码

Invoke-CimMethod -Query 'SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=1' -MethodName EnableWINS -Arguments @{WINSEnableLMHostsLookup=[Boolean]$false}

根据文档,参数"WINSEnableLMHostsLookup"应该是一个bool,但由于某种原因,它不能以这种方式工作。

https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/settcpipnetbios-method-in-class-win32-networkadapterconfiguration

有人能分享一些见解吗?

与任何编程语言一样,这是一个静态方法,而不是实例方法。您不需要先运行某种构造函数,也不需要查找现有对象。它设置了一个默认值。将-classname与静态方法一起使用。它不是最友好的用户界面,也不是最有据可查的。

Invoke-CimMethod -ClassName Win32_NetworkAdapterConfiguration -Arguments @{WINSEnableLMHostsLookup=$false} -MethodName EnableWINS
# or arguments by position
Invoke-CimMethod Win32_NetworkAdapterConfiguration @{WINSEnableLMHostsLookup=$false} EnableWINS

wmiclass型加速器的旧方法:

$NicClass = [wmiclass]'Win32_NetworkAdapterConfiguration'
$NicClass.EnableWINS($false, $false) 

如果你真的想深入研究CIM,它是自记录的。限定符会说明一个方法是否是静态的。

get-cimclass Win32_NetworkAdapterConfiguration | % cimclassmethods | 
select name,qualifiers
Name       Qualifiers
----       ----------
EnableWINS {Implemented, MappingStrings, Static, ValueMap}

嗯,什么是"CQL"?

最新更新