两种不同的方法来反序列化SDMPackageXML

时间:2014-04-16 13:30:47

标签: powershell serialization sccm

编写脚本以从所有应用程序中提取,那些与标准不匹配的应用程序,我不得不反序列化SDMPackageXML。 起初,我以为我找到了两种方法。 在挖掘之后,对我来说“似乎”我获得了两组不同的信息。我不明白为什么每种方法都不能访问相同的信息。

以下是使用的代码:

$app=gwmi -computer servername -namespace root\sms\site_code -class sms_application -filter "LocalizedDisplayName='AppName'"
$app.get()
([Microsoft.ConfigurationManagement.ApplicationManagement.Serialization.SccmSerializer]::DeserializeFromString($app.SDMPackageXML)).AutoInstall
([xml]($app.SDMPackageXML)).AppMgmtDigest.DeploymentType.Installer.RequiresLogon

我无法使用这两种方法访问AutoInstall属性。

我无法使用这两种方法访问RequiresLogon属性。

我显然遗漏了一些东西。有人能指出什么?

1 个答案:

答案 0 :(得分:0)

我的不好,这两组信息是相同的,访问它们只是不同。

例如, ([Microsoft.ConfigurationManagement.ApplicationManagement.Serialization.SccmSerializer]::Deserialize FromString($app.SDMPackageXML)).DeploymentTypes[0].Installer

([xml]($app.SDMPackageXML)).AppMgmtDigest.DeploymentType.Installer.RequiresLogon

会给出相同的结果。

起初,我没有认出它,没有大括号的值不包含更多属性。