Windows XP Service Pack 2 應用程式相容性 - 補充指令碼

作者: Peter Costantini,The Scripting Guys,Microsoft Corporation

這組指令碼等於《Application Compatibility Testing and Mitigation Guide for Windows XP Service Pack 2》(Windows XP Service Pack 2 應用程式相容性測試及緩和指南,以下簡稱《指南》) 隨附的指令碼,而後者是<附錄>中說明的批次檔。您可以下載用來安裝該指南及其相關指令碼的 Windows Installer (.msi) 檔案,網址是:
http://www.microsoft.com/downloads/ (英文)

電腦上必須安裝 Windows XP Service Pack 2,才能執行大部份的指令碼。例外狀況包括以狀況為基礎的指令碼 (在下列指令碼清單中說明),它可顯示部署 Service Pack 2 的方法。您可以在下列網址中,找到針對 IT 專業人員所提供的 Service Pack 2 下載及資源;
http://www.microsoft.com/taiwan/technet/winxpsp2/

與《指南》一起安裝的指令碼主要是使用 Windows Script Host (WSH) 的批次檔及 VBScript 指令碼,而這個集合中的指令碼主要是使用 Windows Management Instrumentation (WMI) 及 Windows 防火牆 COM 物件模式。它們可示範如何根據特定需求及指令處理偏好,使用替代指令處理技術,以更適合您特殊需求的方式,來完成相同的作業。

因為 WMI 可透過「分散式元件物件模式」(DCOM) 啟用內建遠端,所以這些指令碼可以輕鬆地針對多部遠端電腦執行。同時,這些指令碼通常較為複雜,因為它們:

  • 會使用可變更的參數變數,而非加以固定。

  • 會進行一些錯誤檢查。

  • 有時會使用文字檔進行輸入。

  • 有時會分成子常式及函數。

不過,Windows 防火牆物件模式不使用 DCOM 遠端,且只在本機電腦上運作。

這些指令碼大部份都直接對應到《指南》所包括的指令碼。這種指令碼的檔案名稱後面都有 "-wmi"。如果是 Windows 防火牆指令碼,檔案名稱後面就會跟著 "-com",因為 Windows 防火牆會使用它自己的 COM 物件模式,而不使用 WMI。有些指令碼會有額外的功能。最後,這個集合包括的部份額外指令碼,不會對應到《指南》中的任何指令碼。

這些指令碼是適用於使用者特定需求的範例。它們通常不能以現狀直接執行。相反的,您必須以您特定電腦或網路的正確參數,來取代指令碼及輸入文字檔中包括的通用參數。此類參數通常都會在指令碼中加上註解。

本頁內容

指令碼
案例 1
案例 2
支援人員


指令碼

檔案名稱

相關檔案

目的

備註

AddOn-wmi.vbs

 

停用特定 Internet Explorer 附加元件。

 

AddOn-wmi-multi.vbs

addon-hosts.txt

在多部電腦上停用特定 Internet Explorer 附加元件。

 

AllowPop-wmi.vbs

 

允許特定站台的 Internet Explorer 快顯視窗。

 

AllowPop-wmi-multi.vbs

allowpop-hosts.txt

在多部電腦上允許特定站台的 Internet Explorer 快顯視窗。

 

Attachments-wmi.vbs

 

關閉或開啟 Outlook Express 的附件限制。

 

Attachments-wmi-multi.vbs

attach-hosts.csv

在多部電腦上關閉或開啟 Outlook Express 的附件限制。

 

ClosePorts-com.vbs

 

關閉 Windows 防火牆的特定連接埠,保留已儲存的連接埠設定。

只在本機電腦上執行。在《指南》中,沒有可對應到此指令碼的指令碼:在這些指令碼中,closeport.vbs 可刪除連接埠且對應到 RemovePorts-wmi.vbs。

ClosePrograms-com.vbs

 

停用 Windows 防火牆的特定應用程式例外狀況,但保留已儲存的應用程式設定。

只在本機電腦上執行。在《指南》中,沒有可對應到此指令碼的指令碼:在這些指令碼中,closeprogram.vbs 可刪除程式且對應到 RemovePrograms-wmi.vbs。

DCOMSec-wmi.vbs

 

豁免應用程式,不進行 DCOM 啟用安全性檢查。

 

DCOMSec-wmi-multi.vbs

dcomsec-hosts.csv

在多部電腦上豁免應用程式,不進行 DCOM 啟用安全性檢查。

 

FwDisable.vbs

 

停用 XP SP2 預設啟用的 Windows 防火牆。

只在本機電腦上執行。不包括在《指南》指令碼中。

FwEnable.vbs

 

啟用 Windows 防火牆。

只在本機電腦上執行。不包括在《指南》指令碼中。

