0

How to Get Windows 10 Installed Programs List

You can get a list of installed programs in Windows 10, 8, or Windows 7 using various tools, including built-in command-line tools.

  • With help of Windows setting

Windows 10 has an easy way to collect information about all installed applications lists.

Just press Win + I on your keyboard and go to Apps  Apps and features.

Another option is to press Win + R and run the command:

ms-settings:appsfeatures

The list of installed apps is shown here. It will not show default windows utilities. You will get apps counter on the top of the list. This section also enables you to filter the list and generate a list of all apps installed on a specific disk. If you want to find all the apps installed on a system drive. Just press Filter by and select your system’s drive.

This section cannot generate a file with a list of all installed apps on a computer.

Generate a List of Installed Apps in Windows 10

This works for older versions of Windows 10 i.e. Windows XP.

You can generate a list of installed apps and extract it for later use. This guide will also cover built-in utilities.

Let me show you a great tool which is Uninstall View. This doesn’t require any installation and cost. You just have to download the Uninstall View from the official website and launch it.

Note: , Uninstall View shows  win32 apps only and it 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 apps. 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 the Options  Load Windows Apps menu.

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 need a list of all installed apps along with details like, path, registry key, version 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;

3- Deselect all and put a checkmark in front of Display name

4- Press Ctrl + A and then save selected items

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 PC. You can edit it as any text file as well.

With the help of 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 run this command:

shell:AppsFolder


In the bottom-left corner, you can find the total number of installed apps in Windows. It includes all the default Windows utilities, such as Control Panel, Disk Cleanup, etc. In case you want to know the number of installed apps in Windows 10, Use the next method.

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.

With the help of Command Prompt and WMIC

Run the elevated Command Prompt (use search and then run the app as Administrator), and enter the following command:

wmic product get name,version

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

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 will generate a ‘”CSV” file. Then, open the drive C. There you will find a CSV file with your apps. In addition to the app’s names and versions, this list has the current computer name. Open this file using any text editor or Excel.


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

With the help of PowerShell?

PowerShell gets this list by scanning a particular registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. The Control Panel uses the same registry to generate the list of installed apps but you cannot export this list.  This registry key contains only programs installed “for all users”.

Note:. 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, 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

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

Use the following PowerShell script to generate summary list of x86 and x64 installed application and export it to a file of CSV format.

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

In PowerShell Core 6.x and 7.x you can query the list of installed win32 apps using the Get-CimInstance cmdlet:

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

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 a complete file path. For example, C:\Docsfile.txt.

As a result, you will see the difference between the two application lists. In the example depicted on the images, 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.

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

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

Guide to generate the List of Installed Microsoft Store Apps

The methods mentioned above only generates a list of win32 apps, also known as classic desktop Windows programs. 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-st

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

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

Generate the list of Installed softwares on Remote Computers by using PowerShell
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

Maryam Alam

Leave a Reply

Your email address will not be published. Required fields are marked *