Powershell

在 Microsoft SCMM 2012 SP1 中使用 Powershell 或 WMI 更新應用程序上的內容

  • December 8, 2016

在右鍵點擊應用程序部署類型時,我們可以選擇更新內容。有沒有辦法使用 Powershell 或 WMI 方法執行此操作?

我目前正在使用這個 powershell 腳本來更新所有應用程序的內容,唯一需要注意的是,修訂總是會增加:

try
{
   Get-Wmiobject -Namespace "root\SMS\Site_<sitecode>" -Class SMS_Application -Filter "isLatest='true' and isExpired='false'" | foreach{
          $name = $_.LocalizedDisplayName
          echo "Application : $name"
          $dptypes = Get-CMDeploymentType -ApplicationName "$name"
          foreach ($dpt in $dptypes){
               $dptname = $dpt.LocalizedDisplayName
               echo "Deployment Type: $dptname"
               Update-CMDistributionPoint -ApplicationName "$name" -DeploymentTypeName "$dptname"
               }
          }
}
catch
{
   $_.Exception.Message
}

帶有 -ContentLocation 的 Set-CMDeploymentType 將強制更新,即使 ContentLocation 設置為與原始相同。

我的程式碼如下所示:

$app = Get-CMApplication -Name $PackageName
$depType = $app | Get-CMDeploymentType
$depType | Set-CMDeploymentType -MsiOrScriptInstaller -ProductCode $productCode -ContentLocation $PkgRead

現有位置可能難以確定 - 如果您還不知道它在哪裡,您可以將其從部署類型 XML 或 WMI 中提取出來。

引用自:https://serverfault.com/questions/510224