FwListExceptions.vbs

 

列出 Windows 防火牆的已開啟連接埠及已授權應用程式。

只在本機電腦上執行。不包括在《指南》指令碼中。

FwRemoteAdminDisable.vbs

 

停用 Windows 防火牆遠端管理。

只在本機電腦上執行。不包括在《指南》指令碼中

FwRemoteAdminEnable.vbs

 

啟用 Windows 防火牆遠端管理。Windows XP Service Pack 2 預設停用遠端管理。

只在本機電腦上執行。不包括在《指南》指令碼中

install.vbs

案例 1 & 2 的一部份

 

請參閱案例 1 & 2 的部份。

Install-local.vbs

案例 1 & 2 的一部份

 

請參閱案例 1 & 2 的部份。

LocalMachineLockdown-wmi.vbs

 

開啟或關閉 iexplore.exe 處理程序的本機電腦鎖定。

 

LocalMachineLockdown-wmi-multi.vbs

lockdown-hosts.csv

在多部電腦上開啟或關閉 iexplore.exe 處理程序的本機電腦鎖定。

 

OpenPorts-com.vbs

 

開啟 Windows 防火牆的特定連接埠。

只在本機電腦上執行。對應到《指南》中的 openport.vbs 指令碼,但是可以開啟多個連接埠。

OpenPrograms-com.vbs

 

將指定的程式新增到 Windows 防火牆例外清單。

只在本機電腦上執行。對應到《指南》中的 openprogram.vbs 指令碼,但是可以授權多個連接埠。

RemovePorts-com.vbs

 

刪除 Windows 防火牆的特定連接埠。

只在本機電腦上執行。對應到《指南》中的 closeport.vbs 指令碼,但是可以刪除多個連接埠。

RemovePrograms-com.vbs

 

刪除 Windows 防火牆的特定應用程式例外狀況。

只在本機電腦上執行。對應到《指南》中的 closeprogram.vbs 指令碼,但是可以刪除多個程式。

RpcSec-wmi.vbs

 

設定 RPC 安全性略過 Windows XP Service Pack 2 的新限制,並允許匿名回撥。

 

RpcSec-wmi-multi.vbs

rpcsec-hosts.csv

在多部電腦上設定 RPC 安全性略過 Windows XP Service Pack 2 的新限制,並允許匿名回撥。

 

runonce.vbs

案例 1 & 2 的一部份

 

請參閱案例 1 & 2 的部份。

scenario1.vbs

computers.txt
install.vbs
Install-local.vbs
runonce.vbs

在多部電腦上部署 Windows XP Service Pack 2 並設定 Windows 防火牆。

請參閱案例 1 的部份。

scenario2.vbs

install.vbs
Install-local.vbs
runonce.vbs

在本機行動電腦上安裝 Windows XP Service Pack 2 並設定 Windows 防火牆。

請參閱案例 2 的部份。

WinFire-com.vbs

 

在 Windows 防火牆中,開啟指定的連接埠並授權指定的應用程式。

只在本機電腦上執行。

ZoneElevation-wmi.vbs

 

開啟或關閉 iexplore.exe 處理程序的區域提升限制。

 

ZoneElevation-wmi-multi.vbs

zoneelev-hosts.csv

在多部電腦上開啟或關閉 iexplore.exe 程序的區域提升限制。

 

Zones-wmi.vbs

 

設定特定 Internet Explorer 安全性區域的設定。

 

Zones-wmi-multi.vbs

zones-hosts.txt

在多部電腦上設定特定 Internet Explorer 安全性區域的設定。

 


案例 1

如需案例 1 的完整說明,請參閱《Application Compatibility Testing and Mitigation Guide for Windows XP Service Pack 2》。

Contoso Ltd. 是個中等大小的國際性製藥公司,有專門的 IT 部門。Contoso 想要部署 Windows XP Service Pack 2,並設定 Windows 防火牆以進行遠端管理。

案例 1 的補充版顯示如何使用 VBScript 指令碼 - 主要是利用 Windows Management Instrumentation (WMI) 及 Windows 防火牆 COM 物件模式 - 來完成這些目標。

此案例會假設:

  • 執行指令碼的認證必須具有每部主機的管理權限。

  • 變數中的電腦及檔案名稱都必須加以變更,以反映實際的電腦及網路。指令碼中的部份名稱是預留位置。

  • 必要的指令碼位於管理工作站的相同資料夾中。

  • SP2 安裝程式執行檔 (WindowsXP-KB835935-SP2-ENU.exe) 位於網路共用中,可由執行指令碼的所有網路主機存取。這個共用不一定 (但有可能) 與儲存指令碼及執行 Scenario1.vbs 之管理工作站上的共用相同。

