PowerShell: Get Installed Programs With Ease

8 min read 11-15- 2024
PowerShell: Get Installed Programs With Ease

Table of Contents :

PowerShell is a powerful scripting language and automation framework developed by Microsoft, primarily used for system administration. One of the most common tasks for system administrators is managing software installations on Windows systems. Knowing how to quickly and easily retrieve a list of installed programs can save time and enhance productivity. In this article, we will explore different methods to get installed programs using PowerShell, equipping you with essential skills to manage software on your Windows machine.

What is PowerShell? 🤔

PowerShell is designed to automate the administration of the Windows operating system and applications. It includes a command-line shell and an associated scripting language, which can be extended with various modules. The command-based nature of PowerShell allows you to execute a variety of tasks efficiently and effectively.

Why Use PowerShell to Get Installed Programs? 💡

Using PowerShell to obtain a list of installed programs offers several advantages:

  • Speed: Retrieve information quickly without navigating through menus.
  • Automation: Create scripts for repeated tasks, reducing manual effort.
  • Flexibility: Filter, sort, and export data as needed.

Methods to Get Installed Programs in PowerShell

There are several methods to retrieve installed programs using PowerShell, each with its unique benefits. Below are the most popular approaches.

Method 1: Using Get-WmiObject

The Get-WmiObject cmdlet can be used to query the Windows Management Instrumentation (WMI) to retrieve installed programs.

Get-WmiObject -Class Win32_Product | Select-Object Name, Version

Breakdown:

  • Get-WmiObject: Fetches the specified WMI class.
  • -Class Win32_Product: Retrieves the list of installed software.
  • Select-Object Name, Version: Selects specific properties to display.

Method 2: Using Get-Package

If you are using Windows 10 or later, Get-Package is another powerful option.

Get-Package | Select-Object Name, Version, ProviderName

Breakdown:

  • Get-Package: Lists installed packages from various sources.
  • Select-Object: Similar to the previous method, it allows you to choose the displayed properties.

Method 3: Using Registry

Another method to obtain installed programs involves querying the Windows Registry.

Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*" | Select-Object DisplayName, DisplayVersion

Breakdown:

  • Get-ItemProperty: Retrieves properties from specified registry keys.
  • HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall*: Accesses the uninstall key where installed programs are listed.

Comparison of Methods

To better understand the differences, let's compare the three methods in a table format:

<table> <tr> <th>Method</th> <th>Speed</th> <th>Details Retrieved</th> <th>Best For</th> </tr> <tr> <td>Get-WmiObject</td> <td>Moderate</td> <td>Name, Version</td> <td>General use, compatible with older systems</td> </tr> <tr> <td>Get-Package</td> <td>Fast</td> <td>Name, Version, Provider</td> <td>Modern package management</td> </tr> <tr> <td>Registry</td> <td>Slow</td> <td>Name, Version</td> <td>Advanced details, possible hidden programs</td> </tr> </table>

Important Notes:

"While using Get-WmiObject, be aware that it can be slower and might not show all installed applications, especially those installed by Windows Store or through other means."

Exporting the List of Installed Programs 📊

After retrieving the list of installed programs, you may want to export the data to a file for further analysis or reporting.

Exporting to CSV

To export the information to a CSV file, you can pipe the output of any of the above commands into the Export-Csv cmdlet.

Get-Package | Select-Object Name, Version, ProviderName | Export-Csv -Path "C:\InstalledPrograms.csv" -NoTypeInformation

Explanation of the Command:

  • Export-Csv: Exports the data to a CSV file.
  • -Path: Specifies the file location.
  • -NoTypeInformation: Omits type information from the CSV.

Filtering Installed Programs

You might want to filter the list of installed programs based on certain criteria, such as version or name.

Example: Filtering by Name

To find installed programs that contain a specific word, use the Where-Object cmdlet.

Get-Package | Where-Object { $_.Name -like "*Microsoft*" } | Select-Object Name, Version

Explanation:

  • Where-Object: Filters the objects passed through the pipeline.
  • -like "Microsoft": Looks for names that include "Microsoft".

Example: Filtering by Version

To filter by a specific version, you can modify the query slightly.

Get-Package | Where-Object { $_.Version -eq "1.0.0" } | Select-Object Name, Version

Conclusion

PowerShell is an invaluable tool for system administrators and IT professionals. Understanding how to get installed programs can enhance your ability to manage software effectively. With various methods at your disposal—like using Get-WmiObject, Get-Package, or querying the registry—you have flexibility in how you retrieve and manipulate this information.

By utilizing the examples provided in this article, you can customize your PowerShell scripts to meet your specific needs, whether you are exporting data, filtering results, or automating routine tasks. PowerShell truly allows you to manage Windows systems with ease, saving time and increasing efficiency. So go ahead, start using PowerShell to take control of your installed programs! 🚀