Uninstall method of the Win32_Product class
The Uninstall WMI class method uninstalls the associated instance of Win32_Product.
Note
For more information about support or requirements for installation on a specific operating system, see Operating System Availability of WMI Components.
This topic uses Managed Object Format (MOF) syntax. For more information about using this method see Calling a Method.
Syntax
uint32 Uninstall();
Parameters
This method has no parameters.
Return value
Return code | Description |
---|---|
|
Successful completion |
|
RPC Server Fault Error |
Remarks
Software installation is rarely permanent; instead, software is typically removed at some point in time, and for any number of reasons:
- The functionality supplied by the software is no longer needed.
- The software is being replaced by a competing software package.
- The software is not licensed for use in the organization.
- The software is installed on the wrong computer.
The Win32_Product Uninstall method can be used to remove software from a computer.
The Uninstall method can be used either on the local computer or on a remote computer, and without delegation. This is because no multihop security operations are involved. Instead, the software is simply removed from the computer.
Although the Uninstall method can remove software from a computer, it does not override Group Policy. For example, if Microsoft Excel has been installed on a computer, you can use the Uninstall method to remove it. However, if Microsoft Excel is available to the user through Group Policy, the user will be able to reinstall the application.
Examples
The following VBScript sample deletes software on a computer
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
("SELECT * FROM Win32_Product WHERE Name = 'Personnel database'")
For Each objSoftware in colSoftware
objSoftware.Uninstall()
Next
The following PowerShell code sample describes how to uninstall an application from multiple computers.
$list = 'host1','host2','host3' # your hosts go here
$name = 'appname' # your application name goes here (as displayed by win32_product instance)
$list | foreach {
$hostname = $_
gwmi win32_product -filter "Name = '$name'" -namespace root/cimv2 -comp $_ | foreach {
if ($_.uninstall().returnvalue -eq 0) { write-host "Successfully uninstalled $name from $($hostname)" }
else { write-warning "Failed to uninstall $name from $($hostname)." }
}
}
Requirements
Minimum supported client |
Windows XP |
Minimum supported server |
Windows Server 2003 |
Namespace |
Root\CIMV2 |
MOF |
|
DLL |
|