0

编写脚本以从所有应用程序中提取不符合标准的应用程序,我不得不反序列化 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 属性。

我显然错过了一些东西。有人能指出什么吗?

4

1 回答 1

0

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

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

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

将给出相同的结果。

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

于 2014-04-17T09:26:25.973 回答