Windows IT Pro is the authoritative and independent resource for windows nt, windows 2000, windows 2003, windows xp. Features a collection of resources and magazines for windows IT professionals.
  
  
  Advanced Search 


January 2008

How to Get Information About Installed Applications Without Using WMI

RSS
Subscribe to Windows IT Pro | See More Registry Articles Here | Reprints | Or get the Monthly Online Pass—only $5.95 a month!

Download the Code Here

Executive Summary:
The standard way to find information about installed applications is to use Windows Management Instrumentation's Win32_Product class, but sometimes that's not possible. For example, a known bug causes Win32_Product inquiries to fail on some Windows Vista systems, and there won't be a fix until Vista SP1 is out. Here are three workarounds you can use to get the same information that Windows Management Instrumentation's Win32_Product class provides on Vista or any other modern Windows OS.


Some Windows Vista systems have Windows Management Instrumentation (WMI) queries of the Win32_Product class fail and provide the less-than-helpful message Generic failure. Repairing WMI typically doesn’t solve the problem. In a Usenet group discussion, Microsoft insider Jeffrey Snover confirms that this is a known bug scheduled for a fix in Vista’s SP1 (see groups.google.com/group/microsoft .public.windows.powershell/browse_thread/thread/a3313bfdeaaca2af/ 66061dcb9ea6578a).

In one post in the discussion, Keith Hill mentions that you can get the same information that the Win32_ Product class provides directly from the registry. The Win32_Product items are all in subkeys under the HKEY_LOCAL_MACHINE\SOFTWARE Microsoft\Windows\Current-Version\Uninstall key. However, Hill doesn’t mention how to extract the data. Depending on what tools you’re comfortable with using and what you need to do, there are a few options for quickly extracting the data. These options aren’t limited to Vista. You can use them on other Windows OSs if you’re having problems with the WMI subsystem.

If you want to save the data in a file for later use, a simple approach is to run regedit, navigate to the HKEY_ LOCAL_MACHINE\SOFTWARE Microsoft\Windows\CurrentVersion Uninstall key, right-click that key, and select Export from the context menu. You can then save the data in a .reg file.

If you want to display the data, you can use command-line tools. One such tool is reg.exe. After opening a command-shell window, run the command

reg query HKLM\SOFTWARE\
Microsoft\Windows\CurrentVersion\
Uninstall /s

(Although this command appears on several lines here, you would enter it on one line. The same holds true for the other multiline commands presented here.)

Another command-line tool you can use is Windows PowerShell. In PowerShell, the simplest way to display the data is to use the Get-ChildItem cmdlet (which has the alias of gci), then pipe its results to the Get-Item- Property cmdlet. (Get-ChildItem doesn’t retrieve information about the registry values contained within subkeys; it only lists the subkeys’ names.) So, the command that you’d enter in the PowerShell window would be

gci “HKLM:\SOFTWARE\Microsoft\
Windows\CurrentVersion\Uninstall” |
ForEach-Object{Get-ItemProperty
$_.PSPath}

You can filter the output of this command to make it more readable by piping the output to the Select-Object cmdlet, putting the names of the properties you’re interested in as arguments. For example, here’s how I use Select- Object to get some of the more useful information from the registry keys:

Get-ChildItem HKLM:\SOFTWARE\
Microsoft\Windows\CurrentVersion\
Uninstall | ForEach-Object{
Get-ItemProperty $_.PSPath} |
Select-Object DisplayVersion,
InstallDate,ModifyPath,Publisher,
UninstallString,Language,
DisplayName

On the Windows IT Pro Web site, you can download a couple of scripts—GetApplicationUninstall .cmd and Get-ApplicationUninstall .ps1—that automate getting the product information from the Uninstall key. (Go to www.windowsitpro.com/Windows/Article/ArticleID/97604/97604.html and click the Download the Code Here button near the top of the page.) You can run GetApplication- Uninstall.cmd, which uses reg.exe, from a command prompt to display the output from the local machine. If you add the name of a remote machine to the command line, the data will be returned for that remote system. Get-ApplicationUninstall.ps1 is a native PowerShell script that runs only against the local system.

Admittedly, all three workarounds aren’t ideal because they’re just data dumps. However, they at least provide a way to get information about a machine’s installed applications when you can’t use WMI.

See Associated Figure

End of Article



Reader Comments

You must log on before posting a comment.

If you don't have a username & password, please register now.




Top Viewed ArticlesView all articles
Command Prompt Tricks

One reader shares his tip for setting up the command prompt to reflect a remote path. ...

How can I stop and start services from the command line?

...

Where is Microsoft NetMeeting in Windows XP?

...


Related Articles PowerShell 101, Lesson 3

PowerShell 101, Lesson 1

The Great Question of Vista SP1’s Ship Date

PowerShell Pointers

Windows OSs Whitepapers Why SaaS is the Right Solution for Log Management

Related Events PowerShell 101 - eLearning Series

Configuration Manager SP1 and R2 Overview

Check out our list of Free Email Newsletters!

Scripting eBooks Keeping Your Business Safe from Attack: Encryption and Certificate Services

Best Practices for Managing Linux and UNIX Servers

Building an Effective Reporting System

Related Scripting Resources Become a VIP member of the Windows IT Pro community!
Get it all with the VIP CD and VIP access. A $500+ value for only $279!

Subscribe to Windows IT Pro!
Solve your toughest technical problems with our experts and access 10,000 + articles online. 30% off

Monthly Online Pass - Only $5.95!
Get instant access to 10,000+ articles from Windows IT Pro Magazine!

TechNet Virtual Labs
Evaluate and test Microsoft's newest products.


Windows IT Pro Home Register FAQ for Windows WinInfo News
Europe Edition About Us Contact Us/Customer Service Media Kit Affiliates / Licensing  
SQL Server Magazine Office & SharePoint Pro Windows Dev Pro IT Job Hound ITTV
IT Library Technology Resource Directory Connected Home Windows Excavator Windows SuperSite 
 
 Windows IT Pro is a Division of Penton Media Inc.
 Copyright © 2008 Penton Media, Inc., All rights reserved. Terms and Use | Privacy Statement | Reprints and Licensing