安裝 Windows 7 Service Pack 1 之後,您的電腦可能會凍結,或重新啟動之後顯示黑色畫面,並出現「0xc0000034」錯誤訊息

文章翻譯 文章翻譯
文章編號: 975484 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

徵狀

您在電腦上安裝 Windows 7 Service Pack 1 (SP3)。安裝 Service Pack 之後,電腦可能會凍結或重新啟動。如果電腦重新啟動,您會收到類似下列在黑色畫面上顯示的錯誤訊息:
?
!! 0xc0000034 !!142/53007 (_0000000000000000.cdf-ms)

注意如果您重新啟動電腦,會收到相同的錯誤訊息。

當使用者嘗試安裝 Service Pack ,但未先重新啟動電腦完成安裝,就安裝其他更新然後才重新啟動電腦時,可能就會發生這個問題。如果使用 WSUS 時,同時安裝 Service Pack 和其他更新,也可能會發生這個問題。

在 Service Pack 安裝期間,Windows 服務功能會維持作業清單的執行。部分清單會立即執行,其他清單則是需等到系統重新啟動後才會執行。上述清單就是基本作業佇列 (Primitive Operation Queue) (POQ)。需要在重新啟動期間執行的 POQ 作業會儲存在 pending.xml 中。在執行失敗的狀況中,系統會嘗試完成執行 POQ 作業兩次。第二次嘗試執行 POQ 會失敗 (因為之前系統已完成執行了),且出現錯誤碼「0xc0000034」。Windows 考慮封鎖此階段安裝中的任何錯誤,並讓服務功能中斷電腦繼續執行。

如果您非進階使用者,且目前在 Windows 7 電腦上遇到此錯誤,請按一下以下連結,以檢視 Microsoft 網站上的修復步驟:

安裝 Windows 7 Service Pack 1 (SP1) 之後,如何解決「錯誤 0xc0000034」?

預防步驟

如果要協助避免攻擊碰上這個問題,您可以採取的步驟:
  1. 從所有其他更新程式套件來個別安裝 Service Pack。
  2. 出現提示時,請立即重新啟動系統以完成 Service Pack 安裝

解決方案

如果要解決這個問題,請按照下列方法中的步驟進行。

從 Pending.xml 中刪除 POQ 項目

這個方法主要是透過建立並執行 .vbs 指令碼來解決這個問題。在您成功建立並執行 .vbs 指令碼之後,應該就可以順利完成 Windows 7 Service Pack 1 安裝。

注意

  • 此 .vbs 指令碼只適用於 0xc0000034 錯誤碼,請勿將此指令碼使用於 0xc0000034 錯誤以外的問題。
  • 如果您是進階使用者,我們建議您執行此方法。
  • 如果要執行此方法,我們建議您使用第二部電腦和卸除式媒體裝置,例如 USB 磁碟機。
開始執行之前

開始執行之前,請先找出下列項目:
  • 找出可存取網際網路的第二部電腦。請使用第二部電腦建立指令碼 (.vbs) 檔案。如果要建立指令碼 (.vbs) 檔案,請從本知識庫文章中複製指令碼的文字。
  • 找出卸除式媒體裝置,例如 USB 磁碟機。請將您所建立的指令碼 (.vbs) 檔案複製到卸除式媒體裝置。然後,再將指令碼 (.vbs) 檔案轉送到遇到問題的電腦。
注意如果找不到第二部電腦和卸除式媒體裝置,您可以將指令碼 (.vbs) 檔案建立在遇到問題的電腦上。如果要執行這項操作,請移至 [系統修復選項],開啟命令提示字元,然後從命令提示字元開啟 [記事本]。接著,請輸入本知識庫文章中的指令碼文字,以手動建立此指令碼 (.vbs) 檔案。然後將此指令碼 (.vbs) 檔案儲存到本機硬碟,之後,您便可以執行此指令碼以完成所有步驟。

第 1 部分:建立指令碼 (.vbs) 檔案

