List installed programs in Windows with PowerShell and other techniques

Last update: 25/06/2025
Author Isaac
  • PowerShell y CMD offer native and flexible methods to list installed software in Windows
  • Third-party tools like Geek Uninstaller or UninstallView make it easy to export and manage programs in advanced ways.
  • Obtaining and comparing listings is useful for auditing, migrations, and PC maintenance.

How to view installed programs with PowerShell

Have you ever thought about all the software you have installed on your PC and how complicated it can be to keep track of it? know exactly Knowing what programs and applications are running on your computer can save you a lot of time and headaches, especially if you're reinstalling Windows, migrating to a new computer, or just cleaning up.

Today we are going to discover in depth all the methods that exist to list programs installed in Windows using PowerShell, but we will also explore options with CMD, System Configuration, Control Panel, and various specialized applications. We will give you all the details, commands and advice, fully updated and explained step by step so you can choose the method that best suits your needs.

Why is it important to know what programs you have installed?

There are many reasons why you might be interested in getting a complete list of your programs in Windows. From prevention before a reinstallation of the operating system so as not to forget anything important, to the software audit for security reasons or resource management.

Many times, we accumulate programs that we no longer use and that remain taking up valuable space and resources. Others may go unnoticed and run in the background, slowing down the system and consuming memory. In addition, have an inventory of your applications It allows you to easily compare configurations between multiple computers, detect missing or unnecessary programs, and have the peace of mind of knowing exactly what work or leisure environment you have.

Ways to list installed software in Windows

List installed programs using PowerShell

PowerShell is a task management and automation tool included in Windows for several versions. Thanks to its powerful commands, it's possible to access low-level system information, including all installed software.

There are multiple ways to do this with PowerShell, each with its own advantages and level of detail. Below, we explain the most useful commands:

Get basic listing using Get-WmiObject

The following command is direct and shows you a list of installed programs, extracted through the Win32_Product WMI class:

Get-WmiObject -Class Win32_Product | Select-Object -Property Name

This command presents you with a clean table with the name of each installed application. It's very convenient for a quick review, although keep in mind that It may take a while if you have a lot of programs., so check each element thoroughly.

  Ultimate Guide to Adding and Managing IPTV Lists in VLC: Everything You Need to Know to Watch Free TV

Want to save this list for later reference or comparison with another team? Just add the redirect to a text file:

Get-WmiObject -Class Win32_Product | Select-Object -Property Name > D:\file-name.txt

Replaces D:\filename.txt by the path and name you prefer and the file will be created automatically.

List in detail: registry path and extended properties

PowerShell also allows you to view information stored in the Windows Registry about installed software. This way, you get both 32-bit and 64-bit applications, along with other relevant information (version, manufacturer, installation date, etc.). The key command is:

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize

With this command you will see a table organized with:

  • display name: the name of the program
  • DisplayVersion: the installed version
  • Publisher: the publisher or developer
  • InstallDate: installation date

This technique is much faster and more reliable than the WMI method, especially for modern systems with many programs installed. Additionally, if you want a more complete view, you can also check the installed programs in the 64-bit section of the registry.

Export installed programs to a text file

If you want to keep the list for future use, you can export the above output directly to a file, for example on your desktop:

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize > C:\Users\USER\Desktop\InstalledProgramsList.txt

Remember to replace USER by your specific Windows username. The result will be a file with a table ready for printing, reviewing, or comparing with lists from other computers.

compatibility mode
Related article:
How to use compatibility mode in Windows 11 to run older programs

List for 64-bit systems

In 64-bit environments, you can check both the 32-bit and 64-bit registries so you don't lose any programs. Here's the equivalent command for 64-bit:

Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize

Using Get-Package and PackageManagement

For more advanced users, PowerShell includes the cmdlet Get-Package (within PackageManagement), which will allow you to see all packages installed by package management systems such as nuget, PowerShellGet or Chocolatey:

Get-Package

This command will return a list of all packages known to PackageManagement, with information such as name, version, source, and vendor. You can also filter by name, vendor, version, or even query remote computers if you have the appropriate administrative permissions:

Invoke-Command -ComputerName COMPUTERNAME -MYUSER Credential -ScriptBlock {Get-Package}

Control Panel and installed programs

