Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I want to have a list of all installed Microsoft software on a machine. I think this will do the job but the problem is that I need to have Serial numbers of the installed Microsoft applications.

Is there any OS SDK or third party tool for that?

share|improve this question

migrated from stackoverflow.com Jun 9 '11 at 19:35

This question came from our site for professional and enthusiast programmers.

    
@down voter: It is immature to vote down without leaving any comment –  Stuti Jun 9 '11 at 17:05
    
thanks but no thanks for down vote.i require at minimum yes or no.if you have any issues with the question it is better to share with me so that i get to know that question was wrong –  Lagrangian Jun 9 '11 at 17:05
    
There are multiple problems with this question; "installed software" is orthogonal to "serial numbers", nor will the registry necessarily have either. The fact you are asking about a process and not an end goal makes me suspect this is an XY problem (mywiki.wooledge.org/XyProblem), nor does anything you have said necessarily have anything to do with programming. Question is unclear in the extreme. –  Dour High Arch Jun 9 '11 at 17:41

3 Answers 3

up vote 1 down vote accepted

Try this list. I've personally used the number 1 item on that list, Magical Jelly Bean Keyfinder and it fit my needs. I needed to get the keys for Office and Windows for someones computer who had lost the information. You might check out that list and see if any of them suit your needs or even have the source available so you can modify it to suit your needs. Goodluck.

EDIT

Direct link for Magical Jelly Bean.

share|improve this answer

Since you tagged this C#, I'm going to go on the assumption you want to actually create your own program to retrieve this information. It's entirely feasible (and actually quite easy) to make your own program that lists all the installed software on a computer, and retrieve the product key if applicable.

Most software publishers have their own ways to encode the serial number of the product somewhere on the system (usually buried in the registry), so one downside of rolling your own program is that you have to maintain several different algorithms to decode the various product keys.

The last time I looked for an algorithm to decode Microsoft's product keys for my own program was a while ago, but I had a very hard time finding any algorithms on the internet. I ultimately stumbled upon Magical Jelly Bean Keyfinder that Pete listed and its source code which was on SourceForge (it seems this project has since morphed into Enchanted Keyfinder). It's programmed in Pascal, and I'm certainly no Pascal programmer, but I managed to convert it to C# in an afternoon (including usual interruptions from $DayJob) without any real issue.

There's one thing we have discovered which I will call out that is very important, and this is relevant if you roll your own software or even if you use some other key finding software. If the software is pre-installed on a machine (OEM Windows for example) the product key that is returned is the OEM product key and NOT the actual key for the product. Your install media WILL NOT accept this product key as it is from a different distribution channel.

If you're thinking running a program on all of your computers is saving you some time by not having to manually record the product keys, I think you'll be disappointed. Like I said, every software publisher does it differently and there is no standard. When it comes to re-installing the software after a computer has failed there's every chance the program won't have decoded the product key for one piece of software, and it will invariably be the most critical one.

There really is no substitute for dedicated software that you manually enter license information into and it keeps track of usage for you.

share|improve this answer
    
it would be great if you let me see the code..... –  Lagrangian Jun 10 '11 at 15:43
1  
Unfortunately I can't share the source code since it was on work time. It's not exactly difficult though - if there was some weird Pascal function I didn't understand I just Googled it - there was always an alternative C# function. Oh, that and I never respond well to plz send teh codez......... –  Ben Pilbrow Jun 10 '11 at 16:47

Personally I use MSKeyViewer Plus its freeware and seems to work very well for my needs. Hope this helps.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.