如果要執行這項操作,請依照下列步驟執行:
  1. 找出可存取網際網路的第二部電腦。
  2. 開啟 [記事本]。
  3. 將下列文字複製並貼上至「記事本」。

    Dim xmlDoc, node, nodeList, fileName, backupFileName, numberOfPOQNodes

    Set xmlDoc = CreateObject("Microsoft.XMLDOM")

    If Wscript.Arguments.Count = 0 Then

    ??? WScript.echo("Error!No XML file specified.")

    W
    script.quit

    End If

    fileName = WScript.Arguments(0)

    backupFileName = Left(fileName, InStrRev(fileName, ".")- 1) & "_backup.xml"

    If Not xmlDoc.load(fileName) Then

    ??? WScript.echo("Failure loading XML file " & fileName & ".")

    ??? Wscript.quit

    End If

    xmlDoc.save(backupFileName)

    Set nodeList = xmlDoc.documentElement.selectNodes("POQ")

    numberOfPOQNodes = nodeList.Length

    For Each node in nodeList

    ??? xmlDoc.documentElement.removeChild(node)

    Next

    xmlDoc.save(fileName)

    Set xmlDoc = Nothing

    WScript.echo(numberOfPOQNodes & " POQ nodes removed.Script completed.")
  4. 按一下 [檔案],然後按一下 [另存新檔]
  5. 將檔案命名為 Script.vbs,並將其儲存到卸除式媒體裝置,例如 USB 磁碟機。

第 2 部分:執行指令碼 (.vbs) 檔案

注意下列步驟假設您已將指令碼 (.vbs) 檔案複製到 USB 磁碟機。如果您使用的是不同類型的卸除式媒體裝置,則步驟可能會有些許不同。

如果要執行這項操作,請依照下列步驟執行:

  1. 重新啟動電腦,並開始按下鍵盤上的 F8 鍵。您必須在 Windows 標誌出現之前按下 F8。如果 Windows 標誌出現,您必須再試一次,等到 Windows 登入提示出現,關機再重新啟動電腦。
    注意: 如果電腦已設定為多重作業系統開機,您可以在 [開機] 功能表出現時按下 F8 鍵。
  2. 使用方向鍵在 [進階開機選項] 區域中選取 [修復您的電腦],然後按下 Enter。如果系統出現提示,請選取要修復的 Windows 7 安裝,然後按一下 [下一步]
  3. 選取語言和鍵盤輸入方法,然後按一下 [下一步]
  4. 選取使用者名稱,輸入您的密碼,然後按一下 [確定]
  5. [系統修復選項] 下,記下列於 [選擇修復工具] 下方文字行上的 Windows 7 磁碟機代號。

    舉例來說,您可能會看見類似下列範例的畫面:

    Operating system:Windows 7 on (C:)<VolumeName>

    注意 在此範例中,Windows 7 的磁碟機代號是 C。
  6. 在 [系統修復選項] 下,按一下 [命令提示字元]。
  7. 將存有您先前建立的指令碼 (.vbs) 檔案的卸除式媒體裝置插入 PC。
  8. 在命令提示字元中,瀏覽至磁碟機及含有您先前建立的指令碼 (.vbs) 檔案的目錄。

    例如,如果您先前將建立的 script.vbs 檔案儲存在 USB 磁碟機的根目錄,而且與 USB 磁碟機相關的磁碟機代號是 E 磁碟機,則您只需要在命令提示字元中輸入下列代號,然後按下 Enter 即可。

    E:

    注意 如果不確定哪一個磁碟機包含卸除式媒體,您可以使用 Diskpart 來顯示磁碟機清單。如果要執行 Diskpart,請依照下列步驟執行。
    1. 輸入 Diskpart,按下 Enter
    2. 輸入 List volume,然後按下 Enter
    3. 請記下包含卸除式媒體裝置 (含有您先前建立的指令碼 (.vbs) 檔案) 的磁碟機。假設您使用的是 USB 磁碟機,則磁碟機類型將列為「卸除式」。
    4. 如果要結束 Diskpart,請輸入 Exit,按下 Enter

  9. 在命令提示字元中,輸入下列命令,然後按下 Enter

    Cscript Script.vbs <Windows _7_drive_letter>:\Windows\winsxs\pending.xml.

    其中 <Windows _7_drive_letter> 是安裝 Windows 7 作業系統的磁碟機代號。

    此操作將執行 Script.vbs 檔案中的指令碼。指令碼執行完成之後,您可能會看見類似下列的訊息。

    2 POQ nodes removed.Script Completed
  10. 如果要結束命令提示字元,請輸入 Exit,然後按下 Enter
  11. 重新啟動您的電腦。Service Pack 1 安裝現在應該已順利完成 。

屬性

文章編號: 975484 - 上次校閱: 2011年9月26日 - 版次: 5.0
這篇文章中的資訊適用於:
  • Windows 7 Starter
  • Windows 7 Home Basic
  • Windows 7 Home Premium
  • Windows 7 Enterprise
  • Windows 7 Professional
  • Windows 7 Ultimate
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 for Itanium-Based Systems
  • Windows Server 2008 R2 Service Pack 1
  • Windows Server 2008 R2 Standard
關鍵字:?
kbupdateissue kbtshoot kberrmsg kbexpertiseinter kbexpertisebeginner kbexpertiseadvanced kbsurveynew kbprb KB975484
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com