How to Get List of Installed Programs in Windows 10/11?

In this simple guide, we will show you a few different ways how to get a list of installed programs in Windows 11, 10, 8, or Windows 7 using various tools, including built-in command-line tools. When it may be necessary? For example, the list of all installed programs can be useful when you re-install Windows and want to make sure you do not miss all the necessary apps. Also, a list of all installed apps in Windows will come in handy when you perform an audit, or when you want to find and remove unwanted programs. You will also find a list of all installed programs useful if you accidentally deleted a shortcut or can’t find some specific app.

How to Get Windows 10 Installed Programs List? Through Apps Folder.

The easiest way to get a complete list of applications with icons is to press the Win + R keys on your keyboard and then enter the following command:

shell:AppsFolder

windows 10 list of installed programs

It is particularly important to enter this command without any spaces, otherwise, it won’t work.

list of installed programs windows 10

Do note that in the bottom-left corner you can find the total number of installed apps in Windows. For your information: this number includes all the default Windows utilities, such as Control Panel, Disk Cleanup, Cortana, etc. In case you want to know the number of installed apps in Windows 10, use the next method.

Although simple, this method has one critical downside: you cannot generate a list of installed apps in Windows 10 from here. This folder only shows all the shortcuts you can copy or use to launch any installed app.

Get a List of All Installed Apps using Windows Settings

If you are running Windows 10 and 11, there is a very convenient section inside the modern Settings panel. It collects info about all installed apps and lets you quickly get a list of them. To get there, hit Win + I on your keyboard and go to Apps Apps and features.

Or press Win + R and run the command:

ms-settings:appsfeatures

windows 10 list installed programs

Here you can find the list of all installed apps including modern UWP apps from the Microsoft Store. This list does not include built-in Windows tools. At the top of the list, you can find the app counter.

What is also important is that this section allows you to filter the list and generate a list of all apps installed on a specific disk. For example, you want to find all the apps installed on a system drive. Just hit Filter by and select your system’s drive.

export list of installed apps windows 10

Here you can easily find recently installed programs. To do this, simply sort the list by Install date. As a result, the last installed programs in Windows will be at the top of the list.

list all installed programs windows 10

Again, this section cannot generate a file with a list of all installed apps on a computer.

Generate a List of All Installed Apps in Windows 10 and 11

Ok, now let us talk about how you can generate a list of all installed apps in Windows 10 and 11 (works in older Windows versions down to Windows XP) and export it to use later. We will cover the built-in utilities below in this article, but here let us show you a wonderful tool called UninstallView. This utility is completely free and does not require installation. All you need is to download the UninstallView from the official website and launch it.

For your information. By default, UninstallView shows only win32 apps which is more than enough for most users. You can toggle it to show apps from Microsoft Store, but it is not very friendly with this type of app. For example, each DLC in Forza Horizon 4 shows as a separate app which is not ok for us. You can load Microsoft Store apps using Options Load Windows Apps menu.

windows 10 installed programs list

Ok, launch the app and wait a few seconds for the app to generate the list. Now you can export and save it for later use.

  1. If you want to generate a list of all installed apps with all the details (version, path, registry key, and many others), skip the next step. If you want only the editable text file with a list of installed programs, perform the following steps;
  2. Press View Choose Columns;
    windows get list of installed programs
  3. In a new window, select Deselect all and place a checkmark next to the Display name. This will leave only a list of apps names;
    windows 10 export list of installed programs
  4. Now, press Ctrl + A and then hit Save selected items;
    list installed programs windows 10
  5. Name the text file and place it wherever you want, then open it. Now you have a complete list of all installed apps on a computer. You can edit it as any text file;
    how to get a list of installed programs windows 10

How to Get a List of Installed Apps with Command Prompt and WMIC?

You can get a list of installed apps in Windows by using the WMIC command-line tool, which can access the computer’s WMI namespace. Run the elevated Command Prompt (use search and then run the app as Administrator), and execute the following command:

wmic product get name,version

get list of installed programs windows 10

After a short wait, you will see a table with a list of names and versions of programs installed on your system.

Wmic allows you to query remote computers through WMI. The following command lists the installed applications on the remote host:

Wmic /node:NyPC211swd product get name, version, vendor

windows export list of installed programs

To export this list into a text file, run the following command:

wmic product get name,version /format:csv > C:\InstalledApps_%Computername%.csv

This command generates a CSV file with your computer name in the title. After command execution, open drive C. There you will find a CSV file with the list of your apps. In addition to the app’s names and versions, this list has the current computer name (it may be useful for further analysis or when you need to generate installed program lists from a few computers). Open this file using any text editor or Excel.

Also, in modern Windows versions the WMIC utility allows you to generate a convenient HTML report:

wmic /output:c:\IstalledApps.htm product get Name, Version, Vendor /format:htable

windows 10 get list of installed programs

Use PowerShell to Get a List of Installed Programs in Windows

