【问题标题】:How to Change Powershell Nested WMI Class Property?如何更改 Powershell 嵌套 WMI 类属性?
【发布时间】:2011-12-02 01:02:52
【问题描述】:

假设我有一个 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 的实例。 当此元素的 HardwareId 等于“blabla”时,我想将 TargetInfo 元素的 Policy 属性之一修改为 1。 如何做到这一点? 我尝试了 Set-WmiInstance 和 Put(),但它们都不起作用。我总是遇到不同的错误。 非常感谢。

【问题讨论】:

  • 欢迎来到 StackOverflow。每当您的问题包含诸如“错误”或“异常”或“访问冲突”之类的词时,如果您发布 exact 错误或异常以及 exact 错误消息。它使您的问题更加清晰,并让您更快地得到答案。请编辑您的问题并包含该信息,以及您实际尝试使用Set-WmiInstancePut 的内容。谢谢。 :)

标签: powershell wmi


【解决方案1】:

你应该可以直接设置属性:

foreach( $targetInfo in $defaultPolicyInstance.TargetInfo )
 {
      if( $targetInfo.HardwareId -eq "blahba" )
      {
           $targetInfo.Policy = 1
      }
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    相关资源
    最近更新 更多