具有默认值的属性未出现在SDMPackageXML中

时间:2014-04-16 14:01:48

标签: powershell sccm

我最近不得不编写一个脚本来识别未按照标准正确配置的应用程序(在SCCM库存中)。 解析了SDMPackageXML,我找到了感兴趣的属性(AutoInstall和RequiresLogon),但是在我发现通过控制台在SCCM中设置为默认值的属性可能不会出现之前,我失去了很多毛发#34 ;检查SDMPackageXML时。 让我举个例子:

  • 应用程序A设置为安装用户是否已登录

    PS C:\> ([xml]($appA.SDMPackageXML)).AppMgmtDigest.DeploymentType.Installer Technology : MSI ExecutionContext : System Contents : Contents DetectAction : DetectAction InstallAction : InstallAction UninstallAction : UninstallAction CustomData : CustomData

  • 应用程序B设置为仅在用户登录时安装

    PS C:\> ([xml]($appB.SDMPackageXML)).AppMgmtDigest.DeploymentType.Installer Technology : MSI ExecutionContext : System RequiresLogOn : true Contents : Contents DetectAction : DetectAction InstallAction : InstallAction UninstallAction : UninstallAction CustomData : CustomData

在2000个应用程序中,我有大约100个错误地配置为RequiresLogOn : true,我必须确定。 起初,由于我只使用应用程序A等应用程序测试我的脚本,因此无法找到属性的值。然后,经过一些测试,我明白了"用户是否登录"开始默认值,它可能不会出现在我的应用程序的详细信息中。我为应用程序更改了它,并在查询时出现属性。

我认为/假设这个例子可能涉及SCCM中的每个对象(2012年,在我的cas中,而不是R2)。问题是:没有猜测,我在哪里可以找到有关这些默认掩码的文档?猜测之前我怎么知道(因为我花了一些时间)?

1 个答案:

答案 0 :(得分:0)

您是否查看过SDK文档? AFAIK是powershell / c#中唯一支持SCCM应用程序管理的方法,是使用SCCM 2012 SDK中的SccmSerializer - 类将xml反序列化为Application类型的对象。

获得Application - 对象后,您应该在SDK中找到所需的所有文档。