如何更改 Powershell 嵌套 WMI 类属性?

发布于 2024-12-19 08:58:36 字数 700 浏览 0 评论 0原文

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

Say I have a MOF file defined as:

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 can give me an instance which has an array TargetInfo.
I want to modify one of the TargetInfo element's Policy property to 1 when this element has HardwareId equal to "blabla".
How to achieve this?
I tried both Set-WmiInstance and Put(), but none of them works. I always got different errors.
Thanks a lot.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

奢望 2024-12-26 08:58:36

您应该能够直接设置属性:

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

You should be able to set the properties directly:

foreach( $targetInfo in $defaultPolicyInstance.TargetInfo )
 {
      if( $targetInfo.HardwareId -eq "blahba" )
      {
           $targetInfo.Policy = 1
      }
 }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文