如何反序列化此PowerShell输出?

Bri*_*hon 2 xml powershell sccm

PS sss:\> $match.ApplicabilityCondition

<ApplicabilityRule ExpressionLanguage="Custom" Handler="{2DB70103-3DFB-4806-85B0-B27B561284BB}"><UpdateId>3a50171e-f09b-46fd-991c-ffa0c1fabcc6</UpdateId><CISource><Id>{7ABE2526-ED91-47AE-A989-275B4B2924FE}</Id><Version>188</Version></CISource><ProductId>704a0a4a-518f-4d69-9e03-10ba44198bd5</ProductId></ApplicabilityRule>
Run Code Online (Sandbox Code Playgroud)

ApplicabilityCondition是类似XML的对象,作为Get-CMSoftwareUpdate(SCCM相关命令)的一部分返回。这ExpressionLanguage="Custom"对我没有任何意义。有没有一种简单的方法可以引用显示的子属性?最终,我试图得到UpdateID

sod*_*low 5

我认为您可以将其解析为XML

看到:

$xml = [xml]'<ApplicabilityRule ExpressionLanguage="Custom" Handler="{2DB70103-3DFB-4806-85B0-B27B561284BB}">
    <UpdateId>3a50171e-f09b-46fd-991c-ffa0c1fabcc6</UpdateId>
    <CISource>
        <Id>{7ABE2526-ED91-47AE-A989-275B4B2924FE}</Id>
        <Version>188</Version>
    </CISource>
    <ProductId>704a0a4a-518f-4d69-9e03-10ba44198bd5</ProductId>
</ApplicabilityRule>'

$xml.ChildNodes
Run Code Online (Sandbox Code Playgroud)

返回:

ExpressionLanguage : Custom
Handler            : {2DB70103-3DFB-4806-85B0-B27B561284BB}
UpdateId           : 3a50171e-f09b-46fd-991c-ffa0c1fabcc6
CISource           : CISource
ProductId          : 704a0a4a-518f-4d69-9e03-10ba44198bd5
Run Code Online (Sandbox Code Playgroud)