Win32_Product class

The Win32_Product WMI class represents products as they are installed by Windows Installer. A product generally correlates to one installation package.

Note

For more information about support or requirements for installation of a specific operating system, see Operating System Availability of WMI Components.

The following syntax is simplified from Managed Object Format (MOF) code and includes all inherited properties. Properties and methods are in alphabetic order, not MOF order.

Syntax

[Provider("MSIProv"), Dynamic]
class Win32_Product : CIM_Product
{
  uint16   AssignmentType;
  string   Caption;
  string   Description;
  string   IdentifyingNumber;
  string   InstallDate;
  datetime InstallDate2;
  string   InstallLocation;
  sint16   InstallState;
  string   HelpLink;
  string   HelpTelephone;
  string   InstallSource;
  string   Language;
  string   LocalPackage;
  string   Name;
  string   PackageCache;
  string   PackageCode;
  string   PackageName;
  string   ProductID;
  string   RegOwner;
  string   RegCompany;
  string   SKUNumber;
  string   Transforms;
  string   URLInfoAbout;
  string   URLUpdateInfo;
  string   Vendor;
  uint32   WordCount;
  string   Version;
};

Members

The Win32_Product class has these types of members:

Methods

The Win32_Product class has these methods.

Method Description
Admin Performs an administrative install of an associated Win32_Product instance using the installation package provided through PackageLocation, and any command line options that are supplied.
Advertise Advertises an associated Win32_Product instance using the installation package provided through PackageLocation and any command line options that are supplied.
Configure Configures the associated instance of Win32_Product to the specified install state and level.
Install Installs an associated Win32_Product instance using the installation package provided through PackageLocation and any command line options that are supplied.
Reinstall Reinstalls the associated instance of Win32_Product using the specified reinstallation mode.
Uninstall Uninstalls the associated instance of Win32_Product.
Upgrade Upgrades the associated Win32_Product instance using the upgrade package provided through PackageLocation and any command line options that are supplied.

Properties

The Win32_Product class has these properties.

AssignmentType

Data type: uint16

Access type: Read-only

Assignment type of the product.

Windows Server 2003: This property is not available.

Possible values are

Value Meaning
0
The product is assigned by user.
1
The product is assigned by computer.

Caption

Data type: string

Access type: Read-only

Short textual description for the product a one-line string.

Description

Data type: string

Access type: Read-only

Description of the product.

HelpLink

Data type: string

Access type: Read-only

The support link for the product.

Windows Server 2003: This property is not available.

HelpTelephone

Data type: string

Access type: Read-only

The support telephone for the product.

Windows Server 2003: This property is not available.

IdentifyingNumber

Data type: string

Access type: Read-only

Product identification such as a serial number on software, or a die number on a hardware chip.

InstallDate

Data type: string

Access type: Read-only

This property is no longer supported for Win32_Product. Instead, use the InstallDate2 property, which is in the WMI CIM_DATETIME format.

InstallDate2

Data type: datetime

Access type: Read-only

Date that this product was installed on the system. This property does not require a value to indicate that the object is installed. For more information about WMI dates and times, see Date and Time Format.

InstallLocation

Data type: string

Access type: Read-only

Location of the installed product.

InstallSource

Data type: string

Access type: Read-only

The installation source directory of the product.

Windows Server 2003: This property is not available.

InstallState

Data type: sint16

Access type: Read-only

Installed state of the product.

Value Meaning
-6
Bad Configuration
-2
Invalid Argument
-1
Unknown Package
1
Advertised
2
Absent
5
Installed

Language

Data type: string

Access type: Read-only

The language of the product.

Windows Server 2003: This property is not available.

LocalPackage

Data type: string

Access type: Read-only

The location of the locally cached package for this product.

Windows Server 2003: This property is not available.

Name

Data type: string

Access type: Read-only

Qualifiers: Key, Dynamic

Commonly used product name.

PackageCache

Data type: string

Access type: Read-only

Location of the locally cached package for this product.

PackageCode

Data type: string

Access type: Read-only

The identifier for the package from which this product was installed.

Windows Server 2003: This property is not available.

PackageName

Data type: string

Access type: Read-only

The original package name for the product.

Windows Server 2003: This property is not available.

