Solved

How can I determine the version of Windows XP from a product key?

Posted on 2009-04-09
9
924 Views
Last Modified: 2012-05-06
Very often I must perform a repair install or clean install of Windows XP without knowing which version it is. Obviously, I know if it is Home or Pro or MCE2002 or MCE2005, but I often don't know if it is OEM, retail, corporate (open license), or a special Dell/HP/Sony-specific one that I occasionally encounter. If the XP sticker is on the computer it's usually OEM, but otherwise I don't know how to tell which version it is. If I use the wrong version of Home or Pro to perform a repair install or clean install, then obviously the product key doesn't work with that installation. How can one tell, from the product key or otherwise, EXACTLY which version of XP is installed on a machine?

Thanks.
0
Comment
Question by:NRTCF
9 Comments
 
LVL 5

Expert Comment

by:mrmarkfury
ID: 24110227
Go to start->run->winver.exe
0
 
LVL 5

Expert Comment

by:mrmarkfury
ID: 24110280
Forgot to add this:

You can right click My Computer, go to properties, and it should tell you if the version of XP is Home or Pro

This might also help:
http://episteme.arstechnica.com/eve/forums/a/tpc/f/99609816/m/360007140831
0
 
LVL 47

Expert Comment

by:dstewartjr
ID: 24110367
0
 
LVL 5

Expert Comment

by:mrmarkfury
ID: 24110403
This may also help deciphering the Product ID
http://wiki.lunarsoft.net/wiki/Product_IDs
0
Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

 
LVL 19

Accepted Solution

by:
jss1199 earned 400 total points
ID: 24110405
Fun.

If you right click "My Computer" and select "Properties" you will notice a code that looks like xxxxx-xxx-xxxxxxx-xxxxx in the "Registered to:" section - this is the product key and can tell you the SKU and channel (e.g., if it is Pro, Home, Upgrade, OEM, SLP, VLK, etc.) The first block is your SKU, the second is your channel.

For example, a 55274 at the start means you are XP Pro. 55277 is Home. 76487 is MediaCenter 2005. For the second set of numbers, OEM is .. well.. OEM. 335 is Retail. 640 is VLK.  See list of known SKU and Channels below.

SKU
55274 : XP Pro generic OEM
55276 : XP Pro (upgrade)
55276 : XP Home (?)
55277 : XP Home generic OEM
55285 : XP Pro
55661 : XP Pro (retail)
76475 : XP Home (upgrade) (?)
76477 : XP Home Royalty OEM
76481 : XP Pro Dell OEM
76487 : XP Media Center Edition 2005
76487 : XP Pro Royalty OEM
76487 : XP Pro SP2 (retail)
76487 : XP Pro volume license (with '640' channel ID)
76500 : XP MCE 2005 (which is XP Pro with no domain capability)
76588 : XP Pro x64 OEM

Channel
000 : Other (includes some retail, upgrade and evaluation versions)
006 : MS or Partner promotions ("Go Pro" Promotion)
007 : FIXME : Retail
009 : Not for resale - bundle
011 : Upgrade (XP Home?)
083 : Windows Genuine Advantage
OEM : OEM (This does not specify royalty or normal OEM)
270 : Volume License
296 : MSDN
308/347 : Microsoft Action Pack subscription
335 : Retail
640 through 652 : Volume License (usually generated via 270 CID in setupp.ini)
699 : Volume Windows XP Tablet Edition
071 : FIXME : Unknown.
0
 

Author Comment

by:NRTCF
ID: 24110725
Perfect, jss1199! Is there any way to discern this if I cannot login to the computer? For example if the hard drive is dying and all I can do is plug the hard drive into another computer and browse the contents?
0
 
LVL 5

Assisted Solution

by:mrmarkfury
mrmarkfury earned 50 total points
ID: 24110943
Use this: http://www.nirsoft.net/utils/product_cd_key_viewer.html

Navigate to the program in the command line (Start->Run->cmd) and type the following:
produkey.exe /regfile "D:\WINDOWS\system32\config\software"
Change D: with the slave drives letter
0
 
LVL 62

Assisted Solution

by:☠ MASQ ☠
☠ MASQ ☠ earned 50 total points
ID: 24111002
You could slave the HDD of the machine you are repairing to another PC and then use Regedit to load the hive from the slave's HKLM (Don't forget to unload when you've finished!) You'll find the Windows Product Key at:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProductID
0
 
LVL 19

Assisted Solution

by:jss1199
jss1199 earned 400 total points
ID: 24111127
In that case, the registry is your best bet as another poster commented.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProductID
 
If the computer is alive, you can run the below code.  Easily modifiable to pull from a remote machine.
 
 
 

'==========================================================================

' NAME: GetCDKeyandSerialNumber.vbs

'

' AUTHOR: Mark D. MacLachlan , The Spider's Parlor

' URL: http://www.thespidersparlor.com

' DATE  : 3/16/2006

' (C) 2006, All Rights Reserved

'

' COMMENT:

'

'==========================================================================

Set WshShell = CreateObject("wscript.Shell")

Set WshNetwork = WScript.CreateObject("WScript.Network")

Set env = WshShell.environment("Process")

strComputer = env.Item("Computername")

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Const HKEY_LOCAL_MACHINE = &H80000002

Const UnInstPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_

".\root\default:StdRegProv")

strDigitalProductId="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId"

strXPKey=GetKey(WshShell.RegRead(strDigitalProductId))

Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)

For Each objItem in colItems

    report = report &  "Original CD Key:"& strXPKey & vbCrLf

    report = report &  "SerialNumber: " & objItem.SerialNumber & vbCrLf

Next

MsgBox report

Function GetKey(rpk)
 

Const rpkOffset=52:i=28

szPossibleChars="BCDFGHJKMPQRTVWXY2346789"
 

Do 'Rep1

dwAccumulator=0 : j=14

  Do

  dwAccumulator=dwAccumulator*256

  dwAccumulator=rpk(j+rpkOffset)+dwAccumulator

  rpk(j+rpkOffset)=(dwAccumulator\24) and 255  

  dwAccumulator=dwAccumulator Mod 24

  j=j-1

  Loop While j>=0

i=i-1 : szProductKey=mid(szPossibleChars,dwAccumulator+1,1)&szProductKey

  if (((29-i) Mod 6)=0) and (i<>-1) then

  i=i-1 : szProductKey="-"&szProductKey

  End If

Loop While i>=0 'Goto Rep1
 

GetKey=szProductKey

End Function

Open in new window

0

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

It is only natural that we all want our PCs to be in good working order, improved system performance, so that is exactly how programs are advertised to entice. They say things like:            •      PC crashes? Get registry cleaner to repair it!    …
Today, still in the boom of Apple, PC's and products, nearly 50% of the computer users use Windows as graphical operating systems. If you are among those users who love windows, but are grappling to keep the system's hard drive optimized, then you s…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now