Как изменить свойство класса WMI для Powershell? - PullRequest
1 голос
/ 02 декабря 2011

Скажем, у меня есть файл MOF, определенный как:

class TARGET_INFO
{
    [WmiDataId(1),
     MaxLen(31),
     Description(".") : amended
    ] string HardwareId;

    [WmiDataId(2)] uint32 Policy;
};

class DEFAULT_POLICY
{
    [WmiDataId(1),
     read, write,
     Description(".") : amended
    ] uint32 NumberDevices;

    [WmiDataId(3),
     read, write,
     MaxLen(31),
     Description(".") : amended,
     WmiSizeIs("NumberDevices")
    ] TARGET_INFO TargetInfo[];
};

Get-WmiObject -namespace root\wmi -class DEFAULT_POLICY может дать мне экземпляр, имеющий массив TargetInfoЯ хочу изменить одно из свойств Policy элемента TargetInfo на 1, когда этот элемент имеет HardwareId, равный «blabla».Как этого добиться?Я пробовал оба Set-WmiInstance и Put (), но ни один из них не работает.Я всегда получаю разные ошибки.Большое спасибо.

1 Ответ

0 голосов
/ 08 декабря 2011

Вы должны иметь возможность установить свойства напрямую:

foreach( $targetInfo in $defaultPolicyInstance.TargetInfo )
 {
      if( $targetInfo.HardwareId -eq "blahba" )
      {
           $targetInfo.Policy = 1
      }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...