I need to use a script with either CMD or Power Shell to uninstall a program from a windows machine.
To be clear , I already know how to use the “wmic” & "Get-WmiObject -Class Win32_Product ", what I am looking for is how to remove the programs listed under Programs & Feature in control panel but doesn’t show up when using WMIC (Product Get Name) or (Get-WmiObject -Class Win32_Product) commands.
I can use these script easily:
1. CMD:
wmic
product get name
product where name=“program name” call uninstall
2. Power Shell:
$app = Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -match “Software Name” } >> $app.Uninstall()
Both scripts above helped me remove specific programs only, but the list I have under control panel still have lots of other applications that I am hoping to use similar script to remove them.
Any idea / suggestion is highly appreciated ?
Answer from awsayad on community.spiceworks.comI need to use a script with either CMD or Power Shell to uninstall a program from a windows machine.
To be clear , I already know how to use the “wmic” & "Get-WmiObject -Class Win32_Product ", what I am looking for is how to remove the programs listed under Programs & Feature in control panel but doesn’t show up when using WMIC (Product Get Name) or (Get-WmiObject -Class Win32_Product) commands.
I can use these script easily:
1. CMD:
wmic
product get name
product where name=“program name” call uninstall
2. Power Shell:
$app = Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -match “Software Name” } >> $app.Uninstall()
Both scripts above helped me remove specific programs only, but the list I have under control panel still have lots of other applications that I am hoping to use similar script to remove them.
Any idea / suggestion is highly appreciated ?
If the application was installed by MSI, and if you know the GUID, you can use msiexec to uninstall the application. That is the most efficient way, provided that the prerequisites are true.
Win32_Product is very inefficient.
Scripting Blog [archived] – 13 Nov 11
Use PowerShell to Quickly Find Installed Software - Scripting Blog [archived]
Summary: Learn how to use Windows PowerShell to quickly find installed software on local and remote computers. Microsoft Scripting Guy Ed Wilson here. Guest Blogger Weekend concludes with Marc Carter. The Scripting Wife and I were lucky enough...
Scripting Blog [archived] – 14 Dec 11
Use PowerShell to Find and Uninstall Software - Scripting Blog [archived]
Summary: Learn how to use Windows PowerShell to get software installation locations, and to uninstall software from remote computers. Hey, Scripting Guy! We have a dumb application that we have to use at work. The company has released a new version...
Windows 10: How can you uninstall a program when the command prompt is blocked?
Uninstall software remotely using the command line - Software & Applications - Spiceworks Community
I am unable to open Add/remove programs in the control panel, all other bits in the control panel can be opened.
Uninstall program through CMD?
Videos
On one of my client PCs, I had something called PowerPDF installed. I opened up my command prompt as Administrator, typed in appwiz.cpl to open up the Programs list. I then selected PowerPDF, then Uninstall/Change. At that moment, a command prompt window popped up telling me that access is denied.
A bit about our setup with respect to the issue...
Command prompt can be searched for in the Windows search bar. It will also display the opens Open, Run as Administrator nd Open File Location. If a user clicks 'Open', the command prompt will run, but show an access denied message. If 'Run as Administrator' is selected, the user is prompted for a Username and Password, which must be the Admin user.
I'm going to guess what's going on, is that the Uninstall script of the app is just attempting to run Command Prompt without Administrative Privileges, thus the uninstaller is getting blocked. How it got installed in the first place is beyond me.
Anyways, how can I uninstall an app with this problem?
You can get some clues as to where an application lives, by looking at where it's uninstaller is located.
Windows stores the list of uninstaller locations in the registry. You can use Regedit to go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall.
That registry key contains a whole lot of sub-keys with GUID names (big long strings of seemingly random letters and numbers). Use Regedit's search function and set it to look for the name of your program as it appears in the "programs and features" list of installed programs. (Un-tick keys and values and just leave data ticked).
Once you find the right sub-key, you'll see a bunch of values for your program. One of them will be called "UninstallString" and may point to the executable or DLL that is used to uninstall the software (or might pass a file location as a parameter to MSIexec or RunDLL). Depending on where the application's uninstaller lives, that information might give you the clue you need to find the rest of the application.
There are other bits of information in the registry that can help you too - See more info from Microsoft at https://msdn.microsoft.com/en-us/library/aa372105(v=vs.85).aspx
Typically programs that don't list an install location will have installed themselves in a number of places around your disk though, so it's best to use the uninstaller if you can.
Go to control panel --> Right click on the Control panel grid header --> Select More --> and check the location option.
Now the program location shows up in the control panel.
It looks like this can be done from the wmic command
Try this:
wmic product
Shows a list of everything installed on the computer
Sources:
http://www.sepago.de/d/helge/2010/01/14/how-to-list-all-installed-applications-from-the-command-line
http://technet.microsoft.com/en-us/library/bb742610.aspx#ECAA
This page says it's for Windows Vista and 7, but I have tested wmic on Windows XP as well
Get list of installed applications from Windows command line
Also, this page explains that the method of checking the registry entry may not be accurate
http://community.spiceworks.com/how_to/show/2238-how-add-remove-programs-works
Here is some more information on what else can be done using wmic:
http://betanews.com/2011/01/14/wmic-the-best-command-line-tool-you-ve-never-used/
From this website, specifically for your problem:
The program can also provide details on many other aspects of your system. Commands like:
wmic product list brief
wmic service list brief
wmic process list brief
wmic startup list brief
will list your installed software, services, running processes and Windows startup programs, for instance.
I don't think you'll be satisfied with any of the cmd approaches as they will not be complete. If you're okay with Powershell, then this gave me everything:
If (!([Diagnostics.Process]::GetCurrentProcess(). Path -match '\\syswow64\\')) {
$unistallPath = "\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
$unistallWow6432Path = "\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\"
@(
if (Test-Path "HKLM:$unistallWow6432Path" ) { Get-ChildItem "HKLM:$unistallWow6432Path"}
if (Test-Path "HKLM:$unistallPath" ) { Get-ChildItem "HKLM:$unistallPath" }
if (Test-Path "HKCU:$unistallWow6432Path") { Get-ChildItem "HKCU:$unistallWow6432Path"}
if (Test-Path "HKCU:$unistallPath" ) { Get-ChildItem "HKCU:$unistallPath" }
) |
ForEach-Object { Get-ItemProperty $_.PSPath } |
Where-Object {
$_.DisplayName -and !$_.SystemComponent -and !$_.ReleaseType -and !$_.ParentKeyName -and ($_.UninstallString -or $_.NoRemove)
} |
Sort-Object DisplayName |
Select-Object DisplayName
} else {
"You are running 32-bit Powershell on 64-bit system. Please run 64-bit Powershell instead." |
Write-Host -ForegroundColor Red
}
You can use the runas command.
runas /user:Administrator "control appwiz.cpl"
It will prompt for a password then launch Add/Remove Programs with Administrator's credentials. There are other control panel applets you might need to launch this way as well.
You can also hold shift while right-clicking the applets and most of them allow you to choose "Run As".
You can run it as Administrator using Powershell:
Start-Process "control.exe" -ArgumentList "appwiz.cpl" -Verb RunAs
Hi, Tay 13,
Open command prompt window
type the following
SFC /scannow
press enter
Note: There is a space between SFC and /scannow
Once the scan is finished, locate the log by going to Start > Run
Type
%windir%\Logs\CBS
Look for repaired files or cannot repair file and note the name of any file not repaired.
Retry opening control panel add/remove section.
Open Command Prompt window
Type the following
appwiz.cpl
Press Enter
This will open add/remove programs
Try re-registering the dll files
Open command prompt
Type the following
regsvr32 mshtml.dll
Press Enter
regsvr32 shdocvw.dll -I
Press Enter
regsvr32 shell32.dll -I
Press Enter
Retry opening Add/Remove
http://support.microsoft.com/default.aspx?scid=kb;en-us;329891&Product=win2000
Is there any particular reason you're trying to do this from the command-line as opposed to built-in features available in the UI? Also, might there be a system policy that's preventing you from performing these operations?
Here's a suggestion using the UI:
- Open the Start Menu
- In the Search Bar, type
appwiz.cpl. - Wait for
appwiz.cplto appear in the search results. There should be only one entry at the top, under "Programs". It should have a document icon with some gears on it, and should be automatically highlighted. - With
appwiz.cplhighlighted in the search results, press CTRL+SHIFT+ENTER. This will force Windows to attempt executingappwiz.cplwith Administrator privileges. - Respond to any UAC prompts as appropriate.
If the above does not work, there may be an issue with your system's Security Policy. Do the following to check:
- Log into the system under an account that has Administrator permissions.
- Press Win+R.
- Type
secpol.mscand hit ENTER. - Respond to any UAC prompts as appropriate.
- In the left pane, navigate the tree to the following location:
Security Settings\Local Policies\Security Options
- Find the "User Account Control" options, near the bottom of the list.
- Check the setting
User Account Control: Behavior of the elevation prompt for standard users- If it is set to
Automatically deny elevation requests, you will not be able to use Administrator permissions while running under a standard user account. - If this is set to any of the
Prompt for credentials...settings, and the above process for runningappwiz.cplelevated still does not work for you, then you may have a different problem.
- If it is set to
For whatever reason, the control panel applets inherit the privileges of the running Desktop shell (which is the Windows equivalent of a window manager). To escalate permissions in the control panel, you have to escalate permissions in this shell, via these steps:
- Open a command prompt as an administrative user
- Kill the running explorer process
- Ctl+Shift+Esc Open task manager, and navigate to the processes tab
- Find the
explorer.exeprocess(es), and kill all of them. (Right-click, chooseEnd Process) Your taskbar, desktop, and explorer windows will all disappear, but your command prompt will remain
- From that admin command prompt, run
explorer.exe - Now, you should be able to open
appwiz.cpl, or any other control panel applet with administrative privileges. - When you're done, kill the running explorer process(es), and run
explorer.exeas the logged-in user.
Caveat: This can lose certain settings, or break your normal desktop environment. For instance, any network paths which have been mounted to a drive will be lost.
I have a program that is acting like a virus, can’t uninstall through apps or through the programs in control panel. Has no .msi file. How do I do it?
Hey,
Seeing as non-administrators aren't allowed to uninstall programs, how would you 'run as' the programs & features applet?
Running appwiz.cpl from an elevated cmd prompt doesn't work. The only method that seemingly does it killing explorer.exe and running it again as an admin user, this breaks network drive mappings and causes other undesirable effects.
I could simply log the user off and log in with an admin account to uninstall the program, but this just seems so long winded.
Are there any other, easier solutions?
Thank You
Hi IIIGeneralII
This problem has been solved by me, i just forgot that the support ticket is still active :b
You can uninstall the program by breaking it, simply use the following command in the recovery cmd
cd C:
Note: depending on which drive you install windows on, it might be D: or something else
cd Program Files
After that use dir to locate the avast file
If you didn’t find it use cd program files (x86) instead
Note its important to check on ehich folder did avast install on
Search on the internet and find out
After that
del avast
It will say “are you sure? (Y/N)?”
Type y and enter
Use cd avast to make sure that all files are deleted
Then use dir
If not all of them are deleted
Use del (something like avast.exe and etc) on all of the files.
Restart your PC/laptop and boot into it
For driver issues and boot looping
Check other topics on them
system restore does not work in my case and when trying to use wmic, product returns an invalid class error. Neither of these are a solution for me.
The issue is trying to download avast, the driver files were corrupted causing the BSOD. It is now in a boot loop and the repair nor the system restore will work. They return errors. Checking the logs, they point back to AVAST files. Now I am trying to just remove AVAST since this all happened when I started to download it and the corrupted files all seem to be due to AVAST. I figured the easiest thing should have been to uninstall via the CMD, but wmic does not work as when I type product or product get name, it returns
Node - MININT-JBIHR0D
ERROR:
Description - Invalid class