编写脚本以从所有应用程序中提取,那些与标准不匹配的应用程序,我不得不反序列化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属性。
我显然遗漏了一些东西。有人能指出什么?
答案 0 :(得分:0)
我的不好,这两组信息是相同的,访问它们只是不同。
例如,
([Microsoft.ConfigurationManagement.ApplicationManagement.Serialization.SccmSerializer]::Deserialize
FromString($app.SDMPackageXML)).DeploymentTypes[0].Installer
和
([xml]($app.SDMPackageXML)).AppMgmtDigest.DeploymentType.Installer.RequiresLogon
会给出相同的结果。
起初,我没有认出它,没有大括号的值不包含更多属性。