共用方式為


使用 Windows Installer 和 Windows 資源保護

在 Windows Server 2008 和更新版本和 Windows Vista 和更新版本中安裝基本系統檔案、資料夾和登錄資訊時,Windows Installer 會遵守 Windows 資源保護 (WRP)。

Windows Server 2008 和 Windows Vista 中的 WRP 會取代 Windows Server 2003、Windows XP 和 Windows 2000 中的 Windows 檔案保護(WFP)。 Windows Installer 開發人員應該注意以下變更:安裝程式在 Windows Server 2008 及更高版本和 Windows Vista 及更高版本中如何處理受保護的資源。

  • 在 Windows Server 2008 和更新版本或 Windows Vista 和更新版本上執行時,Windows Installer 會略過 WRP 保護的任何檔案的安裝,安裝程式會在記錄檔中輸入警告,並繼續進行其餘安裝,而不會發生錯誤。 在 Windows Server 2003、Windows XP 和 Windows 2000 中,當 Windows Installer 遇到受 WFP 保護的檔案時,安裝程式會要求 WFP 安裝檔案。
  • Windows Server 2008 和更新版本上的 WRP 或 Windows Vista 和更新版本除了檔案之外,還可以保護登錄機碼。 如果 Windows Installer 遇到受 WRP 保護的登錄機碼,安裝程式會略過該登錄機碼的安裝,安裝程式會在記錄檔中輸入警告,並繼續進行其餘的安裝,而不會發生錯誤。
  • 請注意,如果 Windows Installer 元件包含受 WRP 保護的檔案或登錄機碼,則必須使用此資源作為元件的 KeyPath。 在此情況下,Windows Installer 不會安裝、更新或移除元件。 您不應該在安裝套件中包含任何受保護的資源。 相反,您應該使用 支援的資源替代機制來取代,以便進行 Windows 資源保護

如需 WRP 的詳細資訊,請參閱 Windows 資源保護 和 Technet Microsoft上提供的資訊。

適用於 Windows Server 2003 和 Windows XP/2000 的 WFP

在 Windows Server 2003、Windows XP 和 Windows 2000 上安裝基本系統檔案時,Windows Installer 會遵守 Windows 檔案保護 (WFP)。 如果應用程式的自動安裝修改受保護的系統檔案,WFP 會將檔案還原至已驗證的檔案版本。

Windows Installer 永遠不會嘗試安裝或取代受保護的檔案。 當 InstallFiles 動作或者在它之前排程的任何其他動作嘗試在 Windows Server 2003、Windows XP 或 Windows 2000 上安裝受保護的檔案時,安裝程式會向 WFP 呼叫請求,以安裝或取代該受保護的檔案。 安裝程式在執行 InstallFiles 動作之後,會立即向 WFP 要求安裝檔案。 WFP 會將用戶系統上的檔案以受保護檔案的快取版本安裝或取代。 請注意,這不保證從快取安裝的檔案版本是應用程式所需的版本。 在 WFP 安裝檔案之後,安裝程式會判斷此版本是否符合套件中的版本。 如果套件中的檔案版本大於已安裝的版本,安裝程式會通知使用者它無法更新系統,而且應用程式可能需要更新作系統。

如果 InstallFiles 之後排序的任何動作 嘗試安裝或取代系統上尚未安裝的受保護檔案,安裝程式就無法呼叫 WFP 來安裝檔案。 在此情況下,安裝程式會通知使用者無法更新系統,而且可能需要更新應用程式的作系統。

安裝程式也會在移除檔案時檢查糧食計劃署,而且永遠不會嘗試移除受保護的系統檔案。

受 WFP 保護的元件金鑰檔案

請注意,如果 Windows Installer 元件包含 WFP 檔案,則必須將此檔案指定為元件的密鑰路徑。

當安裝程式嘗試在 Windows Server 2003、Windows XP 或 Windows 2000 上安裝元件的密鑰檔案時,它會先呼叫 WFP 來判斷密鑰檔案是否受到保護。 當元件的金鑰檔案受到 WFP 保護,且已安裝該金鑰檔案時,只有在套件中的金鑰檔案版本大於已安裝的版本時,安裝程式才會更新元件。 如果安裝套件指定安裝元件,而且元件金鑰檔目前尚未安裝,則不論密鑰檔是否受到保護,安裝程式都會安裝元件。 安裝受 WFP 保護之金鑰檔案的任何元件之後,就會永久安裝,而且安裝程式永遠不會移除或取代元件。

由 WFP 安裝元件組件

WFP 的元件與糧食計劃署的系統檔案不同。

WFP 偵測嘗試取代受保護的系統檔案,藉此保護 Windows Server 2003、Windows XP 和 Windows 2000 系統檔案。 在 WFP 收到受保護目錄中檔案的目錄變更通知之後,就會觸發此保護。 當 WFP 收到此通知時,它會決定哪個檔案已變更。 如果檔案受到保護,WFP 會在靜態目錄檔案中查閱檔案簽章,以判斷新檔案是否為正確的版本。 如果檔案版本不正確,系統會以快取或散發媒體的正確版本取代檔案。

相反地,元件的 WFP 是動態的。 WFP 被擴展至檔案,當它們被新增至共用的並列組件快取時。 如果元件損毀,WFP 會要求安裝程式取代檔案。 視來源套件是否可存取而定,Windows Installer 可能無法取代檔案。 如果無法存取來源套件,WFP 會提出對話框,指出無法還原檔案。

請注意,安裝在 %windir%\winsxs 中的 Unmanaged 共用共享元件會受到 WFP 的保護。 應用程式目錄中安裝的非受控私有組件不受 WFP 保護。 安裝在應用程式目錄中或 %windir%\assembly\gac 中的受控的全域元件不受 WFP 保護。

Windows 資源保護機制