我最近不得不编写一个脚本来识别未按照标准正确配置的应用程序(在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)。问题是:没有猜测,我在哪里可以找到有关这些默认掩码的文档?猜测之前我怎么知道(因为我花了一些时间)?
答案 0 :(得分:0)
您是否查看过SDK文档? AFAIK是powershell / c#中唯一支持SCCM应用程序管理的方法,是使用SCCM 2012 SDK中的SccmSerializer
- 类将xml反序列化为Application
类型的对象。
获得Application
- 对象后,您应该在SDK中找到所需的所有文档。