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

标签 powershell methods wmi

我正在尝试使用 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 是 self 记录的。限定词会说明一个方法是否是静态的。

get-cimclass Win32_NetworkAdapterConfiguration | % cimclassmethods | 
  select name,qualifiers

Name       Qualifiers
----       ----------
EnableWINS {Implemented, MappingStrings, Static, ValueMap}

嗯,什么是“CQL”?

关于powershell - Invoke-CimMethod 的无效(静态)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60913214/

相关文章:

sql-server - 从 powershell 删除 SQL Server 数据库

java - eclipse不匹配构造函数方法调用

C++ - 扩展数据类型

powershell - 如何解决 Add-PSSnapin Microsoft.TeamFoundation.PowerShell 和 Get-TfsChildItem 错误?

powershell - 如何将 C# PowerShell 命令中的值或对象返回到 PowerShell?

python - 类调用和方法调用在 Python 中有什么区别?

c# - 授予远程用户(非管理员)使用 WMI 和 C# 枚举命名空间 cimv2 中 Win32_Service 中的服务的能力

Powershell 和 wmi,如何将逻辑磁盘/卷映射到硬盘,反之亦然?

从字符串中提取数字的正则表达式 (gwmi Win32_OperatingSystem).Name

windows - 每个开发人员都应该知道的 PowerShell 脚本