How to List Installed Programs Using PowerShell in Windows 11
Listing the programs installed on your PC from PowerShell gives a text inventory of software, useful for auditing, documentation, or finding what to remove. Windows 11 can enumerate installed applications through the registry or system queries.
The Command
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher
What It Does
This reads the registry location where installed programs register their uninstall information and lists each one’s display name, version, and publisher. It produces a table of installed software, drawing from where YYGACOR Resmi Windows records traditionally installed desktop applications, giving a useful inventory of what is on the system.
When You’d Use This
This is useful for auditing installed software, documenting what is on a system, or finding programs to uninstall, all from the command line. Producing a text inventory is handy for keeping records, comparing software across machines, or searching for a specific program. Combining it with the Store app listing gives a complete picture of everything installed.
Useful Variations
To also capture 32-bit programs on a 64-bit system, query the WOW6432Node path as well. To find a specific program, pipe to `Where-Object { $_.DisplayName -like ‘*word*’ }`. To list Store apps, `Get-AppxPackage` enumerates those separately, since they register differently from traditional desktop programs.
If It Doesn’t Work
If a program is missing from the list, it may be a Store app, which registers differently, so use `Get-AppxPackage` to list those separately. On a 64-bit system, also check the WOW6432Node registry path to capture 32-bit programs. Some entries may lack a display name and appear blank, which is normal for certain components and updates registered in the same location as full programs.
Good to Know
This registry-based method covers most traditionally installed desktop programs but not Store apps, which `Get-AppxPackage` lists instead, so combining both gives the fullest picture. Some entries may lack a display name and appear blank, which is normal for certain components and updates registered in the same location.
Putting It Together
The command shown may look dense at first, but it breaks down into clear parts once you have used it a few times. As part of gathering facts about your hardware and Windows setup, this command saves you from digging through settings screens. Together with the others in this area, it lets you document a system’s full configuration or answer a specific specification question in seconds from the terminal. Like anything in the terminal, the real value comes from trying it on your own system and adapting the variations above to what you actually need, so it is worth experimenting with in a safe, low-stakes situation before relying on it in a script or during troubleshooting. Keeping a note of the commands you find most useful, along with the variations that fit your workflow, turns scattered one-off tricks into a personal reference you can draw on whenever a similar task comes up again.