0

根据标准,我最近不得不编写一个脚本来识别未正确配置的应用程序(在 SCCM 清单中)。对 SDMPackageXML 进行反序列化后,我找到了获取感兴趣属性(AutoInstall 和 RequiresLogon)的方法,但是在我发现通过控制台在 SCCM 中设置为默认值的属性在检查 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)。问题是:不用猜测,我在哪里可以找到有关这些默认掩码的文档?在猜测之前我怎么会知道(因为我花了一些时间)?

4

1 回答 1

0

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

拥有Application-object 后,您应该可以在 SDK 中找到所需的所有文档。

于 2014-04-16T14:40:51.070 回答