You install Windows 7 Service Pack 1 (SP1) on your computer. After the service pack is installed, the computer may freeze or restart. If the computer restarts, you receive an error message that resembles the following on a black screen:
Note If you restart the computer, you receive the same error message.
This issue can occur when a user attempts to install the Service Pack, does not restart the machine to complete the installation, installs other updates and then restarts the machine. This issue can also occur if the Service Pack is installed simultaneously with other updates when using WSUS.
During Service Pack installation, the servicing feature of Windows maintains lists of operations to be performed. Some are performed immediately; others can only be done once the system has restarted. One such list is the Primitive Operation Queue (POQ). The POQ operations that need to be performed during restart are stored in pending.xml. In the scenario showing failure, the system attempts to complete the POQ operations twice. The second attempt of the POQ fails (because it has already been done) and causes the error “0xc0000034”. Windows considers any failure at this stage of the install to be blocking and the servicing feature halts the machine from continuing.
If you are not an advanced user and are currently experiencing this error on a Windows 7-based computer, click the link below to view the recovery steps on the Microsoft website:
Steps you can take to help avoid hitting this issue:
Install the Service Pack separately from all other update packages
When prompted, restart the system immediately to complete the Service Pack installation
To resolve this issue, follow the steps in the method below.
Delete the POQ entries from Pending.xml
This method is intended to resolve the issue by creating and running a .vbs script. After you successfully create and run the .vbs script, Windows 7 Service Pack 1 installation should complete successfully. Notes
This .vbs script is only applicable for the 0xc0000034 error code, do not use this script for issues other than the 0xc0000034 error.
We recommend this method if you are an advanced user.
To use this method we recommend having access to a second computer and a removable media device such as a USB thumb drive.
Before getting started
Before getting started locate the following:
Locate a second computer with access to the internet. You will use the second computer to create a script (.vbs) file. To create the script (.vbs) file you will copy the text for the script from this knowledge base article.
Locate a removable media device such as a USB thumb drive. You will copy the script (.vbs) file that you create to the removable media device. You will then transfer the script (.vbs) file to the computer that is experiencing the issue.
Note If you do not have access to a second computer and a removable media device you can create the script (.vbs) file on the computer that is experiencing the issue. To do this you would go to System Recovery Options, open a command prompt, and then start Notepad from the command prompt. You would then manually create the script (.vbs) file by typing the text for the script from this knowledge base article. You would then save the script (.vbs) file to your local hard drive. You would then be able to run the script to complete the steps.
Part 1:Create the script (.vbs) file
To do this, follow these steps:
Locate a second computer with access to the internet.
Copy and paste the following text into Notepad.
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.") Wscript.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.")
Click File, and then click Save as.
Name the file Script.vbs and save the file to a removable media device such as a USB thumb drive.
Part 2: Run the script (.vbs) file
Note The following steps assume that you copied the script (.vbs) file to a USB thumb drive. If you used a different type of removable media device the steps may be slightly different.
To do this, follow these steps:
Restart your computer and start pressing the F8 key on your keyboard. You have to press F8 before the Windows logo appears. If the Windows logo appears, you have to try again by waiting until the Windows logon prompt appears and then shutting down and restarting your computer. Note: On a computer that is configured to boot to multiple operating systems, you can press the F8 key when the Boot Menu appears.
Use the arrow keys to select Repair your Computer in the Advanced Boot Options area, and then press Enter. If you are prompted, select the Windows 7 installation to be repaired, and then click Next.
Select the language and a keyboard input method, and then click Next.
Select a user name, type your password, and then click OK.
Under System Recovery Options, make a note of the Windows 7 drive letter listed on the line below Choose a recovery tool.
For example, you may see something similar to the following.
Operating system: Windows 7 on (C:) <VolumeName>
Note In this example, the drive letter for Windows 7 would be C.
Under System Recovery Options, click Command Prompt.
Insert the removable media with the script (.vbs) file that you previously created into the PC.
At the command prompt, navigate to the drive, and the directory, that contains the script (.vbs) file that you previously created.
For example, if you previously saved the script.vbs file that you created to the root of a USB thumb drive, and the drive letter associated with the USB thumb drive is the “E” drive, you would simply type the following at the command prompt, and then press Enter.
Note If you are not sure which drive contains the removable media you can use Diskpart to display a list of drives. To run Diskpart, follow these steps.
Type Diskpart, and then press Enter.
Type List volume, and then press Enter.
Make a note of the drive that contains the removable media with the script (.vbs) file that you previously created. Assuming you used a USB thumb drive, the drive type will be listed as “Removable”.
To exit Diskpart type Exit, and then press Enter.
At the command prompt, type the following command and press Enter:
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