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

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

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.
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.
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:
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.
Passionate writer about the world of bytes and technology in general. I love sharing my knowledge through writing, and that's what I'll do on this blog, show you all the most interesting things about gadgets, software, hardware, tech trends, and more. My goal is to help you navigate the digital world in a simple and entertaining way.

