Get a List of Installed Application from computers (PowerShell)

This PowerShell Script shows how to get a list of installed application on local or remote computers.

 
 
 
 
 
2.8 Star
(38)
33,107 times
Add to favorites
10/8/2013
E-mail Twitter del.icio.us Digg Facebook
Sign in to ask a question


  • doesn't give pc names?
    1 Posts | Last post September 26, 2018
    • when i run this the computer column output is blank
  • Script returns only local application
    3 Posts | Last post April 13, 2018
    • Hi, i have the same problem as user Kurosaki61279. When i run the script, export file contains only software of local computer.
      I also tried to run the script Get-InstallApplication, but the result was the same.
      Can you help me?
      
      Best regards
      
      Libor
      
      
      
    • Hi All,
      I had a look at this script a few months back. And initially, I thought WOW. Then after looking carefully at the results, I can see that the list of applications for ALL the networked computers were the same as my PC! What a coincidence!
      
      Anyhow, I really had to find the list of applications on all the networked computers in the domain, so I had to fix the script. The complete listing of the fixed script is here:
      
      http://www.askseng.com/2017/09/getting-list-of-installed-applications.html
      
      But other than the little "issue" this was a very well structured script.
      
    • The original script will work for remote computers as well if we replace the below 2 lines with a single line with invoke command. Invoke-command is a must to extract registry on remote computers. 
      $InstalledAppsInfos = Invoke-Command -ComputerName $computername -Command {Get-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* }
      
      Remove below 2 lines from existing script.
      $RegKey = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"
      $InstalledAppsInfos = Get-ItemProperty -Path $RegKey
  • Script for to fetch All Softwares & OS details, Actual Hostname & IP address
    1 Posts | Last post April 29, 2015
    • Hi,
      
      First of all Thanks as script is very useful for me.
      
      Actually in addition to existing script i would need to fetch below information only.
      
      1. All software details including Product & its version (No Windows Update Related stuff)
      2. Windows OS information
      3. IP Address
      4. Actual hostname in OS.
      
      regards
      Deepak
  • Csv with computername doesn't work
    1 Posts | Last post February 25, 2015
    • I hi folks.
      I m trying to use de example 2, with the computerfilepath point to a csv in the formt described, but it doesn't work. I don't know why. I have the first line of the csv "ComputerName" and 3 valid computernames, which alone using "-computername" works.
       
      I think the only diference is my SO which is Windows 2008 r2.
      
      I need some help!
      
      Great Module, Congratulations 
      
      Thank in Advance!
      Havary C.
  • Can someone point me to one that doesn't just give info from local machine??
    1 Posts | Last post September 30, 2014
    • I wish I had read the comments first before wasting an hour getting this to filter to the one application I was searching for... only to find my app listed once per machine for each and every machine... grrrrr. Looking for this, but also with a filter (that doesn't use the WMIObject -Class "Win32_Product" as I've heard this can trigger updates to machines (which I cannot afford!!)
      
      Thanks in advance!
      Dan
  • This is so bad that I can't figure out how to ask my question.
    1 Posts | Last post April 30, 2014
    • So, we've established that it doesn't work.  Why is this a zip file?  Powershell scripts are ps1, modules are psm1.  Why is it so complicated?  Pulling a list of installed software is easy:
      
      $computername = "."
      Get-WMIObject -Class "Win32_Product" -ComputerName $computername
      
      In an odd example of exactly how everything else in powershell functions, you can refer to methods of each of the child objects to uninstall, reinstall, etc.
  • THis does not get remote registry
    2 Posts | Last post April 28, 2014
    • jrv
      This module only gets applications from the local computer and adds the name of the remote computer. It is a scam.
      
      You cannot use Get-ItemProperty remotely.  You cannot use Get-ChildItem remotely.
      
      There are other scripts in this repository that use remote registry to get this.  Look for them.
    • indeed. It shows applications from local computer regardless what computername is used.
      
      furthermore it only shows apps from microsoft library and not user installed apps
      
      useless
  • Get-OSCInstalledApplication powershell module is not exporting the info to CSV file
    1 Posts | Last post February 26, 2014
    • Hi,
      
      I found "Get-OSCInstalledApplication" module in Microsoft gallery. It is really nice. I have a plan to use this to get the details of installed programs in Remote computers. But unfortunately when I use export CSV file option with this module, It is not exporting properly. I can see only System.Collections.Hashtables in the csv file.
      
      I really need some experts help on how it can be fixed. I want to see the exported CSV file as it is showing in Microsoft script gallery.
      
      Regards,
      
      Raghavendra.
  • Instructions are wrong.
    1 Posts | Last post February 19, 2014
    • jrv
      Help New... is incorrect.
      
      The help is incorrect.
      
      There is no need to make a module out of this.  Rename it to .ps1 and just dot source the load.
      
      The author should either fix the code or correct the claims and the help.
  • 32 and 64 bit plus user-installed apps
    1 Posts | Last post January 22, 2014
    • You can also check for user-installed apps such as google chrome, amazon cloud player, etc in HKCU\software\microsoft\windows\currentversion\uninstall.
      
      here's a quick function we use as part of our userinfo logging:
      
      Function Get-InstalledProgramInfo
      	{
      	$InstalledSoftware = (Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ | Get-ItemProperty)
      	$InstalledSoftware += (Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\ | Get-ItemProperty)
      	
      	IF (Test-path HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\) {
      	    $InstalledSoftware += (Get-ChildItem HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ | Get-ItemProperty) }
      	
      	($InstalledSoftware | Where {$_.DisplayName -ne $Null -AND $_.SystemComponent -ne "1" -AND $_.ParentKeyName -eq $Null})| Select-Object -Property DisplayName,DisplayVersion,InstallDate | Sort-Object -Property DisplayName
      	} 
1 - 10 of 12 Items