Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a way I can uninstall programs without the graphical interface and doing it via CMD?

share|improve this question
up vote 13 down vote accepted

Every program that properly installs itself according to Microsoft's guidelines makes a registry entry in HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall. Usually, the key for the program will be its GUID, or else the name of the program. Within that key will be an entry called UninstallString. This contains the command to execute to uninstall the program.

If you already know ahead of time what you will be uninstalling, it should be easy enough to just put that in your batch file. It gets tricky when you try to automate that process though. You can use the reg command to get data from the registry, but it returns a lot of text around the actual value of a given key, making it hard to use. You may want to experiment with using VBscript or PowerShell, as they have better options for getting data from the registry into a variable.

share|improve this answer

You can invoke the correct uninstaller without knowing the GUID etc. by using WMIC.

To see a list of the names of the programs as known internally by Windows:

wmic product get name

Look for your product name. It probably matches the one listed in the "Programs and Features" control panel, but not always.

Then you can use

wmic product where name="_my_product_name" call uninstall

to perform the uninstall, which AFAIK should be silent (has been in my experience, but try it before you bet the farm on that, silence may depend on how your installer/uninstaller was built).

See here for more:

There's also reference doc for wmic on

share|improve this answer
You can run this against remote computers by adding /node:"<ComputerName>" ex: wmic /node:"someuser-pc" product get name. Be sure that you use "" around the name or you will run into the "Invalid Global Switch" error. Also be sure you run this from a CMD prompt and not a PowerShell prompt as the "" workaround for the "Invalid Global Switch" error doesn't work in the PowerShell prompt. – Chris Magnuson Mar 5 '15 at 14:53
This worked perfectly just as if the user had uninstalled from Programs and Features. This is the simplest way to go! – moodboom Apr 15 at 15:49

If you know where the MSI installer file is you can use:

Msiexec /uninstall Application.msi /quiet

share|improve this answer

If a program uses Windows Installer, you can use one of the following commands:

msiexec /q /x <ProductCodeGuid>
msiexec /q /x <PathToMsi>

However, you're likely have neither the product code nor the original MSI file used for installation.

Other than that, there is no generic uninstall command, since installers that do not make use of Windows Installer are "unknown" by the operating system. They might supply their own uninstall executable, but whether that executable includes a way to run it without GUI depends on the individual software package.

share|improve this answer

If you have PowerShell 3 (or higher) installed, you can issue a WMI call to get all programs named a certain thing (or 'like' a certain thing, to do wildcard searches), and then call the Uninstall method for each of them:

(Get-WmiObject -Query "SELECT * FROM Win32_Product WHERE Name like '%Partial Name%'").uninstall()

share|improve this answer

A VBS script will help you to uninstall the require program- To use this script you will require software name which is located in your registry- Just enter the application name in the script and run it with admin privilege, it will uninstall the application. But this will only works for windows based application; for standalone setup or apps which doesn't make entry in uninstall string of registry- script will not work. So in that case will have to find the other way to uninstall application.


On error resume Next

Dim strName, WshShell, oReg, keyname

Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."

'Change the value here with DisplayName's value 
strName = " "
Set WshShell = CreateObject("WScript.Shell")
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
For Each subkey In arrSubKeys
    keyname = ""
    keyname = wshshell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & subkey & "\DisplayName")
    If keyname = strName then
        i = subkey
    End If

If i Then 

    WshShell.Run "MSIEXEC.EXE /X " & i & " /QN", 1, True 
End If 

Set WshShell = Nothing
set ObjReg = Nothing

share|improve this answer

Your Answer


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.