文章編號: 889815 - 上次校閱: 2007年8月13日 - 版次: 4.3

當您嘗試在 Windows XP Service Pack 2 中使用 Visual Basic 指令碼以無訊息方式安裝 Hotfix 或更新時,會出現 [開啟檔案 - 安全性警告] 對話方塊

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
全部展開 | 全部摺疊

徵狀

當您嘗試使用 Microsoft Visual Basic 指令碼,在 Microsoft Windows XP Service Pack 2 (SP2) 電腦上以無訊息方式安裝 Hotfix 或更新時,會收到 [開啟檔案 - 安全性警告] 對話方塊。

發生的原因

當您執行類似下列範例指令碼的 Visual Basic 指令碼,以便安裝從網際網路下載的 Hotfix 或更新時,可能就會發生這個問題。

注意 下列範例指令碼會安裝安全性更新 MS04-038。

Set oShell = CreateObject("WScript.Shell")

oShell.Run "c:\temp\ms04-038\WindowsXP-KB834707-x86-enu /quiet /passive /norestart",0, True

Set oShell = Nothing


此範例中的更新應該會以無訊息方式安裝。然而,由於更新檔案是從網際網路下載,因而被視為有危險性,所以,會出現 [開啟檔案 - 安全性警告] 對話方塊。

因為新增了「附件執行服務」(AES) 的緣故,這是 Windows XP SP2 中的新行為。每個使用 ShellExecute() API 所執行的程式都會通過 AES。AES 會將下載的更新檔案視為來自 [網際網路] 區域。因此,AES 會顯示 [開啟檔案 - 安全性警告] 對話方塊。AES 會檢查檔案,看看檔案是否有 Zone.Identifier 類型的檔案資料流,然後判斷檔案來自哪個區域,以及檔案執行時要套用的保護層級。

其他可行方案

如果要暫時略過這個問題,請使用下列其中一種方法。
方法 1:變更 SEE_MASK_NOZONECHECKS 環境變數

暫時將 SEE_MASK_NOZONECHECKS 環境變數變更為 1。

注意 這個設定值不能當做永久的系統環境變數,因為此設定值會停用所有的「區域檢查」。

如果要暫時變更 SEE_MASK_NOZONECHECKS 環境變數,以便在 Windows XP SP2 中以無訊息方式安裝 Hotfix,請使用下列範例指令碼:
set oShell= CreateObject("Wscript.Shell")

set oEnv = oShell.Environment("PROCESS")

oEnv("SEE_MASK_NOZONECHECKS") = 1

oShell.Run "c:\ms04-038\WindowsXP-KB834707-x86-enu /quiet /passive /norestart",0,True

oEnv.Remove("SEE_MASK_NOZONECHECKS")


方法 2:使用命令指令碼

您可以使用命令指令碼來取代 Visual Basic 指令碼,以無訊息方式安裝 Hotfix 或更新。如果要執行這項操作,請依照下列步驟執行:
  1. 按一下 [開始],再按一下 [執行],輸入 cmd,然後按一下 [確定]
  2. 在命令提示字元中輸入下列行,並在每一行之後按下 ENTER:
    @echo off
    c:\ms04-038\WindowsXP-KB834707-x86-enu /quiet /passive /norestart
  3. 安裝完成之後,輸入 exit,然後按下 ENTER 以關閉命令提示字元。

其他相關資訊

Microsoft 僅提供示範性的程式設計範例,不做任何明示或暗示的保證,其中包括 (但不限於) 其適售性與適合某特定用途之默示擔保責任。本文假設您對於示範所用的程式設計語言,以及用來建立和偵錯程序的工具相當熟悉。Microsoft 技術支援工程師可以協助說明特定程序的功能,但無法修改這些範例以提供附加功能或建構程序來滿足您的特定需求。如果您的程式設計經驗不足,請連絡 Microsoft 認證夥伴或撥打 Microsoft Certified Partner 諮詢熱線:(800) 936-5200。如需有關 Microsoft 認證夥伴的詳細資訊,請造訪下列 Microsoft 網站:
https://solutionfinder.microsoft.com/ (https://solutionfinder.microsoft.com/)
如需有關 Microsoft 所提供支援選項的詳細資訊,請造訪下列 Microsoft 網站:
http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS (http://support.microsoft.com/default.aspx?scid=fh;%5Bln%5D;cntactms)

這篇文章中的資訊適用於:
  • Microsoft Windows XP Professional Service Pack 2 (SP2)
  • Microsoft Windows XP Home Edition Service Pack 2 (SP2)
關鍵字:?
kbtshoot kbprb KB889815
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。