Windows 7 Forums
Welcome to Windows 7 Forums. Our forum is dedicated to helping you find support and solutions for any problems regarding your Windows 7 PC be it Dell, HP, Acer, Asus or a custom build. We also provide an extensive Windows 7 tutorial section that covers a wide range of tips and tricks.

Windows 7: Error 80070426 and code 9C47

05 Aug 2012   #1

MS Windows Profesional 64-bit
Error 80070426 and code 9C47

Hi guys, I'm running windows 7 proffesional 64 bit and when i try to update it says the updates failed and gives me error code 80070426 and error code 9C47, then when I try to troubleshoot I get

Package ID: Performance Diagnostic
Error code:0x80070426
User: Computer Name\Username
Context: Restricted

Does anyone have an idea of how to fix it?

My System SpecsSystem Spec
05 Aug 2012   #2

MS Windows 7 Ultimate SP1 64-bit

Welcome to SevenForums.

Use the FixIt given at this link:
How do I reset Windows Update components?
My System SpecsSystem Spec
05 Aug 2012   #3

MS Windows Profesional 64-bit

When I run the Fixit i get message that says:
Troubleshooting cannot proceed
The troubleshooter has experienced an unexpected error and cannot continue
My System SpecsSystem Spec
05 Aug 2012   #4

MS Windows 7 Ultimate SP1 64-bit

fill out your system specs please.

Use this procedure:
Update your SevenForums System Specs
User CP (located on the top menu bar) |
Your Profile | Edit System Spec
(left-hand column)

To gather info, use Speccy (my favorite) or SIW or System Info

In the System Manufacturer Block, enter:
Manufacturer and Model and
ADD the word laptop, desktop, netbook or tablet.
For example:
Toshiba Satellite L305D notebook.

Provide full windows version info, for example:
MS Windows 7 Ultimate SP1 64-bit

Use the “Other Info” block for Optical Reader,
Mouse, touchpad, wifi adapter, speakers, monitor, etc

Scroll down and click on SAVE CHANGES.

You will find that in Speccy, you can select info from the display
using your mouse/touchpad and then paste that info into your specs.

SIW is a marvelous program, but the free version does not offer
this capability.


Run following script and attach the resulting ComputerInfo.TXT file to your next post:

# **********************INSTRUCTIONS**************************
# ************************************************************
# WIN key | type POWERSHELL | do NOT hit ENTER |
# in the PROGRAMS list, right-click on WINDOWS POWERSHELL |
# choose "Run as administrator" |
# Click on the YES button (if such appears)
# WIN key = key with Microsoft log on top
# for the guru:
# WIN | type POWERSHELL | CTRL+SHIFT+ENTER key combo | ALT+Y keycombo
# ************************************************************
# STEP 2 ** COPY AND PASTE ***********************************
# ************************************************************
# COPY the script using CTRL+C,
# COPY every line of script down thru both EXIT statements
# PASTE into Powershell
#----Right-Click at the PowerShell Prompt
#----(Ctrl+V does not work)
# Start copying with first script line without a # at start of the line
# Note: Actually, you can paste the entire file if you rather
#-------Lines starting with a # are ignored by PowerShell
# ************************************************************
# STEP 3 ** SCRIPT OUTPUT & SCRIPT PURPOSE *******************
# ************************************************************
# --The script output and purpose is given at the very front of the script
# --The script output and purpose is given at the very front of the script
# ************************************************************
# ***************** NOTE - POWERSHELL VERSION*****************
# if you receive this error msg:
#--The system can not find the path specified
# you may need to update your PowerShell
# you must be using Powershell 2.0 or later.
# To determine your Powershell version:
#---Run PowerShell
#---enter $host.version
#---you should see at least:
# Major Minor Build Revision
# ----- ----- ----- --------
# 2......0......-1.....-1
# If you do not see the above, update your Vista/Win 7.
# ************************************************************
# *************** NOTE - EXECUTION POLICY*********************
# If you haven't set the execution policy, you may need to:
#---Run PowerShell
# ************************************************************

# ***********************************************************************
# Puts COMPUTERINFO.TXT on your desktop
# COMPUTERINFO.TXT contains info about your bios and your computer system
# ***********************************************************************