若要將 SP2 安裝程式複製到每部主機並在本機加以執行:

  • 以替代名稱重新命名 install.vbs (例如 install-remote.vbs),並將 install-local.vbs 重新命名為 install.vbs,如下所述。

  • 在 scenario1.vbs CopyFiles 函數中,將建立檔案陣列的一行程式碼變更為:

    arrFiles = Array("install.vbs", "runonce.vbs", "WindowsXP-KB835935-SP2-ENU.exe")
    

  • 確定 SP2 安裝程式執行檔 (WindowsXP-KB835935-SP2-ENU.exe) 與指令碼都位於相同資料夾中。變化此案例之後,必須將它複製到每部網路主機,才能進行安裝。

SP2 安裝程式執行檔的大小超過 260 MB,如果將它複製到多個用戶端,則可能會產生可觀的網路流量;所以,在網路及儲存空間的考量之下,從伺服器執行它會是較為理想的作法。

檔案名稱

準備

目的

備註

scenario1.vbs

 

在本機管理工作站執行。從 computers.txt 取得遠端主機清單,並將下列檔案複製到每部電腦:install.vbs、runonce.vbs、update.exe。複製檔案之後,請在每部遠端電腦上,以本機處理程序的方式來執行 install.vbs。

如果從要複製到本機電腦的安裝檔案執行 Windows XP Service Pack 2,請在 CopyFiles 函數中,將可建立陣列的一行程式碼變更如下:

arrFiles = Array _ 
("install.vbs", "runonce.vbs", _ 
"WindowsXP-KB835935-SP2-ENU.exe")

computers.txt

編輯以包括實際用戶端名稱。
不要在用戶端名稱前面加上雙反斜線 "\\"。
確定最後一個項目之後沒有空的新行,因為指令碼會將它解譯為沒有名稱的電腦。

執行指令碼的可存取網路主機清單。

 

install.vbs

變更變數以反映實際電腦及網路。

  • 在遠端伺服器上,從 Windows XP Service Pack 2 執行檔執行 SP2 安裝作業。

  • 在主機上設定 AutoAdmin 及 RunOnce 登錄項目。

  • 將結果記錄到文字檔 <computername>-sp2-instlog.txt,並將檔案複製回管理工作站。

  • 強制執行重新開機,這樣就會自動執行 runonce.vbs。

若要從已複製到本機電腦的安裝檔案安裝 Service Pack 2,請將 install.vbs 重新命名為例如 install-remote.vbs 等名稱,並將 install-local.vbs 重新命名為 install.vbs。

install-local.vbs

變更變數以反映實際電腦及網路。

  • 在本機電腦上,從 Windows XP Service Pack 2 執行檔執行 SP2 安裝作業。

  • 其餘功能與 install.vbs 相同。

若要從已複製到本機電腦的安裝檔案安裝 Service Pack 2,請將 install.vbs 重新命名為例如 install-remote.vbs 等名稱,並將 install-local.vbs 重新命名為 install.vbs。

runonce.vbs

變更變數以反映實際網路。

  • 在重新開機之後首次執行,由 RunOnce reg 項目啟動。

  • 設定 Windows 防火牆允許某些程式並開啟某些連接埠。

  • 在 Windows 防火牆上啟用遠端管理。

  • 移除 AutoAdmin 及 RunOnce 登錄項目。

  • 將結果記錄到文字檔 <computername>-sp2-clnuplog.txt,並將檔案複製回管理工作站。

  • 再次強制執行重新開機。

 


案例 2

如需案例 2 的完整說明,請參閱《Application Compatibility Testing and Mitigation Guide for Windows XP Service Pack 2》。

Contoso 有個小型的遠端附屬公司,其中有數個行動使用者。他們已經收到指示,在兩週內的某天向公司報告,以安裝及設定 Service Pack 2。使用者已經收到指示,在使用 runas 指令的本機電腦上執行指令碼,以完成安裝作業。系統會提示使用者輸入只具有本機「管理員」權限的特定密碼。

案例 2 的補充版顯示如何使用 VBScript 指令碼 - 主要是利用 Windows Management Instrumentation (WMI) 及 Windows 防火牆 COM 物件模式 - 來完成這些目標。

此案例會假設:

  • 必要的指令碼位於管理工作站的相同資料夾中。

  • 執行指令碼的認證必須具有本機電腦的管理權限。使用者必須有「管理員」認證,並在 runas 提示時進行輸入。

  • 變數中的電腦及檔案名稱都必須加以變更,以反映實際的電腦及網路。指令碼中的部份名稱是預留位置。

  • SP2 安裝程式執行檔 (WindowsXP-KB835935-SP2-ENU.exe) 位於網路共用中,可透過附屬公司網站由執行指令碼的電腦存取。

