编写脚本以从所有不符合标准的应用程序中提取脚本,我不得不反序列化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属性。
我显然缺少了一些东西。有人可以指出吗?
不好的是,两组信息是相同的,但是访问它们却是不同的。
例如, ([Microsoft.ConfigurationManagement.ApplicationManagement.Serialization.SccmSerializer]::Deserialize FromString($app.SDMPackageXML)).DeploymentTypes[0].Installer
和
([xml]($app.SDMPackageXML)).AppMgmtDigest.DeploymentType.Installer.RequiresLogon
将给出相同的结果。
起初,我并没有确定它的含义,因为我认为没有括号的值不包含更多属性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句