$app = Get-WmiObject -Class Win32_Product | Where-Object { 
    $_.Name -match "Software Name" 
}

$app.Uninstall()

Edit: Rob found another way to do it with the Filter parameter:

$app = Get-WmiObject -Class Win32_Product `
                     -Filter "Name = 'Software Name'"
Answer from Jeff Hillman on Stack Overflow
Top answer
1 of 15
184
$app = Get-WmiObject -Class Win32_Product | Where-Object { 
    $_.Name -match "Software Name" 
}

$app.Uninstall()

Edit: Rob found another way to do it with the Filter parameter:

$app = Get-WmiObject -Class Win32_Product `
                     -Filter "Name = 'Software Name'"
2 of 15
65

EDIT: Over the years this answer has gotten quite a few upvotes. I would like to add some comments. I have not used PowerShell since, but I remember observing some issues:

  1. If there are more matches than 1 for the below script, it does not work and you must append the PowerShell filter that limits results to 1. I believe it's -First 1 but I'm not sure. Feel free to edit.
  2. If the application is not installed by MSI it does not work. The reason it was written as below is because it modifies the MSI to uninstall without intervention, which is not always the default case when using the native uninstall string.

Using the WMI object takes forever. This is very fast if you just know the name of the program you want to uninstall.

$uninstall32 = gci "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" | foreach { gp $_.PSPath } | ? { $_ -match "SOFTWARE NAME" } | select UninstallString
$uninstall64 = gci "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" | foreach { gp $_.PSPath } | ? { $_ -match "SOFTWARE NAME" } | select UninstallString

if ($uninstall64) {
$uninstall64 = $uninstall64.UninstallString -Replace "msiexec.exe","" -Replace "/I","" -Replace "/X",""
$uninstall64 = $uninstall64.Trim()
Write "Uninstalling..."
start-process "msiexec.exe" -arg "/X $uninstall64 /qb" -Wait}
if ($uninstall32) {
$uninstall32 = $uninstall32.UninstallString -Replace "msiexec.exe","" -Replace "/I","" -Replace "/X",""
$uninstall32 = $uninstall32.Trim()
Write "Uninstalling..."
start-process "msiexec.exe" -arg "/X $uninstall32 /qb" -Wait}
🌐
MiniTool
minitool.com › home › news › how to uninstall program using cmd/powershell windows 10/11
How to Uninstall Program Using CMD/PowerShell Windows 10/11 - MiniTool
September 28, 2025 - Detailed guide for how to uninstall a program by using CMD (Command Prompt) or PowerShell utility on Windows 10/11.
Discussions

Why is it so difficult to uninstall a program using PS?
#Set MSI variable $app = Adobe $msi = ((Get-Package | Where-Object {$_.Name -like "*$app*"}).fastpackagereference) #Uninstall start-process msiexec.exe -wait -argumentlist "/x $msi /qn /norestart" More on reddit.com
🌐 r/PowerShell
77
48
June 1, 2024
HOWTO Uninstall Software Using Powershell in Windows 10 - Software & Applications - Spiceworks Community
Over time, a huge number of installed but not used programs accumulate in the system. Unnecessary applications occupy a tangible part of the memory on the hard drive and significantly slow down the computer. This problem is especially relevant when each of these applications seeks to get into ... More on community.spiceworks.com
🌐 community.spiceworks.com
21
November 28, 2019
how to uninstall a program using CMD or Power Shell ?
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 ... More on community.spiceworks.com
🌐 community.spiceworks.com
13
12
February 28, 2019
Powershell to uninstall software
Depends on the software. Most well written programs have an uninstall command you can run. More on reddit.com
🌐 r/sysadmin
15
0
July 11, 2023
🌐
Microsoft Learn
learn.microsoft.com › en-us › powershell › module › packagemanagement › uninstall-package
Uninstall-Package (PackageManagement) - PowerShell | Microsoft Learn
The Uninstall-Package cmdlet uninstalls one or more software packages from the local computer. To find installed packages, use the Get-Package cmdlet. Important The commands contained in the PackageManagement module are different than the commands ...
🌐
Windows OS Hub
woshub.com › uninstall-apps-with-powershell-windows
Uninstalling Apps Using PowerShell or CMD on Windows 11 and 10 | Windows OS Hub
2 weeks ago - Use a pipeline with the Uninstall-Package cmdlet to remove a program (note that I use the wildcard character * to avoid typing out the entire program name): Get-Package -Name "Notepad++*" | Uninstall-Package · You can remove the installed ...
🌐
Redmondmag.com
redmondmag.com › articles › 2019 › 08 › 27 › powershell-to-uninstall-an-application.aspx
How To Use PowerShell To Uninstall an Application -- Redmondmag.com
August 27, 2019 - Now you can uninstall the application by calling the Uninstall method. Here is the command: ... The technique that I just showed you is the generally accepted way of removing applications from a Windows desktop using PowerShell.
🌐
Action1
action1.com › home › blog › how to uninstall software using powershell in windows 10
How to Uninstall Software Using PowerShell in Windows 10
September 19, 2025 - Step-by-step guide showing how to uninstall default and third-party software completely using Powershell in Windows 10 operating system | Action1 Blog
Find elsewhere
🌐
Wise Cleaner
wisecleaner.com › how-to › 174-how-to-uninstall-windows-apps-with-powershell-on-windows-10-and-11.html
How to Uninstall Windows Apps with PowerShell on Windows 10 and 11
November 4, 2022 - Type product get name command > Click Enter. Note down the product (app) name that you want to uninstall. Type the command product where name=" program name" call uninstall > Press Enter.
🌐
MajorGeeks
majorgeeks.com › content › page › uninstall_command_prompt.html
How to Uninstall Programs With PowerShell or Command Prompt in Windows 10 & 11 - MajorGeeks
June 28, 2021 - Next, let's get a list of installed programs by typing in product get name, and press Enter. The list might take a minute to appear. To uninstall the program, use the following code replacing PROGRAM NAME with the program's name in quotes.
🌐
YouTube
youtube.com › watch
Mastering PowerShell: Uninstalling Software Made Easy - YouTube
In this video, we'll show you how to use PowerShell to quickly and easily uninstall the software from your Windows computer. Specifically, we'll walk you thr...
Published   April 23, 2023
Top answer
1 of 2
2