ProductID

Data type: string

Access type: Read-only

The product ID.

Windows Server 2003: This property is not available.

RegCompany

Data type: string

Access type: Read-only

The company registered to use the product.

Windows Server 2003: This property is not available.

RegOwner

Data type: string

Access type: Read-only

The owner registered to use the product.

Windows Server 2003: This property is not available.

SKUNumber

Data type: string

Access type: Read-only

Product SKU (stock-keeping unit) information.

Transforms

Data type: string

Access type: Read-only

The transforms of the product.

Windows Server 2003: This property is not available.

URLInfoAbout

Data type: string

Access type: Read-only

The URL information for the product.

Windows Server 2003: This property is not available.

URLUpdateInfo

Data type: string

Access type: Read-only

The URL update information the product.

Windows Server 2003: This property is not available.

Vendor

Data type: string

Access type: Read-only

Name of the product supplier. Corresponds to the Vendor property in the product object in the Desktop Management Task Force (DMTF) Solution Exchange Standard.

Version

Data type: string

Access type: Read-only

Product version information. Corresponds to the Version property in the product object in the DMTF Solution Exchange Standard.

WordCount

Data type: uint32

Access type: Read-only

Number of words in the summary information for the product.

Windows Server 2003: This property is not available.

Remarks

The Win32_Product class is derived from CIM_Product.

Knowing the software packages that have been installed on a computer is useful for many reasons. Among other things, this knowledge helps you:

  • Gain insight into what the computer is used for. A computer that does not have a word processor installed is probably not used for writing memos or other documents.
  • Ensuring that only licensed software, and only approved software, is in use in your organization. If your organization has decided to standardize on Microsoft Excel, it is very useful, for both support and legal reasons, to know whether anyone has installed a different spreadsheet program on a computer.
  • Tracking the progress of software deployment projects (for example, the number of people who have installed this new application and the number of people who have not).
  • Planning for future software needs.

These activities cannot be carried out using Group Policy because the Software Installation and Maintenance component does not provide information on the software installed on a computer; it only makes that software available for installation. For example, although the Software Installation and Maintenance component can publish a software package, it provides no way to track which users install that package. This makes it difficult to analyze actual software use or to make projections for future software needs.

The Win32_Product class enables you to enumerate the software installed on a computer, provided the software was installed by using the Windows Installer.

[!Warning]
Win32_Product is not query optimized. Queries such as "select * from Win32_Product where (name like 'Sniffer%')" require WMI to use the MSI provider to enumerate all of the installed products and then parse the full list sequentially to handle the where clause. This process also initiates a consistency check of packages installed, verifying and repairing the install. With an account with only user privileges, as the user account may not have access to quite a few locations, may cause delay in application launch and an event 11708 stating an installation failure. For more information, see KB Article 794524.

Examples

The Powershell Remote PC Info Script PowerShell code sample uses a number of hardware and software classes, including Win32_Product, to find various information about a remote PC using WMI and the remote registry.

The List Information About the Binary Files Used by an Application VBScript returns the name and product code of binary information (such as bitmaps, icons, executable files, and so on) used by a Windows Installer application.

The following code example shows how to generate an inventory list of installed software on a local computer. The script generates a text file with a list of the software and versions installed on a local computer.

strComputer = "."

Set objWMIService = GetObject("winmgmts:" & _
    "{impersonationLevel=impersonate}!\\" & _
    strComputer & _
    "\root\cimv2")

Set colSoftware = objWMIService.ExecQuery _
    ("SELECT * FROM Win32_Product")   

If colSoftware.Count > 0 Then

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.CreateTextFile( _
        "c:\SoftwareList.txt", True)

    For Each objSoftware in colSoftware
        objTextFile.WriteLine objSoftware.Caption & vbtab & _
        objSoftware.Version
    Next

    objTextFile.Close

Else
    WScript.Echo "Cannot retrieve software from this computer."

End If

Requirements

Minimum supported client
Windows XP
Minimum supported server
Windows Server 2003
Namespace
Root\CIMV2
MOF
Msi.mof
DLL
Msiprov.dll

See also

Installed Applications Classes

WMI Tasks: Computer Software

Win32_SoftwareFeature