若要在本機電腦上執行 SP2 安裝程式:

  • 以替代名稱重新命名 install.vbs (例如 install-remote.vbs),並將 install-local.vbs 重新命名為 install.vbs,如下所述。

  • 確定 SP2 安裝程式執行檔 (WindowsXP-KB835935-SP2-ENU.exe) 與指令碼都位於本機電腦的相同資料夾中。變化此案例之後,必須將它複製到本機電腦,才能進行安裝。

SP2 安裝程式執行檔的大小超過 260 MB,如果將它複製到多個用戶端,則可能會產生可觀的網路流量;所以,在網路及儲存空間的考量之下,從伺服器執行它會是較為理想的作法。

檔案名稱

準備

目的

備註

scenario2.vbs

視需要變更變數以反映實際電腦。

以分公司中某位不是管理員的使用者身分,在本機電腦上執行。使用者必須輸入本機「管理員」密碼。
指令碼會執行 Windows XP SP2 安裝程式及 strScript (install.vbs) 指定的設定指令碼,最後會重新開機。
當電腦再次啟動時,就會在管理認證下執行另一個指令碼 (runonce.vbs),並執行更多設定。電腦將再次重新開機。

 

scenario2.cmd

視需要變更 UNC 路徑以反映實際電腦。

與 scenario2.vbs 執行相同功能的批次檔。

顯示為 .vbs script 的替代範例。

install.vbs

變更變數以反映實際電腦及網路。

  • 在遠端伺服器上,從 Windows XP Service Pack 2 執行檔執行 SP2 安裝作業。

  • 在主機上設定 AutoAdmin 及 RunOnce 登錄項目。

  • 將結果記錄到文字檔 <computername>-sp2-instlog.txt。

  • 強制執行重新開機,這樣就會自動執行 runonce.vbs。

與 scenario1.vbs 使用相同指令碼,但是必須變更變數,讓指令碼將記錄儲存在本機。
若要從已複製到本機電腦的安裝檔案安裝 Service Pack 2,請將 install.vbs 重新命名為例如 install-remote.vbs 等名稱,並將 install-local.vbs 重新命名為 install.vbs。
若要以 scenario2.vbs 執行此指令碼,請將複製記錄檔的 UNC 路徑變更為本機路徑。

install-local.vbs

變更變數以反映實際電腦及網路。

  • 在本機電腦上,從 Windows XP Service Pack 2 執行檔執行 SP2 安裝作業。

  • 其餘功能與 install.vbs 相同。

與 scenario1.vbs 使用相同指令碼,但是必須變更變數,讓指令碼將記錄儲存在本機。
若要從已複製到本機電腦的安裝檔案安裝 Service Pack 2,請將 install.vbs 重新命名為例如 install-remote.vbs 等名稱,並將 install-local.vbs 重新命名為 install.vbs。
若要以 scenario2.vbs 執行此指令碼,請將複製記錄檔的 UNC 路徑變更為本機路徑。

runonce.vbs

變更變數以反映實際網路。
將指派給 g_strRemoteFolder 的值變更為本機資料夾 "c:\temp-ac\logs"

  • 在重新開機之後首次執行,由 RunOnce reg 項目啟動。

  • 設定 Windows 防火牆允許某些程式並開啟某些連接埠。

  • 在 Windows 防火牆上啟用遠端管理。

  • 移除 AutoAdmin 及 RunOnce 登錄項目。

  • 將結果記錄到文字檔 <computername>-sp2-clnuplog.txt。

  • 再次強制執行重新開機。

與 scenario1.vbs 使用相同指令碼。
若要以 scenario2.vbs 執行此指令碼,請將複製記錄檔的 UNC 路徑變更為本機路徑。


支援人員

如需線上對等支援,請加入 msnews.microsoft.com 新聞伺服器上的 microsoft.public.windows.server.scripting (英文) 社群。若您想要對範例指令碼或指令碼指南,提供意見、回報問題,請與 Microsoft TechNet (英文) 連絡。

免責聲明

本頁面說明的此範例指令碼不支援任何 Microsoft 標準技術支援方案或服務。上述的範例指令碼係依「現況」提供,不附帶任何擔保。Microsoft 公司不提供任何的默示擔保,包括但不限於任何商業適售性及特定用途之適用性的默示擔保。您必須承擔此範例指令碼或文件所造成的一切風險。在任何情況下,無論是使用或無法使用此範例指令碼或文件所造成的損害 (包括但不限於營業之損失、營業之中斷、營業資訊之滅失及其他金錢損失),Microsoft 公司、作者群或此指令碼之創作、製造或散發有關之人員概不負責,即使 Microsoft 已經被告知損害發生之可能性亦同。

顯示: