
PowerShell is a task-based command-line shell and scripting language built on .NET. By using PowerShell, system administrators can automate tasks and processes using the command line. Powershell script will be very useful for listing the installed applications. We will use Powershell script samples such as “Get-WmiObject -Class Win32_Product” to get installed products in Local and Remote machines. Kindly visit the following hyperlinks for more information. How to uninstall built-in apps using PowerShell in Windows 10, how to uninstall a program via Command Prompt (CMD) in Windows. In this article, you will learn how to get a list of installed applications on Windows.
We have created a new article for this topic “How to get the list of installed programs locally and on a remote computer in Windows“. See this guide on how to check if Windows Updates were Installed on your Computer using was, program and features, DISM and WMIC, etc. And how to find the AUMID of an installed UWP App.
Get-WmiObject vs Get-CimInstance to get list of Installed Applications
Note: Starting in PowerShell 3.0, the Get-WmiObject cmdlet has been superseded by Get-CimInstance. The Get-WmiObject cmdlet gets instances of WMI classes or information about the available WMI classes. The CimCmdlets modules contain cmdlets that interact with Common Information Model (CIM) Servers like the Windows Management Instrumentation (WMI) service.
If you run into errors while running the CimInstance Cmdlets, please see “WinRM cannot complete the operation, verify that the specified computer name is valid, that the computer is accessible over the network, and that a firewall exception for the WinRM service is enabled“
Part A: List Installed Software using PowerShell on your PC:
You can list the installed software programs using Powershell’s WMI Class Win32_Product. Also see how to remove Windows 10 Apps with DISM: How to remove pre-provisioned apps from Windows Image and how to determine Apps UWP and remove pre-provisioned appx in Windows 10.
Here, FT is nothing but the Format-Table cmdlet, you can change it into FL to display the result in the list view. We will be using the command “Get-WMIObject -Class Win32_Product
” to find installed programs.
Get-WMIObject -Query "SELECT * FROM Win32_Product" | FT

2: List Installed Applications using Powershell on Remote Computer
You can list the installed software programs from the Remote Machine by giving the name of the remote computer through the argument syntax -ComputerName.
Get-WMIObject -ComputerName "your-pc" -Query "SELECT * FROM Win32_Product" | FL

3: Get a List of Installed Programs using Powershell with Filter
You can use SQL Query-like syntax in the Win32_Product class. The following Powershell script, filters and lists only Non-Microsoft software.
Get-WMIObject -Query "SELECT * FROM Win32_Product Where Not Vendor Like '%Microsoft%'" |FT

Please see Get lists of installed Microsoft Windows Updates, Windows Management Instrumentation: WMI Commands. Also, see How to fix Get-CimInstance Access PermissionDenied.
4: Filter, and list only Microsoft-based software
Use the following PowerShell script, filter, and list only Microsoft-based software.
Get-WMIObject -Query "SELECT * FROM Win32_Product Where Vendor Like '%Microsoft%'" | FT

I hope you found this blog post helpful. In this guide, you have learned how to get a list of installed applications on Windows via PowerShell. If you have any questions, please let me know in the comment session.