許多企業仰賴 SCCM(Microsoft Configuration Manager)將應用程式部署到 Windows 裝置,無論這些裝置位於內部部署環境還是遠端。不過,SCCM 應用程式部署的可靠性,取決於其背後的套件與規則是否完善。
如果靜默安裝參數有誤、偵測規則與應用程式不符,或傳回代碼未正確對應,成功安裝也可能被回報為失敗(反之亦然)。這一點現在更重要了,因為 Microsoft 已發布 Configuration Manager version 2609,這是改為一年一次發布時程後的首個版本。持續使用 SCCM 的團隊,需要能與現有功能穩定搭配運作的應用程式交付方式。
考量到這一點,接著來看看 SCCM 應用程式封裝、如何準備及部署應用程式,以及偵測方法和傳回代碼如何決定 SCCM 會回報什麼。
SCCM 中的應用程式封裝是什麼?
應用程式封裝是在 SCCM 接手之前,為應用程式預先完成的準備工作。這包括設定安裝與解除安裝命令、啟用靜默安裝、加入設定,以及決定如何驗證安裝是否完成。若要查看更全面的概覽,請參閱什麼是應用程式封裝。
接著,SCCM 會部署準備好的應用程式。它會將其儲存為一個具有一或多個部署類型的應用程式,將內容複製到發佈點,並使用您提供的檔案和規則,告知用戶端何時以及如何安裝。
請記住,SCCM 只能執行您提供給它的內容。因此,先以所需規則和設定妥善準備應用程式相當重要,因為安裝可靠性有很大一部分在開啟 Create Application 精靈之前就已經決定。
SCCM 中的應用程式、套件與程式之比較
這麼多術語滿天飛,難免讓人有點混淆:當我們提到應用程式、套件和程式時,到底是什麼意思?我們可以這樣拆解其中的差異:
屬性 | 應用程式 | 套件與程式 |
可判斷應用程式是否已安裝 | 是,透過偵測方法 | 沒有偵測方法 |
多種安裝方式 | 是,依需求選取一或多個部署類型 | 每個程式一行命令列 |
相依性與取代關係 | 支援 | 先執行另一個程式 |
最佳用途 | 可安裝、更新並持續符合規範的軟體 | 管理員工具、一次性指令碼、週期性指令碼 |
基於這些差異,Microsoft 建議將套件和程式用於不安裝應用程式的工具、一次性指令碼,以及週期性指令碼。對於會安裝並持續更新的軟體,應用程式會是更合適的選擇。如果有較舊的套件,Package Conversion Manager 可以將其轉換為應用程式。
如何為 SCCM 封裝應用程式
為 SCCM 封裝應用程式時,有幾個關鍵步驟需要遵循。納入正確安裝所需的所有命令、包裝程式和規則,有助於確保順利推出;但只要漏掉一個步驟,就可能導致安裝或報告問題。
識別安裝程式類型: 可能是 MSI、setup EXE,或是封裝 MSI 的 EXE;無論是哪一種,都會影響後續的所有步驟。我們的MSI 與 EXE 安裝程式指南會說明如何分辨兩者。
找出靜默安裝與解除安裝命令:這些命令的找法會因安裝程式類型而異。每個 MSI 使用的參數都相同,而 EXE 的參數則取決於建立該安裝程式的工具。請參閱我們的msiexec 靜默安裝指南和EXE 靜默安裝指南。
決定是否要加上封裝層:當安裝程式有需要時,您可以使用 PowerShell App Deployment Toolkit(PSADT)封裝器,加入關閉應用程式提示、延後選項,以及一致的記錄功能。我們的PSADT 指南說明了這套工具組的運作方式。
建立乾淨的來源資料夾:建立以 MSI 為基礎的應用程式時,SCCM 會匯入該資料夾中的每個檔案並傳送到發佈點,因此請確保資料夾內只包含安裝所需的內容。Microsoft 測試 SCCM 時,每個應用程式最多可支援 20,000 個檔案。
記錄可證明應用程式已安裝的依據:您需要有能表明應用程式已安裝的項目,例如 MSI 產品代碼、帶版本資訊的檔案,或登錄值。這會成為用來驗證各端點安裝狀態的偵測方法。
在乾淨的機器上以 SYSTEM 身分測試命令:在將安裝部署到各個裝置之前先測試安裝與解除安裝,對於及早發現任何問題至關重要,避免問題擴大。請記住,在系統內容中使用指定命令列即可安裝的應用程式,通常也能透過 SCCM 安裝。
SCCM 應用程式部署逐步教學
為 SCCM 封裝應用程式是第一步,但接著還需要部署。部署應用程式也需要幾個步驟,但熟悉之後就會變成很直接的流程:
建立應用程式:可前往 Software Library,接著依序前往 Application Management → Applications,然後選取 Create Application。如果是 MSI,可以讓 SCCM 讀取該檔案。另一方面,如果是安裝程式 EXE 或 PSADT 包裝程式,則需要選擇 Script Installer,並手動輸入詳細資料。
設定部署類型內容:在這個步驟中,輸入安裝與解除安裝命令;如果該應用程式支援修復,也請輸入修復命令。請務必將內容位置指向乾淨的來源資料夾。
新增偵測方法:偵測方法可包含規則式偵測或指令碼偵測,用來尋找可證明應用程式已成功安裝的特定指標。應使用的具體偵測方法會因應用程式而異。
設定使用者體驗:這包括各種設定,例如安裝於系統或使用者、登入需求、程式可見性(若要進行靜默安裝,建議使用 Hidden),以及最長執行時間。
新增需求與相依性:需求會決定哪些裝置取得哪種部署類型,而相依性鏈結最多支援五個層級。
分發內容:將所有內容傳送至發佈點或發佈點群組,以便傳送到目標裝置。
部署到集合:選擇 Install,然後選擇 Available(讓使用者可從 Software Center 安裝)或 Required(在截止期限到達時自動安裝)。別忘了設定可用時間和截止期限,確保在預定時間範圍內完成部署。
全面推行前先測試:部署應用程式前,先在試點群組中執行模擬部署,測試偵測、需求條件和相依性,而不實際安裝。如果一切檢查無誤,就可以根據成功條件使用分階段部署逐步推行。
密切留意部署狀況: 前往 Monitoring → Deployments 監控部署進度,並檢查結果,確保一切如預期運作後,再部署到更大範圍的裝置群組。
請記住,SCCM 會自動將解除安裝部署設為必要,而且無法變更。對於在截止時間當下處於關機狀態的裝置,可選擇將強制執行延後 1 到 120 小時的寬限期;這項設定需先在用戶端設定中指定,然後再針對各個部署啟用。
SCCM 偵測方法的運作方式
偵測是 SCCM 確認應用程式是否已安裝的方式。SCCM 用戶端會先檢查應用程式是否存在的跡象,然後才會安裝任何內容,因此不會重新安裝已經存在的應用程式,並且會在安裝後再次檢查,以確認安裝已成功完成。偵測方法有兩種形式:
以規則為基礎的偵測
使用規則式偵測時,SCCM 用戶端會檢查檔案系統(檔案或資料夾)、登錄(機碼或值),或 Windows Installer 產品代碼。如果符合規則,SCCM 就會將該應用程式視為已安裝。
可以使用「And」或「Or」結合多個子句,並將其分組,以建立更複雜的邏輯。無論使用哪一種,都請讓規則尋找每個版本都會變動的項目,例如產品代碼或檔案版本,這樣較舊的安裝版本才不會被判定為目前版本。
指令碼偵測
指令碼偵測可讓您用 PowerShell、VBScript 或 JScript 撰寫檢查程式(最多 32 KB)。SCCM 會讀取指令碼的結束代碼及其輸出:只有當指令碼以 0 結束,並將某些內容寫入 STDOUT 時,該應用程式才會被視為已安裝。結束代碼為 0 且沒有輸出表示未安裝,而任何非零的結束代碼都會使狀態維持未知。實際上,只有在找到該應用程式時才寫入輸出,並且一律以 0 結束。
結束代碼 | 標準輸出 | STDERR | 偵測狀態 |
0 | 有輸出 | 任何 | 已安裝 |
0 | 空白 | 空白 | 未安裝 |
0 | 空白 | 有輸出 | 未知 |
非零 | 任何 | 任何 | 未知 |
偵測執行時
SCCM 會在安裝應用程式前先檢查偵測狀態,接著在安裝完成後再次檢查。如果安裝後找不到應用程式,SCCM 會回報錯誤 0x87D00324,即使該軟體其實已經在裝置上。下方的疑難排解章節會說明如何修正這個問題。
SCCM 傳回碼與重新啟動行為
安裝程式完成後會傳回一個結束代碼,而 SCCM 會使用部署類型的傳回碼清單來判斷安裝是否成功、是否需要重新啟動,或是否應該重試。了解這些代碼,也有助於 IT 團隊解讀結果並進行疑難排解。
代碼可能表示:
成功(無須重新開機):應用程式已成功安裝,且不需要重新開機。
失敗(無需重新啟動):應用程式安裝失敗。
硬重新啟動:應用程式已安裝,但裝置需要重新啟動才能完成。重新啟動完成前,其他項目都不會安裝。
軟重新啟動:應用程式已安裝,且裝置需要重新啟動。在此期間,其他安裝可繼續進行。
快速重試:目前有另一個安裝正在進行中,因此必須等它完成後才能繼續安裝。用戶端將每兩小時重試一次,最多重試 10 次
建立部署類型時,SCCM 會加入以下預設傳回代碼:
代碼 | Windows Installer (MSI) | 指令碼安裝程式 |
0 | 成功 | 成功 |
1707 | 成功 | 未新增 |
3010 | 軟重新啟動 | 軟重新啟動 |
1641 | 硬重新啟動 | 硬重新啟動 |
1618 | 快速重試 | 快速重試 |
除非您有另外加入,否則任何其他非零代碼都會視為失敗。例如,如果安裝程式在成功時回傳的是 1 而不是 0,請將 1 新增為 Success (no reboot),讓 SCCM 能正確判讀。
封裝後的安裝程式也需要對應其代碼。當使用者延後 PSADT 安裝時,工具組會傳回其延後代碼,預設為 1602。請將其改為 1618,或將 1602 新 增為 Fast Retry 代碼,讓 SCCM 重新嘗試,而不是記錄為失敗。我們的 PSADT 指南更詳細說明了延後機制。
別忘了:部署類型中的安裝後行為設定,會決定是由 SCCM 重新啟動裝置、由安裝程式重新啟動,或是不重新啟動。
如何疑難排解失敗的 SCCM 應用程式部署
如果 SCCM 應用程式部署失敗,也不用驚慌。只要做一點疑難排解,找出並減輕問題,就能快速處理常見狀況。
"安裝完成後未偵測到應用程式" (0x87D00324)
這個錯誤表示安裝程序已執行,但偵測方法沒有找到該應用程式。在這種情況下,請檢查 AppDiscovery.log 和 CIAgent.log,然後比對偵測規則與安裝程式實際寫入的內容。
"解除安裝完成後仍偵測到應用程式" (0x87D00325)
這個錯誤表示解除安裝已完成,但偵測機制仍然找得到該應用程式。請檢查 AppEnforce.log 以確認執行了哪個解除安裝命令,再檢查 AppDiscovery.log 查看偵測機制仍找到了什麼,並將其與偵測規則比對。
安裝僅在透過 SCCM 時失敗
如果透過 SCCM 安裝失敗,請嘗試在測試機器上以 SYSTEM 身分執行完全相同的命令,看看是否能在該機器上運作。也請檢查 silent 參數,因為安裝程式可能正在等待使用者輸入,而當時並沒有人可以提供。
部署在某些裝置上始終未啟動
如果部署類型允許的最長執行時間長於裝置的維護時段,部署將不會開始。若要解決此問題,請縮短執行時間或延長維護時段。
2026 年 SCCM 應用程式部署的現況
這就帶我們看到今日 SCCM 的現況。2609 版自 2026 年 10 月 26 日起已開放給所有客戶使用,適用於執行 2503 或更新版本的站台。這也是新排程下的第一個版本:Microsoft 現在每年只發布一次 SCCM 更新,重點放在安全性與穩定性,並表示新的創新將在 Intune 上進行。
許多團隊也會透過共同管理同時執行 SCCM 和 Intune。當用戶端應用程式工作負載移轉到 Intune 時,從 Intune 部署的應用程式會顯示在 Company Portal 中,而從 SCCM 部署的應用程式則會保留在 Software Center 中。
如果之後把應用程式移轉到 Intune,先前為 SCCM 所做的封裝工作依然很有價值。乾淨的靜默安裝、可靠的偵測邏輯,以及已對應的傳回代碼,都是 Intune Win32 應用程式所需的相同基礎要素;不過仍需要在 Intune 中重新設定一次,因為它的運作方式略有不同(例如,每個手動偵測規則都必須符合)。我們的 Intune Win32 Content Prep Tool 指南 有說明這部分。
Splashtop Agentic Packr 如何加快 SCCM 應用程式封裝速度
妥善封裝應用程式至關重要,但這也可能是重複且耗時的手動工作。幸好,只要有像 Splashtop Agentic Packr 這樣的工具,就不必如此。
Agentic Packr 是一款由 AI 驅動的工具,可將應用程式封裝自動化。它會讀取安裝程式、找出靜默安裝參數、撰寫偵測與需求規則,並建立套件,無需手動撰寫指令碼或具備封裝專業知識。套件是以 PSADT 建置,因此管理員可視需要開啟、檢閱並調整。每個套件都會在乾淨的虛擬機器上完成驗證、掃描與測試,並附上 QA 評分卡和執行記錄,讓 IT 管理員可在部署應用程式前先檢閱並核准。
當 Splashtop Agentic Packr 將應用程式封裝完成後,即可將其安裝、更新與解除安裝動作整合在一起,透過 SCCM 部署,或在任何 Windows 電腦上手動執行。此外,每當應用程式推出新版本時,Agentic Packr 都能偵測到並自動建立更新後的套件,讓 IT 團隊不必手動重新封裝每個新版本。
一次封裝應用程式,並在 SCCM 中更安心地部署
SCCM 應用程式部署始於經過測試的套件、準確的偵測,以及清楚對應的傳回代碼。有了這些基礎後,應用程式與更新就能送達需要它們的裝置,而 SCCM 也會回報實際發生的情況。
Splashtop Agentic Packr 可承擔大部分前置準備工作,從找出靜默安裝參數,到撰寫偵測規則並測試每個版本建置,讓 IT 團隊能把更少時間花在封裝上,將更多心力投入管理實際部署流程。
想了解 Splashtop Agentic Packr 如何高效且安全地協助封裝應用程式嗎?立即深入了解。