Get the list using CMD and WMIC

If you prefer to use the symbol of the system classic (CMD), there is the possibility of resorting to WMIC, the WMI command-line interface. Although deprecated in recent versions of Windows, it still works and is useful to many users.

  How to cancel/unsubscribe from LinkedIn Premium accounts

Open CMD as administrator and run:

wmic product get name,version,vendor

This will display a list of programs on the screen, along with their version and manufacturer. To save the result to a file:

/output:D:\installed_applications.txt product get name,version

The created file will be in the chosen location, ready to be viewed or transferred to another computer.

Check from the Control Panel and Windows Settings

You can get a visual list of all installed software from:

  • Configuration Menu (Windows key + I → Apps → Apps & features). Here you'll see all your apps, including those from the Microsoft Store.
  • Control panel (Control Panel → Programs and Features). This method displays both classic programs and many of the apps modern.

Both methods They do not allow the list to be exported directly, but they facilitate direct software management, such as quick uninstalls or checking versions at a glance.

Unzip zip, rar, and 7z files on Windows without installing anything-2
Related article:
How to unzip ZIP, RAR, and 7z files in Windows without installing any programs

Compare installed applications between two devices

One of the advantages of exporting lists to text is the possibility of compare them between different PCsThis way, you can easily find out which programs are missing after a reinstallation, or make sure that two computers have the same working environment:

Compare-Object -ReferenceObject (Get-Content C:\Users\User1\Documents\PCapps.txt) -DifferenceObject (Get-Content C:\Users\User2\Documents\filename.txt)

The result will display indicators (=> and <=) showing who has each application and whether there are any matches or differences. Very useful for system migrations or cloning.

Consult programs installed on remote computers

PowerShell and WMIC can query software on other PCs over the network, as long as you have the necessary permissions. With PowerShell, you can use the Invoke-Command command. With WMIC, you would do it like this:

wmic /node:IP /user:user product get name,version,vendor
  • IP: the address of the remote computer
  • user: the username with privileges on that machine

This is especially useful in IT administration or when you need to maintain centralized control of software on a network.

Third-party tools to obtain a list of installed programs

If the command line is not your thing or you just want More export options, additional filters, and more comprehensive reportsThere are free and paid programs that make your life easier:

  Slow or Dropped Video Conferencing on Windows 11: Ultimate Guide to Causes and Solutions

Geek Uninstaller

In addition to uninstall programs thoroughly, Geek Uninstaller allows you to export the list of installed applications. Just press Ctrl + S to generate and access the file, even in HTML format, which is perfect for reviewing from the browser or sending to someone else.

UninstallView

UninstallView NirSoft's is another portable alternative, which does not require installation and allows you to export lists in multiple formats: .xml, .txt, .csv and .htmlYou can select which columns to display, filter by installation date, version, or publisher, all in a very clear interface.

Belarc Advisor

If you want an even more complete report, Belarc Advisor not only lists programs, but also hardware, license keys, updates, and more, all presented in an easy-to-view HTML file. It's a classic and widely used solution for audits and technical reviews.

Bulk Crap Uninstaller

An open source tool that is especially useful when you also want to uninstall many programs at once. Displays a configurable list of installed applications and allows you to export it, filter by type, size or date of use and much more.

Safarp

Safarp It's a very lightweight application, ideal for older computers. Although it hasn't been updated for a long time, it works perfectly on modern Windows and allows you to quickly view and export your inventory of installed applications.

Chocolate and

If you're using Chocolatey on Windows, you can list your installed programs with a simple command:

choco list

This will show you all the packages managed by Chocolatey, and you can also export or automate installations, updates, and uninstalls.

View the file types associated with each application

In addition to listing installed programs, sometimes you may be interested in know what type of files or extensions each application is associated with. To do this, from Windows Settings (Win + I) go to Applications → Default ApplicationsThere you can see and modify, for each program, the file types it opens by default.

This will allow you to quickly find out which application will open. PDF files, images, videos or any other specific format, and modify it if you prefer a different alternative.

CCLeaner vs. OIbit Advanced SystemCare vs. Glary Utilities: Which is better?
Related article:
CCleaner vs. Advanced SystemCare vs. Glary Utilities: Comparison of the best Windows cleaning programs