Неверный (stati c) метод с Invoke-CimMethod - PullRequest
3 голосов
/ 29 марта 2020

Я пытаюсь установить значение с помощью командлета PowerShell Invoke-CimMethod, но я получаю сообщение об ошибке «Неверный метод», и сейчас я немного растерялся. Это мой код

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

Согласно документации, аргумент "WINSEnableLMHostsLookup" должен быть логическим, но по какой-то причине он просто не работает таким образом.

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

Кто-нибудь может поделиться какой-то информацией?

1 Ответ

3 голосов
/ 29 марта 2020

Это метод stati c, как и в любом другом языке программирования, а не метод экземпляра. Вам не нужно сначала запускать какой-то конструктор или находить существующий объект. Устанавливает значение по умолчанию. Используйте -classname с методами stati c. Это не самый удобный или хорошо документированный.

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 самодокументируется, если вы действительно хотите в него углубиться. Спецификаторы скажут, является ли метод stati c.

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

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

Хм, а что такое "CQL"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...