Home > Software engineering >  PowerShell Read Content of shell:AppsFolder
PowerShell Read Content of shell:AppsFolder

Time:10-28

I am trying to get a list of all applications on my Windows Desktop.

I have tried the following command but this is not giving me a full list with some applications missing (e.g.: Steam):

`

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize

` I have seen that Windows is providing the virtual folder "shell:AppsFolder" but I am not able to use a Get-ChildItem to see all contents of this path.

Do you have any solutions to my problem?

Tried:

`

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize

`

Result:

AnyDesk                                                            ad 7.0.14        philandro Software GmbH                  
                                                                                                                             
Google Chrome                                                      106.0.5249.119   Google LLC                    20221014   
KeePass Password Safe 2.51.1                                       2.51.1           Dominik Reichl                20220830   
                                                                                                                             
Lenovo Welcome                                                     3.6.1.2          Lenovo Group Ltd.                        
Trellix Agent                                                      5.7.7.378        Trellix                                  
Microsoft Edge                                                     106.0.1370.52    Microsoft Corporation         20221021   
Microsoft Edge Update                                              1.3.169.31                                                
Microsoft Edge WebView2-Laufzeit                                   106.0.1370.52    Microsoft Corporation         20221024   
Lenovo Vantage Service                                             3.13.14.0        Lenovo Group Ltd.             20220830   
WatchGuard System Manager 12.7.0                                                    WatchGuard Technologies, Inc. 20220906   
                                                                                                                             
WinSCP 5.21.2                                                      5.21.2           Martin Prikryl                20220830   
Java 8 Update 351                                                  8.0.3510.10      Oracle Corporation            20221019   
Microsoft Visual C   2019 X86 Minimum Runtime - 14.29.30135        14.29.30135      Microsoft Corporation         20221004   
mRemoteNG                                                          1.76.20.24615    Next Generation Software      20220909   
Java Auto Updater                                                  2.8.351.10       Oracle Corporation            20221019   
Microsoft Azure Information Protection                             2.14.90.0        Microsoft Corporation         20220930   
Teams Machine-Wide Installer                                       1.5.0.8070       Microsoft Corporation         20220830   
Microsoft Visual C   2019 X86 Additional Runtime - 14.29.30135     14.29.30135      Microsoft Corporation         20221004   
Jabra Direct                                                       6.4.28501        GN Audio A/S                  20221020   
Microsoft S/MIME ActiveX Control                                   15.4.7047        Microsoft Corporation         20221004   
Office 16 Click-to-Run Extensibility Component                     16.0.15629.20118 Microsoft Corporation         20220929   
Office 16 Click-to-Run Localization Component                      16.0.15629.20118 Microsoft Corporation         20220929   
Jabra Direct                                                       6.4.28501        GN Audio A/S                             
Microsoft Visual C   2015-2019 Redistributable (x86) - 14.29.30135 14.29.30135.0    Microsoft Corporation                    
Microsoft Search in Bing                                           2.0.2            Microsoft Corporation         20220830   
VMware Remote Console                                              12.0.2           VMware, Inc.                  20220906   
Trellix Data Exchange Layer for MA                                 6.0.3.847        Trellix                                  
DefaultPackMSI                                                     4.6.2.0          Microsoft                     20220830   
DFUDriverSetupX64Setup                                             7.0.32822.0      GN Netcom A/S                 20220830   
Microsoft Visual C   2010  x86 Redistributable - 10.0.40219        10.0.40219       Microsoft Corporation         20220906

CodePudding user response:

What you are extracting under Wow6432node are 32 bit keys registered for 64 bit programs.


  • Try running this in powershell or powershell-core:
$RegistryLocation = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
                    'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
  • and then print to console
Get-ItemProperty $RegistryLocation | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize
  • Note: some applications dont have registered field/object data value, so you see them as blank lines


  • Or you can get them by Get-ChildItem by doing:
$RegistryLocation = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\',
                    'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\'

Get-ChildItem $RegistryLocation | select @{N='DisplayName'; E={$_.GetValue('DisplayName')}} | sort name | Format-Table –AutoSize
  • For GUI-ouptut use out-gridview instead of Format-Table –AutoSize

CodePudding user response:

You have to use the shell.applicaiton com object to access virtual folders:

$Shell = New-Object -ComObject shell.applicaiton
$AppsFolder = $Shell.NameSpace("shell:AppsFolder")
$AppsFolder | select Name , Path | Out-GridView

enter image description here

  • Related