Now, let us show you how to get a list of installed apps using PowerShell. PowerShell gets this list by scanning a special registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. The Control Panel uses the same registry to generate the list of installed apps, although you cannot export this list. Do note that this registry key contains only programs installed “for all users”.

For your information. For a 32-bit application on a 64-bit operating system, you need to get the content of the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

If an application was installed for the current user, then you can locate it using the following registry key HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall.

Running all three separate commands is not convenient, so let us show how to run them all simultaneously, so you can get the list of all apps installed on a PC:

  1. Press Win + X on your keyboard and launch the PowerShell (Admin);
  2. To generate a list of installed x64 applications, copy and paste the following command to the PowerShell’s window:
    Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall* | Select-Object DisplayName, DisplayVersion, Publisher, Size, InstallDate | Format-Table -AutoSize
  3. To get a list of 32-bit applications on your Windows device run then the following PowerShell command:
    Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | sort-object -property DisplayName | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize
  4. As you can see, the resulting list contains the program name, version, publisher, and installation date.
    export list of installed programs

You can use the following PowerShell script to generate a summary list both of x86 and x64 installed applications and export it to a CSV formatted file:

function Analyze( $p, $f) {

Get-ItemProperty $p |foreach {

if (($_.DisplayName) -or ($_.version)) {

[PSCustomObject]@{

From = $f;

Name = $_.DisplayName;

Version = $_.DisplayVersion;

Install = $_.InstallDate

}

}

}

}

$s = @()

$s += Analyze 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*' 64

$s += Analyze 'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' 32

$s | Sort-Object -Property Name |Export-csv C:\ps\installedapps.csv

list all programs installed on windows 10

To get a similar list of programs from a remote computer, run this command:

Invoke-command -computer remote_pc_name {Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize }

With PowerShell, you can compare the list of installed programs on two different computers and determine which apps are missing. Just take two software text files and add their names to this command:

Compare-Object -ReferenceObject (Get-Content PATH) -DifferenceObject (Get-Content PATH)

Instead of PATH, use the full file paths. For example, C:\Docsfile.txt.

As a result, you will see the difference between the two application lists. In the example depicted on the screenshot, you can see that different versions of Firefox are installed on the computers. The symbol => means that this program is only available on the right computer. The <= symbol indicates that this program is installed only on the left computer.

powershell list installed programs

Another way to get a list of installed programs in Windows is to use the Get-WmiObject PowerShell cmdlet. Simply copy and paste the following command:

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

how to check installed software in windows 10

In PowerShell Core 6.x and 7.x, Get-WmiObject is completely deprecated and you must use the Get-CimInstance cmdlet to query the list of installed win32 applications:

Get-CimInstance Win32_Product | Sort-Object -property Name | Format-Table -Property Version, InstallDate, Name

Getting the List of Installed Microsoft Store Apps

The methods above generate only a list of win32 apps, also known as classic desktop Windows programs. If you need to generate a list of Universal Windows Platform (UWP) apps (formerly Windows Store apps and Metro-style apps) for the current user, use the following command:

Get-AppxPackage | Select Name, PackageFullName |Format-Table -AutoSize > c:\docslist-store-apps.txt

windows list installed programs

If you want to get a list of all Microsoft Store apps of all the users on the current devices, then use the below command:

Get-AppxPackage -AllUsers | ft Name, PackageFullName –AutoSize

Use New Get-Package Cmdlet to Get a List of Installed Apps in Windows

All the methods we have discussed above for getting a list of installed programs in Windows are not universal enough. Some don’t display UWP applications, others don’t display apps in the user profile (like browsers), or do not display x64 programs. In addition, the wmic tool and the Get-WmiObject and Get-CimInstance cmdlets are extremely slow.

In new versions of Windows 10/11 and Windows Server 2022, you can use the new generic Get-Package cmdlet from the PackageManagement module. This cmdlet allows you to display a list of installed programs on the computer.

Its main advantage is that it can get app info from all existing package providers installed on the computer. You can list the available providers like this:

Get-PackageProvider
  • Programs
  • Msi
  • Msu
  • PowerShellGet
  • NuGet

generate list of installed programs windows 10

The list may include other package providers installed on the computer, such as Chocolatey, winget, and PSModule. After installing any of these providers, in the list of installed programs the Get-Package command will return all applications that are deployed using the new providers .

To list the programs installed on your computer, run just one PowerShell cmdlet:

Get-Package

get list of programs installed windows 10

As you can see, the command returned desktop apps, installed via MSI packages, installed Windows Security Updates (MSU), available PowerShell modules (installed from PSGallery), and Microsoft Store apps.

You can display only certain columns containing information about the installed program. Using the Export-Csv cmdlet, you can immediately save the list of programs to a CSV file:

Get-Package |select Name, Version, Status, ProviderName, Source, FromTrustedSource, FastPackageReference| Export-Csv -Encoding utf8 -delimiter ";" -Path c:\ps\getapplist.csv

