文章編號: 892199 - 上次校閱: 2007年5月23日 - 版次: 10.2

無法啟動 Windows XP Service Pack 2 中的 Windows 防火牆服務

重要 本文包含如何修改登錄的相關資訊。修改登錄之前,請務必備份登錄。同時了解如何在發生問題時還原登錄。如需有關如何備份、還原及修改登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
256986? (http://support.microsoft.com/kb/256986/ ) Microsoft Windows 登錄說明

在此頁中

全部展開 | 全部摺疊

徵狀

安裝 Microsoft Windows XP Service Pack 2 (SP2) 之後,無法啟動「Windows 防火牆」服務。您可能會遇到下列一或多個徵狀:
  • 當您按一下 [控制台] 中的 [Windows 防火牆] 時,可能會收到下列錯誤訊息:
    Windows Firewall settings cannot be displayed because the associated service is not running.Windows Firewall settings cannot be displayed because the associated service is not running. Do you want to start the Windows Firewall/Internet Connection Sharing (ICS) service? (無法顯示 Windows 防火牆設定值,因為相關聯的服務不在執行中。要啟動 Windows Firewall/Internet Connection Sharing (ICS) 服務?)
    如果按一下 [是],即會收到下列錯誤訊息:
    Windows 無法啟動 Windows Firewall/Internet Connection Sharing (ICS) 服務。
  • 如果您嘗試使用「服務」手動啟動「Windows 防火牆」服務,可能會收到下列錯誤訊息:
    Could not start the Windows Firewall/Internet Connection Sharing (ICS) service on Local Computer.
    Error 0x80004015:The class is configured to run as a security id different from the caller (無法啟動本機電腦上的 Windows Firewall/Internet Connection Sharing (ICS) 服務。錯誤 0x80004015: 此類別已設定成使用不同於呼叫者的安全性識別碼執行)
    注意 如果要開啟 [服務],請依序按一下 [開始][控制台],再按兩下 [系統管理工具],然後按兩下 [服務]。如需有關使用「服務」的資訊,請在 [服務][執行] 功能表上,按一下 [說明]
  • 系統事件日誌中可能會顯示下列事件:

    事件識別碼:7036
    事件來源: 服務控制管理員
    事件類型:資訊
    事件類別目錄:無
    描述:
    Windows Firewall/Internet Connection Sharing (ICS) 服務已呈現停止狀態。

    事件識別碼:7023
    來源:服務控制管理員
    類型:錯誤
    描述:
    Windows Firewall/Internet Connection Sharing (ICS) 服務因下列錯誤而終止:
    此類別已設定成使用不同於呼叫者的安全性識別碼執行

  • 當您使用 SC 查詢命令判斷「Windows 防火牆/網際網路連線共用」服務的狀態時,會顯示下列輸出:
     
    C:\>sc query sharedaccess SERVICE_NAME:sharedaccess TYPE :20 WIN32_SHARE_PROCESS STATE :1 STOPPED (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN) WIN32_EXIT_CODE :-2147467243 (0x80004015) SERVICE_EXIT_CODE :0 (0x0) CHECKPOINT :0x0 WAIT_HINT :0x0
    
  • 如果您嘗試在命令提示字元中,使用 net start sharedaccess 命令啟動「Windows 防火牆/網際網路連線共用 (ICS)」服務,會顯示下列輸出:
     
    C:\>net start sharedaccess The Windows Firewall/Internet Connection Sharing (ICS) service is starting.The Windows Firewall/Internet Connection Sharing (ICS) service could not be started.A system error has occurred.System error 16405 has occurred.The system cannot find message text for message number 0x4015 in the message file for BASE.
    
注意 Windows XP SP2 中的「Windows 防火牆」功能,取代了舊版 Windows XP 中的「網際網路連線防火牆」(ICF)。

發生的原因

安裝 Windows XP SP2 前,如果先將《Windows XP 安全性指南》(英文) 所提供的某些系統管理範本套用至電腦,即可能會發生此問題。此問題起因於《Windows XP 安全性指南》(英文) 隨附之部分安全性範本本身的問題。

在 Windows XP SP2 中,遠端程序呼叫 (RPC) 須透過 NT Authority\NetworkService 帳戶執行。Windows XP SP2 中之服務的預設安全性描述元可以提供 Authenticated Users 群組 (包含 NT Authority\NetworkService 帳戶) 的「讀取」權限。

解決方案

如果要解決這個問題,請使用下列其中一種方法:

方法 1:還原 SharedAccess 服務的預設安全性描述元

控制「Windows 防火牆/網際網路連線共用 (ICS)」服務的服務稱為 SharedAccess。預設的安全性描述元 (SD) 可以提供 LocalSystem (SY)、PowerUsers (PU) 與 AuthenticatedUsers (AU) 的「讀取」權限,並提供 Administrators (BA) 的「完全控制」權限。

如果要檢視 SharedAccess 的 SD,請在命令提示字元輸入 SC sdshow SharedAccess,然後按下 ENTER。預設的 SD 會出現,類似於下列範例所示:
 
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
注意 如需有關如何解譯這些字串的詳細資訊,請造訪下列 MSDN 網站,並搜尋 SDDL 或 "ACE strings":http://msdn2.microsoft.com/zh-tw/library/aa374928(en-us).aspx (http://msdn2.microsoft.com/zh-tw/library/aa374928(en-us).aspx)
注意 如果要開啟命令提示字元,請按一下 [開始],再按一下 [執行],並在 [開啟] 方塊中,輸入 CMD,然後按一下 [確定]
如有顯示此範例中所說明的其他輸出,可以使用 SC 命令與 sdset 選項重設 SD。如果要還原 SharedAccess 服務的預設 SD,請在命令提示字元輸入下列命令,然後按下 ENTER:
SC sdset SharedAccess D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
如需有關 SC sdset 命令的詳細資訊,請參閱 Windows 說明。

方法 2:還原 SharedAccess 服務的預設 SD

警告 如果您使用「登錄編輯程式」或其他方法不當地修改登錄,可能會發生嚴重問題。您可能需要重新安裝作業系統,才能解決這些問題。Microsoft 不保證可以解決這些問題。請自行承擔修改登錄的一切風險。

如果要還原 SharedAccess 服務的預設 SD,請依照下列步驟執行:
  1. 按一下 [開始],再按一下 [執行],並在 [開啟] 方塊中輸入 regedit,然後按一下 [確定]
  2. 找出並按一下下列登錄子機碼:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Security
  3. 刪除 Security 登錄子機碼 (如其存在)。
  4. 結束 [登錄編輯程式],然後重新啟動電腦。
注意 Security 登錄子機碼如果存在,請務必將之刪除。這可以確保電腦重新啟動時,便使用預設的安全性描述元啟動「Windows 防火牆」。

如果您執行 Microsoft 元件物件模型 (COM)、DCOM 或 Microsoft COM+ 等應用程式控制「Windows 防火牆」服務,亦須執行下列步驟:
  1. 按一下 [開始],再按一下 [執行],並在 [開啟] 方塊中輸入 regedit,然後按一下 [確定]
  2. 找出並按一下下列登錄子機碼:
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{ce166e40-1e72-45b9-94c9-3b2050e8f180}
  3. [檔案] 功能表上,按一下 [匯出]
  4. [檔案名稱] 方塊中,輸入 C:\reg_AppID_CLSID.reg,然後按一下 [儲存],以儲存登錄檔案。
  5. 刪除 {ce166e40-1e72-45b9-94c9-3b2050e8f180} 登錄子機碼。
  6. [檔案] 功能表上,按一下 [匯入]
  7. [檔案名稱] 方塊中,輸入 C:\reg_AppID_CLSID.reg,然後按一下 [開啟]
  8. 按一下 [確定],然後結束 [登錄編輯程式]。
  9. 啟動 [Windows 防火牆/網際網路連線共用 (ICS)] 服務。如果要執行這項操作,請在命令提示字元輸入 NET START SharedAccess,然後按下 ENTER:
注意 您可以在命令提示字元中執行這些步驟。如果要執行這項操作,請依照下列步驟執行:
  1. 輸入下列命令,並在各命令之後按下 ENTER:
    REG DELETE HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Security /f
    REG DELETE HKLM\SOFTWARE\Classes\AppID\{ce166e40-1e72-45b9-94c9-3b2050e8f180} /f
    刪除 {ce166e40-1e72-45b9-94c9-3b2050e8f180} 登錄子機碼是一項重要步驟。其可以確保重新匯入時是套用預設的安全性描述元。
  2. 重新啟動電腦。

狀況說明

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確有上述問題。

其他相關資訊

如需有關 Windows XP SP2 之「Windows 防火牆」的詳細資訊,請造訪下列 Microsoft 網站: http://www.microsoft.com/technet/prodtechnol/winxppro/support/wftshoot.mspx (http://www.microsoft.com/technet/prodtechnol/winxppro/support/wftshoot.mspx)

如需有關《Windows XP 安全性指南》(英文) 的詳細資訊,請造訪下列 Microsoft 網站:http://www.microsoft.com/taiwan/technet/security/prodtech/windowsxp/secwinxp/xpsgch04.mspx (http://www.microsoft.com/taiwan/technet/security/prodtech/windowsxp/secwinxp/xpsgch04.mspx)

SC.exe (服務控制器) 公用程式

SC.exe 公用程式會與服務控制器及已安裝的服務通訊。SC.exe 會擷取及設定服務的相關控制資訊。您可以使用 SC.exe 測試及偵錯服務程式。登錄中所儲存的服務內容可以設定為控制開機時服務應用程式的啟動方式,以及這些應用程式執行為背景處理程序的方式。SC.exe 參數可以設定特定的服務、擷取服務目前的狀態,以及停止與啟動服務。您可以建立批次檔呼叫各種 SC.exe 命令,藉以自動啟動或自動關閉服務順序。SC.exe 提供的功能類似於 [控制台] 中,[系統管理工具] 項目的 [服務]

如需有關 SC.exe 公用程式的詳細資訊,請造訪下列 Microsoft 網站: http://technet2.microsoft.com/windowsserver/en/library/0A658E97-51D5-4109-B461-A474C799964E1033.mspx (http://technet2.microsoft.com/windowsserver/en/library/0A658E97-51D5-4109-B461-A474C799964E1033.mspx)

安全性範本

如需有關安全性範本的詳細資訊,請參閱下列 Microsoft 網站上的<終端系統的資料安全性與可用性>(英文):http://www.microsoft.com/technet/Security/bestprac/bpent/sec3/datavail.mspx (http://www.microsoft.com/technet/Security/bestprac/bpent/sec3/datavail.mspx)

如需有關《Windows XP 安全性指南第 2 版》(英文) 的詳細資訊,請造訪下列 Microsoft 網站:http://www.microsoft.com/downloads/details.aspx?FamilyId=2D3E25BC-F434-4CC6-A5A7-09A8A229F118&displaylang=en (http://www.microsoft.com/downloads/details.aspx?FamilyId=2D3E25BC-F434-4CC6-A5A7-09A8A229F118&displaylang=en)

您可以使用「安全性範本」嵌入式管理單元建立及定義安全性範本。如果要執行這項操作,請依照下列步驟執行:
  1. 按一下 [開始],再按 [執行],並輸入 mmc,再按一下 [確定]
  2. 在 [主控台 1] 視窗中的 [檔案] 功能表上,按一下 [新增/移除嵌入式管理單元]
  3. [新增/移除嵌入式管理單元] 對話方塊中,按一下 [新增]
  4. [新增獨立嵌入式管理單元] 對話方塊中,按一下 [安全性範本],再按一下 [新增],然後按一下 [關閉]
  5. [新增/移除嵌入式管理單元] 對話方塊中,按一下 [確定]
  6. 在 [主控台 1] 視窗中,展開 [安全性範本] 節點。接著展開 [\system_root\Security\Templates] 節點,查看可用範本的清單。
  7. 展開 [\system_root\Security\Templates\securews\] 節點,再按一下 [系統服務],然後按兩下 [Windows Firewall/Internet Connection Sharing (ICS)],以定義範本中此原則的設定。

以程式設定方式指派權限

如需有關如何以程式設定方式指派 LaunchPermission 登錄項目或 AccessPermission 登錄項目之權限的詳細資訊,請造訪下列 MSDN 網站,取得範例 DCOMperm:COM 伺服器代碼的權限:http://msdn2.microsoft.com/zh-tw/library/aa242178(VS.60,en-us).aspx (http://msdn2.microsoft.com/zh-tw/library/aa242178(VS.60,en-us).aspx)

AccessPermission 登錄項目會設定「判別存取控制清單」(Discretionary Access Control List,DACL),以決定存取權。LaunchPermission 登錄項目會設定 DACL,以決定有權啟動應用程式的人員。

LaunchPermission 登錄項目是 REG_BINARY。當收到本機或遠端對啟動此類別伺服器的要求之後,除會模擬用戶端,還會檢查此值所描述的 DACL。檢查如果成功,即可允許或拒絕伺服器的啟動。此值如果不存在,便會依預設以相同的方式全面檢查機器的 DefaultLaunchPermission 項目,以確定是否可以啟動類別代碼。

AccessPermission 登錄值是 REG_BINARY。其所含資料會描述可以存取此類別之執行個體的原則 DACL。當收到連線至此類別現有物件的要求之後,除會模擬呼叫者,所呼叫的應用程式還會檢查 DACL。存取權檢查如果失敗,便拒絕連線。此命名值如果不存在,便會依預設以相同的方式全面測試機器的 DefaultAccessPermission DACL,以決定是否可以連線。

使用 DCOMcnfg GUI 檢視服務權限設定

如果要使用 DCOMcnfg 圖形使用者介面 (GUI) 檢視服務權限設定,請依照下列步驟執行:
  1. 按一下 [開始],再按一下 [執行],並在 [開啟] 方塊中輸入 DCOMCNFG,然後按一下 [確定]
  2. 展開下列節點:
    元件服務
    電腦
    我的電腦
    DCOM Config
  3. 用滑鼠右鍵按一下 [SharedAccess],然後按一下 [內容]
  4. 按一下 [一般] 索引標籤,並檢查是否已設定下列設定:
    應用程式名稱:SharedAccess
    應用程式識別碼:{ce166e40-1e72-45b9-94c9-3b2050e8f180}
    應用程式類型:本機服務
    授權層級:預設值
    服務名稱:SharedAccess
  5. 按一下 [身分識別] 索引標籤,確定是否已選取 [系統帳戶 (僅服務)]
  6. 按一下 [安全性] 索引標籤。
  7. [啟動和啟用權限] 區域中,按一下 [自訂],然後按一下 [編輯]
  8. [群組或使用者名稱] 方塊中,按一下 [系統管理員 (MACHINE_NAME\Administrators)]。檢查是否已選取 [允許] 欄中的 [本機啟動] 核取方塊,然後按一下 [確定]
  9. [存取權限] 區域中,按一下 [自訂],然後按一下 [編輯]。檢查是否已設定下列設定:
    • [群組或使用者名稱] 方塊中,按一下 [系統管理員 (MACHINE_NAME \Administrators)]。檢查是否已選取 [允許] 欄中的 [本機存取] 核取方塊。按一下 [確定]
  10. [設定權限] 區域中,按一下 [自訂],然後按一下 [編輯]。檢查是否已設定下列設定:
    • [群組或使用者名稱] 方塊中,按一下 [系統管理員 (MACHINE_NAME\Administrators)]。接著檢查是否已選取 [允許] 欄中的 [完全控制] 核取方塊與 [讀取] 核取方塊。
    • [群組或使用者名稱] 方塊中,按一下 [Power Users]。檢查是否已選取 [允許] 欄中的 [讀取] 核取方塊。
    • [群組或使用者名稱] 方塊中,按一下 [系統]。接著檢查是否已選取 [允許] 欄中的 [完全控制] 核取方塊與 [讀取] 核取方塊。
    • [群組或使用者名稱] 方塊中,按一下 [使用者]。檢查是否已選取 [允許] 欄中的 [讀取] 核取方塊。按兩次 [確定]

登錄輸出範例

如果要匯出登錄項目的內容,請在命令提示字元輸入下列命令,然後按下 ENTER:
REG EXPORT HKLM\SOFTWARE\Classes\AppID\{ce166e40-1e72-45b9-94c9-3b2050e8f180} C:\reg_AppID_CLSID.txt
輸出檔案 C:\reg_AppID_CLSID.txt 中含有類似下列的文字:
 
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{ce166e40-1e72-45b9-94c9-3b2050e8f180}] @="SharedAccess" "LocalService"="SharedAccess" "AccessPermission"=hex:01,00,14,80,34,00,00,00,50,00,00,00,00,00,00,00,14,00,\ 00,00,02,00,20,00,01,00,00,00,00,00,18,00,03,00,00,00,01,02,00,00,00,00,00,\ 05,20,00,00,00,20,02,00,00,01,05,00,00,00,00,00,05,15,00,00,00,59,51,b8,17,\ 66,72,5d,25,64,63,3b,0b,7f,a9,28,00,01,05,00,00,00,00,00,05,15,00,00,00,59,\ 51,b8,17,66,72,5d,25,64,63,3b,0b,7f,a9,28,00 "LaunchPermission"=hex:01,00,04,80,34,00,00,00,50,00,00,00,00,00,00,00,14,00,\ 00,00,02,00,20,00,01,00,00,00,00,00,18,00,09,00,00,00,01,02,00,00,00,00,00,\ 05,20,00,00,00,20,02,00,00,01,05,00,00,00,00,00,05,15,00,00,00,a0,5f,84,1f,\ 5e,2e,6b,49,ce,12,03,03,f4,01,00,00,01,05,00,00,00,00,00,05,15,00,00,00,a0,\ 5f,84,1f,5e,2e,6b,49,ce,12,03,03,f4,01,00,00
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess 登錄子機碼的輸出檔案與上述輸出檔案類似,含有類似下列的文字:
 
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\system\currentcontrolset\services\SharedAccess] "DependOnGroup"=hex(7):00,00 "DependOnService"=hex(7):4e,00,65,00,74,00,6d,00,61,00,6e,00,00,00,57,00,69,00,\ 6e,00,4d,00,67,00,6d,00,74,00,00,00,00,00 "Description"="Provides network address translation, addressing, name resolution and/or intrusion prevention services for a home or small office network.""DisplayName"="Windows Firewall/Internet Connection Sharing (ICS)" "ErrorControl"=dword:00000001 "ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\ 74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\ 00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\ 6b,00,20,00,6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00 "ObjectName"="LocalSystem" "Start"=dword:00000002 "Type"=dword:00000020