function get-ID 
param ([string]$title, [int]$arraycnt, [int]$arrayndx
$id " " $title " "
If ($arraycnt -ne 1) {$id $id + [string]$arrayndx " "}
$id }
get-title param ([string]$id
$hashes = ([int](31 $id.length)/2)
$hashstr '#' $hashes
$hashstr $id $hashstr
If ($title.length -le 51) {$title += "#"}
$title  }
$sterne "*" 79
= @(gwmi win32_operatingsystem)
$ossyscnt $ossys.count
get-id "WIN" 1 0
= @(gwmi win32_volume)
$dskvolcnt $dskvol.count
=@(gwmi win32_diskdrive)
$dskarrcnt $dskarr.count
= @(gwmi win32_processor)
$cpucnt $cpu.count
gwmi win32_BaseBoard
get-id "MOTHERBOARD" 1 0
gwmi Win32_BootConfiguration 
gwmi Win32_WMISetting
get-id "COMPUTER INFO" 1 0
gwmi Win32_ComputerSystem   
gwmi Win32_ComputerSystemProduct 
get-id "BIOS" 1 0
get-id "COMPUTER INFO" 1 0
gwmi win32_bios
= new-object -typename PSobject
Add-member -membertype noteproperty -name (Get-title $id ) -value $sterne -passthru |
add-member -membertype noteproperty -name ($id "Name") -value($ -passthru |
add-member -membertype noteproperty -name ($id "Manufacturer") -value($bios.manufacturer) -passthru|
add-member -membertype noteproperty -name ($id "Release Date") -value($bios.converttodatetime($bios.releasedate)) -passthru |
add-member -membertype noteproperty -name ($id "Serial Number") -value($bios.SerialNumber) -passthru |
Add-member -membertype noteproperty -name (Get-title $csid) -value $sterne -passthru |
add-member -membertype noteproperty -name ("Manufacturer") -value($cs.manufacturer) -passthru |
add-member -membertype noteproperty -name ("Model") -value($cs.model) -passthru |
add-member -membertype noteproperty -name ("Primary Owner") -value($cs.primaryownername) -passthru |
add-member -membertype noteproperty -name ("Type") -value($cs.systemtype) -passthru |
add-member -membertype noteproperty -name ("Total Memory") -value(([string][int]($cs.totalphysicalmemory/1073741824) + " GB")) -passthru |
add-member -membertype noteproperty -name ("User Name") -value($cs.username) -passthru |
add-member -membertype noteproperty -name ("Product Name") -value($ -passthru |
add-member -membertype noteproperty -name ("Version") -value($csprod.version) -passthru |
add-member -membertype noteproperty -name ("Build version") -value($build.BuildVersion) -passthru |
add-member -membertype noteproperty -name ("Identifying Number") -value($csprod.identifyingnumber) -passthru |
add-member -membertype noteproperty -name ("Vendor") -value($csprod.vendor) -passthru |
add-member -membertype noteproperty -name ("Boot Directory") -value($bootcfg.bootdirectory) -passthru |
add-member -membertype noteproperty -name ("Last Drive") -value($bootcfg.lastdrive) -passthru |
add-member -membertype noteproperty -name ($moboID "Manufacturer") -value($mobo.manufacturer) -passthru |
add-member -membertype noteproperty -name ($moboid "Product Type" )     -value($mobo.product) -passthru |
add-member -membertype noteproperty -name ($moboid "Serial Number")  -value($mobo.serialnumber)
for (
$ndx=1$ndx -le $ossyscnt$ndx++) {
$d $ossys[$ndx 1]
$ossysid get-id "WIN" $ossyscnt $ndx
add-member -membertype noteproperty -name ($ossysid "Build Number") -value($d.buildnumber) -passthru |
add-member -membertype noteproperty -name ($ossysid "OS Version") -value($d.caption) -passthru |
add-member -membertype noteproperty -name ($ossysid "Country Code") -value($d.countrycode) -passthru |
## add-member -membertype noteproperty -name ($ossysid + "Service Pack") -value($d.csdversion) -passthru |
add-member -membertype noteproperty -name ($ossysid "Install Date") -value($d.converttodatetime($d.installdate))  -passthru |
add-member -membertype noteproperty -name ($ossysid "Computer System Name") -value($d.csname) -passthru |
add-member -membertype noteproperty -name ($ossysid "Last Bootup") -value($d.converttodatetime($d.lastbootuptime)) -passthru |
add-member -membertype noteproperty -name ($ossysid "OS Architecture") -value($d.osarchitecture) -passthru |
add-member -membertype noteproperty -name ($ossysid "Registered User") -value($d.registereduser) -passthru |
add-member -membertype noteproperty -name ($ossysid "Product ID") -value($d.serialnumber) -passthru |
add-member -membertype noteproperty -name ($ossysid "Service Pack Version") -value($d.servicepackmajorversion)

for (
$ndx=1$ndx -le $cpucnt$ndx++) {
$d $cpu[$ndx 1]
$cpuid get-id "CPU" $cpucnt $ndx
add-member -membertype noteproperty -name ($cpuid "Current Core Speed") -value([string][int]$d.currentclockspeed " MHz") -passthru |
add-member -membertype noteproperty -name ($cpuid "Current Voltage") -value($d.currentvoltage) -passthru |
add-member -membertype noteproperty -name ($cpuid "External Clock") -value($d.extclock) -passthru |
add-member -membertype noteproperty -name ($cpuid "Max. Clock Speed") -value([string][int]$d.maxclockspeed " MHz") -passthru |
add-member -membertype noteproperty -name ($cpuid "Manufacturer") -value($d.manufacturer)  -passthru |
add-member -membertype noteproperty -name ($cpuid "Name") -value($ -passthru |
add-member -membertype noteproperty -name ($cpuid "Description") -value($d.description) -passthru |
add-member -membertype noteproperty -name ($cpuid "version") -value($d.version) -passthru |
add-member -membertype noteproperty -name ($cpuid "Number of Cores per CPU") -value($d.numberofcores) -passthru |
add-member -membertype noteproperty -name ($cpuid "Number of Logical Processors") -value($d.numberoflogicalprocessors) -passthru |
add-member -membertype noteproperty -name ($cpuid "Socket Designation") -value($d.socketdesignation)
$ndx=1$ndx -le $dskarrcnt$ndx++) {
$d $dskarr[$ndx -1];
$dskarrid get-id "DISK" $dskarrcnt $ndx
Add-member -membertype noteproperty -name (get-title $dskarrid) -value $sterne -passthru |
add-member -membertype noteproperty -name ($dskarrid "Model") -value($d.model) -passthru |
add-member -membertype noteproperty -name ($dskarrid "Size") -value([string][int]($d.size/1073741824) + " GB") -passthru |
add-member -membertype noteproperty -name ($dskarrid "Status") -value($d.status) -passthru |
add-member -membertype noteproperty -name ($dskarrid "Capabilities") -value($d.capabilitydescriptions) -passthru |
add-member -membertype noteproperty -name ($dskarrid "Interface Type") -value($d.interfacetype) -passthru |
add-member -membertype noteproperty -name ($dskarrid "Partitions") -value($d.partitions) -passthru |
add-member -membertype noteproperty -name ($dskarrid "Bytespersector") -value($d.bytespersector) -passthru |
add-member -membertype noteproperty -name ($dskarrid "Sectors per track") -value($d.sectorspertrack) -passthru |
add-member -membertype noteproperty -name ($dskarrid "Firmware revision") -value($d.firmwarerevision) -passthru |
add-member -membertype noteproperty -name ($dskarrid "Device ID") -value($d.deviceid) -passthru |
add-member -membertype noteproperty -name ($dskarrid "PNP Device ID") -value($d.pnpdeviceid)
Get-DrvType ($n) {
  switch ([
int]$n) {
2  {$result "Removable"}
3  {$result "Partition"}
5  {$result "CDROM"}
   default {
$result "Unknown"}
for (
$ndx=1$ndx -le $dskvolcnt$ndx++) {
$d $dskvol[$ndx-1]
$dskvolid get-id "DISK VOLUME" $dskvolcnt $ndx
add-member -membertype noteproperty -name (get-title $dskvolid)  -value $sterne -passthru |
add-member -membertype noteproperty -name ($dskvolid "Caption") -value($d.caption)  -passthru |
add-member -membertype noteproperty -name ($dskvolid "Drive Letter") -value($d.driveletter) -passthru |
add-member -membertype noteproperty -name ($dskvolid "Label") -value($d.label) -passthru |
add-member -membertype noteproperty -name ($dskvolid "Capacity") -value([string][int]($d.capacity/1073741824) + " GB") -passthru |
add-member -membertype noteproperty -name ($dskvolid "Free Space") -value([string][int]($d.freespace/1073741824) + " GB") -passthru |
add-member -membertype noteproperty -name ($dskvolid "Volume Type") -value(get-drvtype($d.drivetype)) -passthru |
add-member -membertype noteproperty -name ($dskvolid "Boot Volume") -value($d.bootvolume) -passthru |
add-member -membertype noteproperty -name ($dskvolid "System Volume") -value($d.systemvolume) -passthru |
add-member -membertype noteproperty -name ($dskvolid "Compressed") -value($d.compressed) -passthru |
add-member -membertype noteproperty -name ($dskvolid "Serial Number") -value($d.serialnumber) -passthru |
#  add-member -membertype noteproperty -name ($dskvolid + "Device ID") -value($d.deviceid) -passthru |
add-member -membertype noteproperty -name ($dskvolid "File System") -value($d.filesystem) -passthru |
add-member -membertype noteproperty -name ($dskvolid "Block Size") -value($d.blocksize) -passthru |
add-member -membertype noteproperty -name ($dskvolid "Indexing Enabled") -value($d.indexingenabled) -passthru |
add-member -membertype noteproperty -name ($dskvolid "Auto Mount") -value($d.automount) -passthru |
add-member -membertype noteproperty -name ($dskvolid "Dirty Bit Set") -value($d.dirtybitset)
$PhyMemArray = @(gwmi win32_PhysicalMemoryArray)
$cnt $phymemarray.count
for ($ndx=1$ndx -le $cnt$ndx++) {
$d $phymemarray[$ndx -1]
$id get-id "PHYSICAL MEMORY ARRAY" $cnt $ndx
add-member -membertype noteproperty -name Get-title $Id ) -value $sterne
add-member -membertype noteproperty -name (" Maximum Memory Capacity") -value([string][int]($d.maxcapacity/1048576) + " GB")
$obj add-member -membertype noteproperty -name (" Number of Memory Devices") -value($d.memorydevices)
$arr = @(gwmi win32_PhysicalMemory)
$cnt $arr.count
for($i=1$i -le $cnt$i++){
$d $arr[$i-1]
$id get-id "PHYSICAL MEMORY" $cnt $i
add-member -membertype noteproperty -name (get-title $id) -value $sterne
add-member -membertype noteproperty -name ($id "Bank Label") -value($d.banklabel)
$obj add-member -membertype noteproperty -name ($id "Capacity") -value([string][int]($d.capacity/1073741824) + " GB")
$obj add-member -membertype noteproperty -name ($id "Data Width") -value($d.datawidth)
$obj add-member -membertype noteproperty -name ($id "Speed") -value($d.speed)
$obj add-member -membertype noteproperty -name ($id "Description") -value($d.description)
$obj add-member -membertype noteproperty -name ($id "Tag") -value($d.tag)
$obj add-member -membertype noteproperty -name ($id "Device Locator") -value($d.devicelocator)
$obj add-member -membertype noteproperty -name ($id "Manufacturer") -value($d.manufacturer)
$obj add-member -membertype noteproperty -name ($id "Part Number") -value($d.partnumber)
$obj add-member -membertype noteproperty -name ($id "Serial Number") -value($d.serialnumber)
$Arr = @(gwmi win32_cachememory)
$cnt $arr.count
for($i=1$i -le $cnt$i++){
$d $arr[$i-1];
$id get-id "CACHE MEMORY" $cnt $i
add-member -membertype noteproperty -name (get-title $id) -value $sterne
add-member -membertype noteproperty -name ($id "Name") -value($
$obj add-member -membertype noteproperty -name ($id "Device ID") -value($d.deviceid)
$obj add-member -membertype noteproperty -name ($id "Purpose") -value($d.purpose)
$obj add-member -membertype noteproperty -name ($id "Block Size") -value($d.blocksize)
$obj add-member -membertype noteproperty -name ($id "Installed Size") -value($d.installedsize)
$obj add-member -membertype noteproperty -name ($id "Max Cache Size") -value($d.maxcachesize)
$obj add-member -membertype noteproperty -name ($id "Number of Blocks") -value($d.numberofblocks)
$obj add-member -membertype noteproperty -name ($id "Status") -value($d.status)
$Arr = @(gwmi win32_memoryarray)
$cnt $arr.count
for($i=1$i -le $cnt$i++){
$d $arr[$i-1];
$id get-id "MEMORY ARRAY" $CNT $I
add-member -membertype noteproperty -name (get-title $id) -value $sterne
add-member -membertype noteproperty -name ($id "Description") -value($d.description)
$obj add-member -membertype noteproperty -name ($id "Device ID") -value($d.deviceid)
$obj add-member -membertype noteproperty -name ($id "Starting Address") -value($d.startingaddress)
$obj add-member -membertype noteproperty -name ($id "Ending Address") -value($d.endingaddress)
$Arr = @(gwmi win32_memorydevice)
$cnt $arr.count
for($i=1$i -le $cnt$i++){
$d $arr[$i-1];
$id get-id "MEMORY DEVICE" $cnd $i
add-member -membertype noteproperty -name (get-title $id) -value $sterne
add-member -membertype noteproperty -name ($id "Description") -value($d.description)
$obj add-member -membertype noteproperty -name ($id "Device ID") -value($d.deviceid)
$obj add-member -membertype noteproperty -name ($id "Starting Address") -value($d.startingaddress)
$obj add-member -membertype noteproperty -name ($id "Ending Address") -value($d.endingaddress)
$obj  $env:userprofile\desktop\COMPUTERINFO.TXT

My System SpecsSystem Spec
05 Aug 2012   #5

MS Windows Profesional 64-bit

Alright I filled out most of my system specs
My System SpecsSystem Spec
05 Aug 2012   #6

MS Windows 7 Ultimate SP1 64-bit


Now the script output please.

thanks, karl
My System SpecsSystem Spec
05 Aug 2012   #7

MS Windows Profesional 64-bit

Here is the script output

Attached Files
File Type: txt COMPUTERINFO.TXT (17.3 KB, 23 views)
My System SpecsSystem Spec
05 Aug 2012   #8

MS Windows 7 Ultimate SP1 64-bit

1. Go to the Dell site. You need to update your bios and probably at least the chipset driver.

2. update your Win 7. Use this procedure and do not deviate therefrom regardless of whether you find such steps necessary. This is Win 7 and not XP.

Change settings (left-hand column) |
checkmark all four of the boxes | OK

Approve any dialog boxes presented. Let Windows install any update features.

WIN is the key with the Microsoft flag on top.

Check for Updates
(left-hand column)
Install ALL critical updates.
Restart your computer (even if not prompted)

Repeat this procedure until there are no more critical updates.

DO NOT TRUST the “Windows is up to date” in center of dialog. until you see that TWICE IN A ROW!

Use the “critical update” procedure until all important updates are installed.

Under Optional updates you will be presented with:
a) Microsoft Bing Desktop which is of questionable value
b) a list of about 34 language updates.

You can hide those updates so that aren't continually notified of those updates.
When you click on 34+ optional updates are available, then you
a) highlight all of the language updates,
b) right-click anywhere in the highlighted list.
c) click on Hide Updates,
d) OK button.
Install ALL other Optional Updates.
Use the “critical update” procedure.


Install ALL, yes, ALL updates.
This is Win 7 and not Vista or XP (eXPired).

Hung is very doubtful unless you interrupted updates.

CTRL + SHIFT + ESC key combo will pop-up the Task Manager.
Lo and behold, Windows Update is still running!

You hold down the CTRL and SHIFT keys.
While holding them down, tap the ESC key once.
My System SpecsSystem Spec
05 Aug 2012   #9

MS Windows Profesional 64-bit

As soon as I check for updates i get :

Install new Windows Update software
To check for updates, you must first install an update for Windows Update. Your automatic updating settings will not change. To install the update, Windows Update will automatically close and re-open.

Then when i click install now i get:

Windows could not search for new updates
An error occurred while checking for new updates for your computer.
Error(s) found:
Code 80070426 Windows Update encountered an unknown error.
My System SpecsSystem Spec
05 Aug 2012   #10

MS Windows 7 Ultimate SP1 64-bit

My System SpecsSystem Spec

 Error 80070426 and code 9C47

Thread Tools

Similar help and support threads
Thread Forum
IE10 & IE11 - Windows Update Issues - Code 9C57 & 9C47
Afternoon all, I am having some issues with Windows Update in relation to the IE10 & IE11 updates. I have just installed a new SSD and a fresh copy of Windows 7 Home Premium 64-bit. All other updates have come through successfully except for these 2. I have looked through some of the...
Windows Updates & Activation
Windows updates failing Error code 80070216 and 9C47
I did a clean install of windows 7 after installing a new motherboard and CPU but windows updates are not going through and I think it may be a major security risk. It is showing 100 important updates that need to be installed, but when I start updating it is showing 0kb total, 0% complete. After...
Windows Updates & Activation
Windows 7 Update Fail - Error Code 9C47
Hey Guys, I tried updating Windows 7 and got this Error: Code 9C47. I then downloaded and tried to run SURT and it says - 'The following updates were not installed: Hotfix for Windows (KB947821)' My cbs log is attached to this post. Thanks for any help, appreciated.
Windows Updates & Activation
Window's updates errors, code 80073712 and code 9c47
I seem to be having an issue with windows updates installing, im stuck at 14 important updates, and it says some updates were not installed, and gives me error code 80073712 and code 9c47.
Windows Updates & Activation
Error code 80070426
hi. my computer is having some issues when i try to install windows update or i try to troublshoot any program. i get error 80070426 please help thanks.
BSOD Help and Support
windows updates, error code 80071a91, 80070643, 9c47
keep on getting this error anytime i want to update on windows 7. have a log here
Windows Updates & Activation

Our Sites

Site Links

About Us

Find Us

Windows 7 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 7" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd

All times are GMT -5. The time now is 13:51.

Twitter Facebook Google+

Windows 7 Forums

Seven Forums Android App Seven Forums IOS App