list all software installed on windows 10

You can display only programs installed via a specific provider:

Get-Package -ProviderName Programs -IncludeWindowsInstaller

To get a list of installed programs on a remote computer, you need to use PSRemoting:

Invoke-Command -ComputerName "MYServe01" -Credential "THEITBROS\User2022" -ScriptBlock {Get-Package}

Get the List of Installed Software on Remote Computers Using PowerShell

System administrators often need to check whether a certain program and/or version is installed on network computers. For example, you can check if an important Windows update is installed or if all workstations have the correct version of MS Office.

Usually, for the remote inventory of remote computers we use the following PowerShell script (if this account doesn’t have permissions to connect remotely to a computer, the script will ask you to enter the credentials):

Function Get-InstalledApps

{

[CmdletBinding()]

param (

[Switch]$Credential,

[parameter(ValueFromPipeline=$true)]

[String[]]$ComputerName = $env:COMPUTERNAME

)

begin {$key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"}

process

{

$ComputerName | Foreach {

$Comp = $_

if (!$Credential)

{

$reg=[microsoft.win32.registrykey]::OpenRemoteBaseKey('Localmachine',$Comp)

$regkey=$reg.OpenSubKey([regex]::Escape($key))

$SubKeys=$regkey.GetSubKeyNames()

Foreach ($i in $SubKeys)

{

$NewSubKey=[regex]::Escape($key)+""+$i

$ReadUninstall=$reg.OpenSubKey($NewSubKey)

$DisplayName=$ReadUninstall.GetValue("DisplayName")

$Date=$ReadUninstall.GetValue("InstallDate")

$Publ=$ReadUninstall.GetValue("Publisher")

New-Object PsObject -Property @{"Name"=$DisplayName;"Date"=$Date;"Publisher"=$Publ;"Computer"=$Comp} | Where {$_.Name}

}

}

else

{

$Cred = Get-Credential

$connect = New-Object System.Management.ConnectionOptions

$connect.UserName = $Cred.GetNetworkCredential().UserName

$connect.Password = $Cred.GetNetworkCredential().Password

$scope = New-Object System.Management.ManagementScope("$Comprootdefault", $connect)

$path = New-Object System.Management.ManagementPath("StdRegProv")

$reg = New-Object System.Management.ManagementClass($scope,$path,$null)

$inputParams = $reg.GetMethodParameters("EnumKey")

$inputParams.sSubKeyName = $key

$outputParams = $reg.InvokeMethod("EnumKey", $inputParams, $null)

foreach ($i in $outputParams.sNames)

{

$inputParams = $reg.GetMethodParameters("GetStringValue")

$inputParams.sSubKeyName = $key + $i

$temp = "DisplayName","InstallDate","Publisher" | Foreach {

$inputParams.sValueName = $_

$outputParams = $reg.InvokeMethod("GetStringValue", $inputParams, $null)

$outputParams.sValue

}

New-Object PsObject -Property @{"Name"=$temp[0];"Date"=$temp[1];"Publisher"=$temp[2];"Computer"=$Comp} | Where {$_.Name}

}

}

}

}

}

To generate a list of installed programs on the current computer, run the command:

Get-InstalledApps

To get lists of installed software from several remote computers, run this command:

Get-InstalledApps PCName1,PCName2,PCName3,PCName4

That is all! Hope this article will be helpful!

I enjoy technology and developing websites. Since 2012 I'm running a few of my own websites, and share useful content on gadgets, PC administration and website promotion.
Latest posts by Cyril Kardashevsky (see all)

9 comments

  1. I have used a Windows computer since 1993, and have just installed Windows 10 Pro to replace Windows 7 Pro and I am trying to find my way around. I typed shell: AppsFolder in the run box and it says Windows cannot find it. I can’t see how to find anything like installed software, or what’s on the hard drive. File Explorer has nothing useful in it, like all the files and folders.
    Even looking at an image in an email, I can’t go “Back” except to try to close the image, which says “do you want to close all tabs”, and if I say Yes, it logs me out of my email.

  2. There is a typo with the slash before computername…
    wmic product get name,version /format:csv > C:\InstalledApps_%\Computername%.csv

    Also for powershell, it is better to make a variable and call it for Computername. Also the backslash was missing after Uninstall
    PS:
    $computername = $env:computername
    Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize > C:$computername-List-installed-programs.txt

  3. Sigh. Windows 10 is a already a cluster-f*** regarding apps vs programs. FYI, when doing tech writing, use less pronouns including “this”. I have no clue what some of your references are too because of the ambiguity

  4. @Daniel Reynolds thanks for the tip about the uninstall

    I had to fix this line
    begin {$key = “SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall”}
    to be
    begin {$key = “SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\”}

    and then it worked.

    Also I was able to substitute “Displayversion” for “InstalledDate” to get the versions of the software installed which was helpful for me.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.