[HKEY_LOCAL_MACHINE\system\currentcontrolset\services\SharedAccess\Epoch] "Epoch"=dword:0000073e

[HKEY_LOCAL_MACHINE\system\currentcontrolset\services\SharedAccess\Parameters] "ServiceDll"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\ 00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\ 69,00,70,00,6e,00,61,00,74,00,68,00,6c,00,70,00,2e,00,64,00,6c,00,6c,00,00,\ 00

[HKEY_LOCAL_MACHINE\system\currentcontrolset\services\SharedAccess\Enum] "0"="Root\\LEGACY_SHAREDACCESS\\0000" "Count"=dword:00000001 "NextInstance"=dword:00000001

?考

828758? (http://support.microsoft.com/kb/828758/ ) Availability of Windows XP COM+ 1.5 Rollup Package 6
875357? (http://support.microsoft.com/kb/875357/ ) 疑難排解 Windows XP Service Pack 2 中的 Windows 防火牆設定值
892504? (http://support.microsoft.com/kb/892504/ ) The Windows Firewall service in Windows XP Service Pack 2, in Windows XP Professional x64 Edition, in Windows Server 2003 SP1, and in x64-based versions of Windows Server 2003 cannot start if the DCOM Process Launcher Service is disabled
Microsoft Windows XP Professional 產品說明文件 MSDN Microsoft 網站上的 Windows XP Professional SP2。

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

文章翻譯

 

Related Support Centers