[英]What WMI class stores Deployment Type installation program on MECM
不幸的是,這不是很容易獲得信息 afaik,但在 powershell(或任何可以真正訪問 wmi 的編程語言)的幫助下,它可以完成。
信息本身存儲在屬性SDMPackageXML
的 Class SMS_Application
中。
現在,如果您查詢它,您會注意到的第一件事是它可能是空的。 那是因為它是惰性屬性。 要在 PS 中解決這個問題,您必須在 wmi object 上調用一個額外的get()
。
如果你這樣做(或者有一些工具只顯示所有惰性參數)你會注意到它 - 正如名稱所暗示的那樣 - 基本上是一個 XML 文檔,它存儲了你需要的信息。 所以你必須從 XML 中提取它。
關於如何為單個應用程序執行此操作的一些示例代碼是:
$app = Get-WmiObject -Class SMS_Application -Namespace "root\SMS\site_sitecode" -computer "your site server" -Filter "LocalizedDisplayName='your app name'"
$app.Get()
$installCMD = (([xml](($app).SDMPackageXML)).AppMgmtDigest.DeploymentType.Installer.InstallAction.Args.Arg | where {$_.Name -ieq "InstallCommandLine"}).'#text'
$uninstallCMD = (([xml](($app).SDMPackageXML)).AppMgmtDigest.DeploymentType.Installer.InstallAction.Args.Arg | where {$_.Name -ieq "UninstallCommandLine"}).'#text'
我不太擅長 xml 解析,所以可能有更好的方法,或者您可能不需要解析,但可以只對 xml 摘要進行字符串比較。 只需從查看 SDMPackageXML 開始,然后您可能就會了解如何最好地分析它以滿足您自己的需要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.