根据标准,我最近不得不编写一个脚本来识别未正确配置的应用程序(在 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)。问题是:不用猜测,我在哪里可以找到有关这些默认掩码的文档?在猜测之前我怎么会知道(因为我花了一些时间)?