Within PowerShell, this is very easy to do.

The below block of script will take a computer name, your username and password, connect to the remote computer and list all installed software by name:

$computerName = "SomeComputerName"
$yourAccount = Get-Credential
Invoke-Command -ComputerName $computerName -Credential $yourAccount -ScriptBlock {
    Get-WmiObject Win32_Product | Select Name
}

When you have the name of the product you want to uninstall remotely - you can the perform an uninstall like this:

$computerName = "SomeComputerName"
$appName = "AppName"
$yourAccount = Get-Credential
Invoke-Command -ComputerName $computerName -Credential $yourAccount -ScriptBlock {
    Get-WmiObject Win32_product | Where {$_.name -eq $appName} | ForEach {
        $_.Uninstall()
    }
}

In the above eaxmples - replace "SomeComputerName" with the name of the computer you wish to uninstall from.

You can also make the script prompt you for a computer name if you prefer with the following line:

$computerName = Read-Host "Enter Computer Name"

If you have multiple computers with the same piece of software that you want to uninstall - you can also define an array of computers to work with and do uninstalls from lots of machines:

$computerNames = @("SomeComputerName1", "SomeComputerName2", "SomeComputerName3")
$appName = "AppName"
$yourAccount = Get-Credential
ForEach ($computerName in $computerNames) {
    Invoke-Command -ComputerName $computerName -Credential $yourAccount -ScriptBlock {
        Get-WmiObject Win32_product | Where {$_.name -eq $appName} | ForEach {
            $_.Uninstall()
        }
    }
}
2 of 2
0

If you create a file called "servers.txt" and place your list of servers in it you could also reference $computerNames as follows:

$computerNames = Get-Content "C:\some-directory\servers.txt"
$appName = "AppName"
$yourAccount = Get-Credential
ForEach ($computerName in $computerNames) {
    Invoke-Command -ComputerName $computerName -Credential $yourAccount -ScriptBlock {
        Get-WmiObject Win32_product | Where {$_.name -eq $appName} | ForEach {
            $_.Uninstall()
        }
    }
}

I've used this approach many times in production environments and it seems to work for me. Always test this in a non-production environment before completing in a prod environment.

🌐
Advanced Installer
advancedinstaller.com › software-uninstall-with-powershell-package-management.html
How to uninstall software using Package management in PowerShell
August 4, 2023 - Here's how to uninstall software ... installed with msi, msu, Programs or PowerShellGet can be uninstalled with the Uninstall-Package cmdlet....
🌐
Spiceworks Community
community.spiceworks.com › software & applications
HOWTO Uninstall Software Using Powershell in Windows 10 - Software & Applications - Spiceworks Community
November 28, 2019 - Over time, a huge number of installed but not used programs accumulate in the system. Unnecessary applications occupy a tangible part of the memory on the hard drive and significantly slow down the computer. This problem is especially relevant when each of these applications seeks to get into ...
Top answer
1 of 13
12

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 ?

2 of 13
3

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...

🌐
Microsoft
devblogs.microsoft.com › dev blogs › scripting blog [archived] › use powershell to find and uninstall software
Use PowerShell to Find and Uninstall Software - Scripting Blog [archived]
April 29, 2019 - 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 of this application, and I am trying to write ...
🌐
Digital Citizen
digitalcitizen.life › how-remove-default-windows-10-apps-powershell-3-steps
How to uninstall Windows apps with PowerShell - Digital Citizen
October 6, 2025 - UAC notification for running PowerShell as admin Once PowerShell is launched, you should see a window similar to the one in the image below. ... To uninstall a Windows app, you’ll have to run a specific command for it.
🌐
The Geek Page
thegeekpage.com › how-to-uninstall-any-built-in-apps-with-powershell-in-windows-10
How to Uninstall any Built-in Apps with powershell in Windows 10/11
September 13, 2025 - Step 2: In the Powershell window, run the below command and hit Enter: ... This command will pull up an extended list of all the installed apps with detailed information regarding each app. But, what you need here is the PackageFullName (the complete package name of the built-in app) of the app you want to remove. Therefore, proceed to the next step. Step 3: Run the following command to obtain the PackageFullName of the app you want to uninstall and hit Enter.