Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

IIS 啟動失敗全景排查:IWAM/IUSR 密碼同步、MSDTC 修復、COM+ 重註冊實戰手冊

編輯:關於伺服器

IIS (Internet Information Services) 啟動失敗通常源於 進程身分帳號密碼不同步、分散式交易協調器 (MSDTC) 損壞、COM+ 應用程式目錄損毀 三大核心原因。本文提供標準化排查流程、自動化修復腳本與預防機制,助您在 15 分鐘內恢複服務。

故障徵兆與錯誤代碼速查

現象典型錯誤/日誌核心原因
W3SVC 服務無法啟動Event ID 1000/1001/1002、HTTP Error 503 Service Unavailable應用程式集區身分密碼錯誤、IWAM 帳號鎖定/過期
ASP/ASP.NET 頁面 500 內部錯誤Active Server Pages error 'ASP 0115'、Error 80110414COM+ 應用程式 IIS Out-Of-Process Pooled Applications 身分驗證失敗
MSDTC 服務啟動失敗The MSDTC service failed to start、Event ID 4101MSDTC 登錄檔/日誌損壞、CID 衝突
無法展開「COM+ 應用程式」節點MMC 錯誤、msdtc -resetlog 可修復MSDTC 日誌檔遺失/損壞
找不到 IIS Out-Of-Process Pooled ApplicationsCOM+ 目錄遺失該應用程式註冊表/COM+ 目錄損壞

第一梯隊:IWAM/IUSR 密碼同步 (解決 90% 問題)

原理

IIS 6.0 使用 IWAM_<MachineName> (應用程式集區身分) 與 IUSR_<MachineName> (匿名存取) 兩個本地帳號。密碼儲存在三處,**必須完全一致**:

  1. 本地使用者帳號資料庫 (SAM)
  2. IIS Metabase (WAMUserPass / WAMUserName)
  3. COM+ 應用程式 IIS Out-Of-Process Pooled Applications 身分分頁

標準修復流程 (命令列自動化)


@echo off
REM ========== IIS 6.0 IWAM 密碼同步修復腳本 ==========
REM 需以管理員身分執行,適用 Windows Server 2003 / XP / 2000

set NEW_PASSWORD=Str0ngP@ssw0rd!2024
set IWAM_ACCOUNT=IWAM_%COMPUTERNAME%
set IUSR_ACCOUNT=IUSR_%COMPUTERNAME%

echo 1. 重設本地帳號密碼...
net user %IWAM_ACCOUNT% %NEW_PASSWORD% /active:yes
net user %IUSR_ACCOUNT% %NEW_PASSWORD% /active:yes

echo 2. 同步 IIS Metabase...
cd /d "%systemdrive%\inetpub\adminscripts"
cscript adsutil.vbs set w3svc/WAMUserPass "%NEW_PASSWORD%"
cscript adsutil.vbs set w3svc/WAMUserName "%IWAM_ACCOUNT%"

echo 3. 同步 COM+ 應用程式身分...
cscript synciwam.vbs -v

echo 4. 重啟 IIS 相關服務...
iisreset /restart

echo 修復完成,請驗證網站存取。
pause

若出現 Error 80110414 手工修補

  1. 開啟 comexp.msc (元件服務)
  2. 展開:元件服務 → 電腦 → 我的電腦 → COM+ 應用程式 → IIS Out-Of-Process Pooled Applications
  3. 右鍵 → 內容 → 身分分頁 → 選「此使用者」 → 輸入 IWAM_<MachineName> 與新密碼 → 確定
  4. 再次執行 cscript synciwam.vbs -v

第二梯隊:MSDTC 服務重建 (解決分散式交易/COM+ 問題)

症狀

  • net start msdtc 失敗
  • COM+ 應用程式無法展開、掛載
  • Event Viewer → System → Source: MSDTC → Error 4101/4102

完全重建步驟 (註冊表清理 + 服務重註冊)


@echo off
REM ========== MSDTC 完全重建腳本 ==========
REM 必須以管理員身分執行,會重置所有 MSDTC 設定

echo 停止 MSDTC 服務...
net stop msdtc

echo 卸載 MSDTC 服務...
msdtc -uninstall

echo 刪除殘留註冊表機碼 (備份後執行)...
reg delete "HKLM\SYSTEM\CurrentControlSet\Services\MSDTC" /f
reg delete "HKLM\SOFTWARE\Microsoft\MSDTC" /f
reg delete "HKCR\CID" /f

echo 重新安裝 MSDTC 服務...
msdtc -install

echo 重建日誌檔案 (如有遺失)...
msdtc -resetlog

echo 啟動 MSDTC 服務...
net start msdtc

echo 驗證 MSDTC 狀態...
msdtc -verbose

pause

第三梯隊:COM+ 目錄修復 (解決應用程式遺失/損壞)

情況 A:無法展開「COM+ 應用程式」節點


msdtc -resetlog
REM 重建 MSDTC 日誌通常即可恢複 COM+ 目錄可見性

情況 B:缺少 IIS Out-Of-Process Pooled Applications


cd /d "%windir%\system32\inetsrv"
rundll32 wamreg.dll, CreateIISPackage
REM 區分大小寫!必須精確輸入 CreateIISPackage

regsvr32 asptxn.dll
REM 重新註冊 ASP 交易支援元件

REM 關閉並重新開啟「元件服務」MMC 主控台驗證

情況 C:ASP/ASP.NET 應用程式 500 錯誤、The specified module could not be found

  1. IIS 管理器 → 網站屬性 → 目錄安全性 → 匿名存取和驗證控制 → 取消勾選「允許 IIS 控制密碼」
  2. 確認 IWAM_ 帳號具備網站目錄 RX 權限、Temp 目錄 RW 權限
  3. 啟用 IIS 詳細錯誤:IE → 網際網路選項 → 進階 → 取消勾選「顯示友好 HTTP 錯誤訊息」

預防機制:納入日常巡檢與自動化

巡檢項目頻率腳本/工具告警閾值
IWAM/IUSR 帳號狀態 (啟用/未過期/密碼同步)每日PowerShell Get-LocalUser + adsutil.vbs 查詢任一不一致即告警
MSDTC 服務狀態 (Running/啟動類型 Auto)每日Get-Service msdtc非 Running 告警
COM+ 目錄完整性 (關鍵應用程式存在)每週comadmin.exe / PowerShell COM+ 模組缺少關鍵應用告警
IIS Metabase 備份每日iiscnfg.vbs /save /f backup.xml備份失敗告警
應用程式集區健康度 (啟用/CPU/記憶體/回收)每 5 分鐘Zabbix/促etheus windows_exporter + IIS AppPool 監控Stopped/High CPU 告警

遷移建議:告別 IIS 6.0 技術債

  • Windows Server 2003 於 2015/07/14 結束支援,**無安全更新、無合規基線**
  • 規劃遷移至 Windows Server 2019/2022 + IIS 10.0:應用程式集區身分改用 ApplicationPoolIdentity (虛擬帳號),無需管理密碼同步
  • 遷移工具:Web Deploy (msdeploy)、AppCmd、Configuration Editor、IIS 遷移工具包
  • 應用程式相容性測試:Application Compatibility Toolkit (ACT)、Fiddler 抓包對比

掌握上述三大梯隊修復流程,可應對絕大多數 IIS 6.0 啟動失敗場景。但根治之道在於**技術債遷移**,將基礎設施升級至現代支援週期內的平台,才能從根本上消除此類反覆故障。

Copyright © Windows教程網 All Rights Reserved