使用自動安裝程式安裝 IIS 7.0
作者 :Tobin Titus
簡介
Pkgmgr.exe是 Windows Vista/Windows Server® 2008 中安裝 Windows 選用功能的新命令工具:
- 取代安裝 Windows 選用功能的sysocmgr.exe
- 可讓您直接從命令提示字元或腳本安裝/取消安裝 Windows Vista 選擇性功能
Pkgmgr 可以採用命令列上安裝的 Windows 功能清單,或採用 xml 檔案名作為自動安裝的參數。 本文將說明如何使用 pkgmgr 自動安裝選擇性功能。
必要條件
支援的 Windows Vista/Windows Server 2008 版本
本逐步解說適用于下列版本的 Windows Vista/Windows Server 2008:
- Windows Vista Home Premium Edition
- Windows Vista Professional Edition
- Windows Vista Ultimate Edition
- Windows Server 2008 版本
繼續之前,請確定您已安裝其中一個支援的 Windows Vista/Windows Server 2008 版本。
本機使用者系統管理員 (LUA) 安全性
確定您在電腦上具有系統管理許可權:如果您以非內建系統管理員帳戶的使用者身分登入,則不會有這些許可權,即使此使用者已新增至電腦上的本機 Administrators 群組, (這是 Windows Server 2008 中的新安全性功能,稱為 LUA, 超出本文的範圍) 。 請務必使用 「runas」 Cmd-line 工具,以內建系統管理員帳戶身分登入,或視需要明確叫用應用程式作為內建系統管理員。
例如,若要啟動notepad.exe,請執行此命令:「runas /user:administrator notepad.exe」。 系統會提示您輸入系統管理員帳戶的密碼。 執行 「runas /user:administrator cmd.exe」,讓已提升許可權的 Cmd-box 殼層很有用。 您從該 Cmd-box 執行的每個應用程式也會提高許可權,而且您不需要使用該 Cmd-box 的 「runas」 語法。
程序
步驟 1:Pkgmgr.exe概觀
Vista/Windows Server 2008 中的 Windows 選用功能是使用名為 Pkgmgr 的新命令工具來安裝。 使用 pkgmgr.exe 的命令列語法如下:
Start /w pkgmgr.exe /iu:update1;update2…
Pkgmgr.exe命令
/iu:{update name};
這會指定要依更新名稱安裝的更新,並採用以分號分隔的更新名稱進行安裝。
/uu:{update name};
這會指定要卸載的更新,並採用分號分隔的可選取更新清單,以從系統卸載。 至少必須指定一個更新名稱
/n:{unattend XML}
這會指定自動 XML 檔案的檔案名。
注意
如果您在沒有 「start /w」 前置詞的情況下執行 pkgmgr,pkgmgr Cmd 會立即傳回,而且您不知道何時完成選擇性功能安裝。
步驟 2:開啟命令視窗
遵循上述必要條件一節中的指示,以啟動以本機系統管理員帳戶身分執行的命令視窗。
步驟 3:建立Unattend.xml檔案
從命令視窗執行 notepad.exe。
若要只安裝 IIS 7.0 預設功能,請將下列unattend.xml文字複製到記事本。
<?xml version="1.0" ?>
<unattend xmlns="urn:schemas-microsoft-com:unattend"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<servicing>
<!-- Install a selectable update in a package that is in the Windows Foundation namespace -->
<package action="configure">
<AssemblyIdentity
name="Microsoft-Windows-Foundation-Package"
version="6.0.5308.6"
language="neutral"
processorArchitecture="x86"
publicKeyToken="31bf3856ad364e35"
versionScope="nonSxS"
/>
<selection name="IIS-WebServerRole" state="true"/>
<selection name="WAS-WindowsActivationService" state="true"/>
<selection name="WAS-ProcessModel" state="true"/>
<selection name="WAS-NetFxEnvironment" state="true"/>
<selection name="WAS-ConfigurationAPI" state="true"/>
</package>
</servicing>
</unattend>
如果您想要安裝所有 IIS 7.0 功能以供評估之用,請使用下列其中一個unattend.xml檔案。
若為 Windows Vista Professional、Windows Vista Ultimate 或 Windows Server 2008 版本,請將下列文字複製並貼到記事本中。
<?xml version="1.0" ?>
<unattend xmlns="urn:schemas-microsoft-com:unattend"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<servicing>
<!-- Install a selectable update in a package that is in the Windows Foundation namespace -->
<package action="configure">
<assemblyIdentity
name="Microsoft-Windows-Foundation-Package"
version="6.0.5308.6"
language="neutral"
processorArchitecture="x86"
publicKeyToken="31bf3856ad364e35"
versionScope="nonSxS"
/>
<selection name="IIS-WebServerRole" state="true"/>
<selection name="IIS-WebServer" state="true"/>
<selection name="IIS-CommonHttpFeatures" state="true"/>
<selection name="IIS-StaticContent" state="true"/>
<selection name="IIS-DefaultDocument" state="true"/>
<selection name="IIS-DirectoryBrowsing" state="true"/>
<selection name="IIS-HttpErrors" state="true"/>
<selection name="IIS-HttpRedirect" state="true"/>
<selection name="IIS-ApplicationDevelopment" state="true"/>
<selection name="IIS-ASPNET" state="true"/>
<selection name="IIS-NetFxExtensibility" state="true"/>
<selection name="IIS-ASP" state="true"/>
<selection name="IIS-CGI" state="true"/>
<selection name="IIS-ISAPIExtensions" state="true"/>
<selection name="IIS-ISAPIFilter" state="true"/>
<selection name="IIS-ServerSideIncludes" state="true"/>
<selection name="IIS-HealthAndDiagnostics" state="true"/>
<selection name="IIS-HttpLogging" state="true"/>
<selection name="IIS-LoggingLibraries" state="true"/>
<selection name="IIS-RequestMonitor" state="true"/>
<selection name="IIS-HttpTracing" state="true"/>
<selection name="IIS-CustomLogging" state="true"/>
<selection name="IIS-ODBCLogging" state="true"/>
<selection name="IIS-Security" state="true"/>
<selection name="IIS-BasicAuthentication" state="true"/>
<selection name="IIS-WindowsAuthentication" state="true"/>
<selection name="IIS-DigestAuthentication" state="true"/>
<selection name="IIS-ClientCertificateMappingAuthentication" state="true"/>
<selection name="IIS-IISCertificateMappingAuthentication" state="true"/>
<selection name="IIS-URLAuthorization" state="true"/>
<selection name="IIS-RequestFiltering" state="true"/>
<selection name="IIS-IPSecurity" state="true"/>
<selection name="IIS-Performance" state="true"/>
<selection name="IIS-HttpCompressionStatic" state="true"/>
<selection name="IIS-HttpCompressionDynamic" state="true"/>
<selection name="IIS-WebServerManagementTools" state="true"/>
<selection name="IIS-ManagementConsole" state="true"/>
<selection name="IIS-ManagementScriptingTools" state="true"/>
<selection name="IIS-ManagementService" state="true"/>
<selection name="IIS-IIS6ManagementCompatibility" state="true"/>
<selection name="IIS-Metabase" state="true"/>
<selection name="IIS-WMICompatibility" state="true"/>
<selection name="IIS-LegacyScripts" state="true"/>
<selection name="IIS-LegacySnapIn" state="true"/>
<selection name="IIS-FTPPublishingService" state="true"/>
<selection name="IIS-FTPServer" state="true"/>
<selection name="IIS-FTPManagement" state="true"/>
<selection name="WAS-WindowsActivationService" state="true"/>
<selection name="WAS-ProcessModel" state="true"/>
<selection name="WAS-NetFxEnvironment" state="true"/>
<selection name="WAS-ConfigurationAPI" state="true"/>
</package>
</servicing>
</unattend>
如果您要在 Windows Vista 家用版上安裝 IIS 7.0,請將下列文字複製並貼到記事本:
<?xml version="1.0" ?>
<unattend xmlns="urn:schemas-microsoft-com:unattend"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<servicing>
<!-- Install a selectable update in a package that is in the Windows Foundation namespace -->
<package action="configure">
<assemblyIdentity
name="Microsoft-Windows-Foundation-Package"
version="6.0.5303.0"
language="neutral"
processorArchitecture="x86"
publicKeyToken="31bf3856ad364e35"
versionScope="nonSxS"
/>
<selection name="IIS-WebServerRole" state="true"/>
<selection name="IIS-WebServer" state="true"/>
<selection name="IIS-CommonHttpFeatures" state="true"/>
<selection name="IIS-StaticContent" state="true"/>
<selection name="IIS-DefaultDocument" state="true"/>
<selection name="IIS-DirectoryBrowsing" state="true"/>
<selection name="IIS-HttpErrors" state="true"/>
<selection name="IIS-HttpRedirect" state="true"/>
<selection name="IIS-ApplicationDevelopment" state="true"/>
<selection name="IIS-ASPNET" state="true"/>
<selection name="IIS-NetFxExtensibility" state="true"/>
<selection name="IIS-ASP" state="true"/>
<selection name="IIS-CGI" state="true"/>
<selection name="IIS-ISAPIExtensions" state="true"/>
<selection name="IIS-ISAPIFilter" state="true"/>
<selection name="IIS-ServerSideIncludes" state="true"/>
<selection name="IIS-HealthAndDiagnostics" state="true"/>
<selection name="IIS-HttpLogging" state="true"/>
<selection name="IIS-LoggingLibraries" state="true"/>
<selection name="IIS-RequestMonitor" state="true"/>
<selection name="IIS-HttpTracing" state="true"/>
<selection name="IIS-CustomLogging" state="true"/>
<selection name="IIS-ODBCLogging" state="true"/>
<selection name="IIS-Security" state="true"/>
<selection name="IIS-BasicAuthentication" state="true"/>
<selection name="IIS-URLAuthorization" state="true"/>
<selection name="IIS-RequestFiltering" state="true"/>
<selection name="IIS-IPSecurity" state="true"/>
<selection name="IIS-Performance" state="true"/>
<selection name="IIS-HttpCompressionStatic" state="true"/>
<selection name="IIS-HttpCompressionDynamic" state="true"/>
<selection name="IIS-WebServerManagementTools" state="true"/>
<selection name="IIS-ManagementConsole" state="true"/>
<selection name="IIS-ManagementScriptingTools" state="true"/>
<selection name="IIS-ManagementService" state="true"/>
<selection name="IIS-IIS6ManagementCompatibility" state="true"/>
<selection name="IIS-Metabase" state="true"/>
<selection name="IIS-WMICompatibility" state="true"/>
<selection name="IIS-LegacyScripts" state="true"/>
<selection name="IIS-LegacySnapIn" state="true"/>
<selection name="WAS-WindowsActivationService" state="true"/>
<selection name="WAS-ProcessModel" state="true"/>
<selection name="WAS-NetFxEnvironment" state="true"/>
<selection name="WAS-ConfigurationAPI" state="true"/>
</package>
</servicing>
</unattend>
步驟 4:取得 Windows 組建編號
然後您必須檢查已安裝的 Windows 版本號碼。 若要尋找確切的版本,請執行下列動作:
從 [開始] 功能表中,按一下 [ 執行 ],然後移至總管。
在記事本中,在 XML 屬性版本中輸入此值,以符合您已安裝的組建。
在此情況下,version=「6.0.5308.6」
如果您已安裝在 64 位 CPU 上,則必須編輯 processorArchitecture XML 屬性:
processorArchitecture=「amd64」
注意
可能的值為:x86、amd64 和 ia64。
步驟 5:儲存Unattend.xml檔案
儲存名稱為 「unattend.xml」 的記事本檔案
步驟 6:使用 Unattend.xml 檔案執行 Pkgmgr
在命令視窗中,輸入下列命令列:
start /w pkgmgr /n:unattend.xml
注意:如果您將unattend.xml儲存至磁片磁碟機資料夾,則命令視窗的目前磁片磁碟機和資料夾必須指定 pkgmgr /n: 參數中unattend.xml檔案的完整路徑。
步驟 7:等候安裝程式完成
透過 pkgmgr.exe 的 IIS 7.0 設定應該需要 1 到 5 分鐘的時間。 當命令提示字元傳回時,IIS 7.0 安裝程式就會完成。
步驟 8:檢查錯誤碼
在命令提示字元中,輸入:
echo %errorlevel%
結果為 0 表示成功。
總結
在本文中,我們已探討如何使用 pckmgr.exe 來安裝作業系統和 IIS 7.0。