How to see a list of installed programs? Win32_Product class or registry. How to get a list of installed programs using Windows PowerShell

System administrators Often you have to determine which programs are installed on computers serviced networks. There are a number of circumstances that make them regularly conduct an audit of applications installed on corporate systems. It happens that the administrator establishes a software package, forgets to document it, and later it turns out that there are vulnerable places in the package security system. Sometimes users are endowed with administrative rights that allow them to independently install software products on their computers. There is also such a danger: the user who is an unauthorized administrator's authority, may establish unauthorized software, thereby revealing the possibility of attracting an organization to judicial liability.

Independent providers offer means for monitoring the established softwareBut small enterprises may not be resources to implement such a decision. In our company there was no audit software, so I wrote a script Windows PowerShell Get-installedapp.ps1 (see Listing). Before proceeding with the description of the procedure for using this scenario and the mechanism of its work, I would like to stay on two methods for finding installed software using the script and clarify what the method I was attracted to.

Win32_Product class or registry

In tools windows management Management Instrumentation (WMI) There is a Win32_Product class that allows you to register applications installed on the computer. In the PowerShell environment, this opportunity is simply implemented. So, the team

Get-WMiobject Win32_Product
| Select Name.

generates a list of all applications installed on the currently studied computer. However, I must say that the Win32_Product class is inherent in a number of restrictions.

  • He reads the names of only those applications that were installed using windows services Installer. Application names established in other ways using this class Do not read. This means that the use of the Win32_Product class in order to implement a general audit software It is impossible, except when the Windows installer is used to install the packages, and this is practically impossible for most networks.
  • Reading instances of the Win32_Product class is performed very slowly.
  • It is not always possible to read instances of the Win32_Product class from remote computers. So, when I try to accomplish a similar procedure in my network, I get an error message Generic Failure.

Due to the listed problems, the feasibility of using the WMI Win32_Product class is reduced. However, it is available alternative method obtain information about the established applications - directly from the registry. Data on the applications installed on the computer is contained in the HKEY_LOCAL_MACHINE \\ Software \\ Microsoft \\ Windows \\ CurrentVersion \\ Uninstall registry section. In each section of the Uninstall section, an installed application is presented, and the values \u200b\u200bin each subsection displays the information about the corresponding application, as shown on the screen. Thus, in order to get a list of applications, you can "play" section Uninstall and read the data of each subsection included in the Uninstall section.

The PowerShell registry provider makes it possible to execute the Get-Childem command to obtain a list of application names installed on the computer under study:

Get-Childem HKLM: \\ Software \\
Microsoft \\ Windows \\ CurrentVersion \\
Uninstall |
Foreach-Object ((Get-ItemProperty
Microsoft.powershell.core \\ registry :: $ _).
DISPLAYNAME)

However, in the PowerShell 1.0 environment, the Get-Childitem command does not provide access to the registry provider on remote computerTherefore, to achieve the goal, the administrator has to use stdregprov, the WMI toolkit registry class. The stdregprov class provides the ability to use the useful set of methods that make it easier to read the registry regarding which system is interacted, local or remote. Additional information About Stdregprov class can be found on the STDReGProv Class page on the MSDN website (http://msdn.microsoft.com/en-us/library/aa393664.aspx).

How to work with the GET-InstalledApp.ps1 script

The Get-InstalledApp.ps1 script reads information about the installed registry applications, after which returns either a list of all installed applicationsor a list of applications that meet the specified criteria. The following syntax is used in the script command line:

Get-InstalledApp [-ComputerName]
[-AppID] [-Appname]
[-Publisher] [-Version] [-Matchall]

The ComputerName parameter is used to remove a list consisting of one computer name or from the list of computer names. The ComputerName parameter is the first in a row, so to reduce the command you can omit the -computername key and simply enable the computer name in the command. If you completely eliminate this parameter, the script will proceed from the fact that you want to obtain data on the local computer.

The -AppID parameter is used to search for applications to identifiers (Application ID). An application identifier is a registry subsection belonging to Uninstall. On the screen, the application identifier is highlighted in the left pane. For applications installed using the Windows Installer, an application identifier is equivalent to a global unique identifier (GUID ID) of the product ID of the appropriate application. Usage -AppID parameter - the best way Detection of specific applications installed using the Windows Installer service.

The -appname parameter is used to search for applications on their displayed name. The display name is the name of the application as in which it appears in the Add / Remove Programs list or the displayName value in the subsection of the appropriate application. So, on the screen, the selected application has the display name OpenOffice.org 2.4.

Parameter -Publisher is used to search for applications by publisher. If you do not have accurate information about who is an application publisher, you can find them in Publisher entries subsection registry for this application. So, the publisher of the selected application on the screen is OpenOffice.org.

The -Version parameter is used to search for applications by their versions. If you do not know, what is the version of a particular application, you can read this data from the DisplayVersion parameter of the subsection of this application. For example, the application selected on the screen has version 2.4.9286.16.

If for the Get-InstalLextApp.ps1 file, specify the -matchall key, the script will display all the relevant specified criterion Applications, instead of stopping the search after the first matching detection. So, the team

Get-InstalledApp -Publisher
"Microsoft Corporation" -matchall

returns a list of all Microsoft applications installed on the computer under study. If you drop the -matchall key, the script will stop the search after the first matching is detected.

All listed keys (-Appid, -appname, -publisher and -version) are supported using template symbols; The keys arguments are insensitive to the register. So, the team

Get-InstalledApp -appname
"* Office *" -matchall

displays a list of all applications installed on the studied computer, in whose names there is a word Office. In addition, to specify more detailed search criteria, you can specify the parameters -appid, -appname, -publisher and -version in any combination. So, the team

Get-InstalledApp Sales01-AppName
"*.Net Framework.* "-Version" 2 * "

displays the first application containing the word.NET Framework in the displayed name and having a version, the number of which begins with the number 2. If applications that meet the specified criteria are not detected, the script does not return any values. For getting additional information On the template characters in the PowerShell environment, execute the command

Get-Help About_Wildcard

The GET-InstalLextApp.ps1 script returns objects containing ComputerName, AppID, AppName, Publisher and Version properties, so you can use PowerShell commands and format output data according to your needs. So, the team

Get-InstalledApp | SELECT-OBJECT APPNAME,
Version |
SORT-OBJECT AppName

displays a list of applications and version of each application, sorted by application names. To use the values \u200b\u200bseparated by commas, create a report on all software productsinstalled on all computers listed in the computers.txt file you need to use the command

Get-InstalledApp (GET-CONTENT
Computers.txt) |
Export-CSV Report.csv -NotypeInformation

The -NotypeInformation parameter of the Export-CSV command blocks the transmission of information in the output CSV file. Team

Get-InstalledApp (GET-CONTENT
Computers.txt)
-Appid "(7131646D-CD3C-40F4-97B9-
CD9E4E6262EF) "|
Select-Object ComputerName

forms a list of Computers mentioned in the file file on which the Library .NET Framework 2.0 is installed. If you want to get an ordered list of Microsoft applications installed on the under study and their versions, sorted by application names, use the command

Get-InstalledApp -Publisher
"Microsoft Corporation" -Matchall |
SELECT-OBJECT AppName, Version |
SORT-OBJECT AppName

Internal GET-InstalledApp.ps1 script mechanisms

Now that you know how to use the GET-InstalledApp.ps1 script, let's see how it functions. First, using the Param command, the script declares command line parameters; It then creates two global variables for use in the future when working with Stdregprov class. After that, the script announces the usage function and the main function. The last script line causes the main function.

The MAIN function contains the main scenario body. First of all, it finds out if the -help parameter is available on the command line. If so, the MAIN feature calls the USAGE function that generates a use message and completes the execution of the script.

Next, the main function creates an empty hash table and saves it in the $ propertyList variable, as shown in a fragment A L LEnta.

If at a command line there is at least one of the parameters (-Appid, -appname, -publisher or -Version), the function adds a key to the hash table that corresponds to the parameter name, and sets the value of this key to the parameter argument. So, the team

Get-InstalledApp -appname
"Windows Support Tools"

prescribes main function Fill the hash table using the Appname key, which has the value of Windows Support Tools.

The Main function then finds out whether the ComputerName parameter is empty. If the parameter is empty, the function uses the name local computerwhich she gets from variable environment ComputerName. If the parameter is not empty, the function goes through an array of computers using the Foreach cycle. The cycle is performed only if the ComputerName argument parameter is the name of one computer.

Inside the Foreach cycle, the MAIN function declares the $ ERR variable and sets its value equal to $ null. After that, using a special script block (Trap Scriptblock), the function reveals WMI errors, as shown in the listing fragment B. If you have an error, the "trap" block script updates the error variable to the level of the current error recording (that is, sets it the value of $ error) and continues the execution of the command following the error.

Next, the main function is connected to the stdregprov class on the computer under study using the type accelerator for the system.management.managementclass class Windows.NET Framework platform. In the event of an error, the latter is detected using a special scenario block represented in a fragment C listing. If the value of the $ ERR variable is not $ NULL, this means that the "trap" block of the script was running. In this case, the Main function generates an error record using the Write-Error command, and then uses the Continue command, which allows you to skip the remaining Foreach cycle and go to the next computer name in the array.

After that, the MAIN feature uses the Stdregprov class EnumKey method to enumerate Uninstall subsections. The result of the use of the EnumKey method is an array of subsection names - stored in the Snames property. Further, the function goes through the array of subsection names using another Foreach cycle.

When processing each subsection submitted in the sample array, the MAIN function using the getStringValue method of the Stdregprov class reads the displayname property of the corresponding registry key. Using the join-path command, the function attachs the name of the subsection to the Uninstall key. The route to the registry is used as an argument for the GetStringValue method, which returns the value of the registry entry. This should be a string value. This method Takes three arguments: the registry branch, the path to the section and name of the parameter. GETSTRINGVALUE value Returns an object containing two properties: The ReturnValue property that includes a value indicating a successful or unsuccessful method call, and the SVALUE property containing a string value. The Main feature assigns the value of the SVALUE property of the $ Name variable.

If the value of the $ Name variable is not $ , the Main function creates a customizable output object containing four properties: ComputerName, AppID, Appname, Publisher and Version. It updates the ComputerName object property with the name of the computer under study, the property of the AppID object is the name of the current subsection, and the Appname object property is the displayed name of the current application. Further, the function twice uses the GetStringValue method to extract the values \u200b\u200bof Publisher and DisplayVersion records to update the corresponding properties in a custom object using these values.

So, the MAIN function has completed information about the current application and now checks the $ PropertyList hash table for the presence of keys; To do this, the Keys Collection Count property is exposed. If the hashing table does not contain keys (in other words, if neither one of the parameters (-Appid, -appname, -publisher and -Version) are not submitted on the command line), then the function simply generates a custom object to find out, the arguments of which command line parameter Complies with the values \u200b\u200bof the properties of a custom object. Fragment D Listing demonstrates how the Main function solves this task.

First, the value of the $ Matches variable is set to 0, then the code passes through all elements of the Keys Hash table of $ PropertyList. For each key in the $ PropertyList's hashing table, the PowerShell -Like environment operator applies to find out whether this property of the configurable object is appropriate to the equivalent hush table value of the $ PropertyList Hashtable. In the case of conformity of the values \u200b\u200bof the specified elements, the function increases the value of the $ Matches variable. If the number of matches is equal to the number of keys in the hashing table, the MAIN function generates a custom object. Finally, if there is no -matchall parameter on the command line, the function uses the Break command to exit the Foreach cycle, which is used for the extension of the registry subsections.

Thus, the GET-InstalledApp.ps1 script allows you to get a list of applications installed on one or more computers without much trouble. Moreover, it can organize the search for the specified applications. It is possible to monitor the software installed on the computers of your network, it will be quite possible to do with this scenario.

In this simple instruction - two ways to get a text list of all programs installed in Windows 10, 8 or Windows 7 built-in system tools or using third-party free software.

Why can this be required? For example, list installed programs It can be useful at or when purchasing a new computer or laptop and configuration "for yourself". Other scenarios are possible - for example, to identify undesirable software in the list.

We receive a list of installed programs using Windows PowerShell

The first method will use the standard system component - Windows PowerShell. To start it, you can press the Win + R keys on the keyboard and enter powerShell.or use windows search 10 or 8 to start.

In order to display full list Installed on the computer programs just enter the command:

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

The result will be issued directly in the PowerShell window in the form of a table.


In order to automatically export the list of programs into a text file, the command can be used as follows:

Get-ItemProperty HKLM: \\ Software \\ Wow6432Node \\ Microsoft \\ Windows \\ CurrentVersion \\ Uninstall \\ * | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -Autosize\u003e D: \\ Programs-list.txt

After executing the specified command, the program list will be saved to the PROGRAMS-LIST.TXT file on Disk D. Note: When you specify the C disk root to save the file, you can get an "denied access" error if you need to save the list on system Disk, Create any of your folder on it on it (and save it to it), or launch PowerShell on behalf of the administrator.

Another addition - the method described above saves the list of only programs for the working wooden tablesbut not applications from windows Store 10. To get their list, use the following command:

Get-AppXPackage | Select Name, PackageFullName | Format-Table -Autosize\u003e D: \\ Store-Apps-List.txt

More information about the list of such applications and operations on them in the material :.

Getting a list of installed programs using third-party

To get a list windows programs In CCleaner, follow these steps:



At the same time, CCleaner saves in the list as the desktop programs and the Windows store applications (but only those available to delete and are not integrated into the OS, in contrast to the method of obtaining this list in Windows PowerShell).

Here, perhaps, all on this topic, I hope for someone from readers information will be useful and will find its application.

How to get a list of installed programs in the Windows operating system? The list of programs installed on the computer can be obtained in several ways.

In this article we will analyze three of different ways: Using the command line, Windows PowerShell, and CCleaner. The list of installed programs will be saved on a computer in a text file.

You can see the list of installed programs directly in the Windows operating system. You can also familiarize yourself with this list of installed programs using optimizer or uninstallator programs (all installed applications you will see in the program window).

The complete list of installed programs may be needed for the following purposes: To install the necessary programs, after installation (reinstallation) operating system Windows, after purchasing a new computer in order not to forget to install all the necessary applications, to identify unwanted software that penetrated the computer without the user's knowledge.

How to see a list of installed programs using the command line

Enter the Start menu, run the command prompt on behalf of the administrator, and then enter the following command:

Depending on what you want: view in the command line interpreter window, the list of installed applications, or save the list of installed programs to the computer as text File, Perform the appropriate commands.

To view the list of programs, enter the following command:

Product Get Name, Version

After entering the appropriate command, do not forget to click on the Enter key. Wait a little, because the list of installed applications is not instantly formed. You will see a list of installed programs in the form of a table.

To save the list of programs on your computer, enter the command:

/Output:c:\\appsfile.txt Product Get Name, Version

The table displays the name of the program and the version number number.

Please note that the AppsFile text file has been selected in this command on the "C" disk. You can choose another disk on your computer to save the file in the "TXT" format.

How to get a list of installed programs using Windows PowerShell

In Windows 10, or in Windows 8, enter the expression "PowerShell" in the search field (without quotes). Next, right-click on Windows PowerShell, and then click on the "Run on the Administrator name".

In the Windows PowerShell window, enter the command to display the list of installed programs:

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

Then click on the "Enter" key.

If you want to immediately get a list of installed programs in a text file, enter this command:

Get-ItemProperty HKLM: \\ Software \\ Wow6432Node \\ Microsoft \\ Windows \\ CurrentVersion \\ Uninstall \\ * | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -Autosize\u003e C: \\ Apps-List.txt

Click on the keyboard to the Enter key.

In this command, the Apps-List file is selected in the "TXT" format on the "C" disk.

In the table you will see: the application name and version of the program.


To save the list of applications received from the Windows Store, perform the following command in PowerShell:

Get-AppXPackage | SELECT NAME, PACKAGEFULLNAME | Format-Table -Autosize\u003e C: \\ Store-Apps-List.txt

How to save the list of installed programs in CCleaner


In the window that opens, select a place to save a text file. By default, the saved file has the name "Install".

The following programs are collected in the file: program name, publisher, installation date, size, version.


Conclusion

If necessary, the user can get a list of programs installed on the computer running the Windows operating system. The list of installed programs can be saved on a computer as a text file using a command line, Windows PowerShell, CCleaner programs.

In this article we will look at several ways to see on the computer.

If you have not reinstalled your system for a long time, most likely you have already accumulated a lot of programs.

Very often, shortcuts of programs that are located on the desktop are flying to the basket, and the program itself remains.

It often happens so that the program completely cease to use, why is it then? You can delete it!

But to delete some programs you need to see a complete list of all programs in general. Let me tell you how to see.

The first way is to go to the Program Files folder, which is on the system disk, is usually a disk (C :), and see what we have there. There are many different folders, almost every of these folders is a separate program.

Here you have a list of installed programs. The name of the folder is the name of the program that lies inside. To start the program, you need to open the folder and find a start file there, usually it has a program icon, and the familiar name immediately rushes into the eyes, also this file is very different from other in this folder. I'm sure, do not confuse!

Also in the folder with the installed program there is always a file with which you can delete it. Almost always has the name "Uninstall", to delete the program you need to run it and follow the program deletion master.

The second way to see the list of installed programs is to use the standard installation / removal function in Windows and see what we have there. For this we go to the launch, then Control Panel, in the window that opens, find a link Removing the program And click on it. For those who have Windows XP need to look for a shortcut Installation Removal software.

Here we can see a list of all installed programs, we can immediately delete them. In Windows 7, you can sort them by name or by the date of installation. Here also contains the size of each program.


You can still see computer-installed programs In start. Start - all programs.

But after installation, the program does not always create a folder with a launch label and deletion in the start, so there are no very whole software installed on the computer.

Main ways to see the programs that are installed on our computer, I told.

And what if we can't find the folder with the installed program? But the label on the desktop is available. In Windows 7, you can right-click on the label and select the Select item in the drop-down list. File location.

The folder with the installed program and opens .. Here you can already run the program or delete!

I complete this article on this, now you know how to see and find any folder with the installed program.

Hello dear visitors and, of course, regular blog readers website . The topic of today's article is how to find out where the program is installed on the computer. Maybe this information is not urgent, but sometimes such information may be required. Yes, and just useful to know the device of the operating system and the ways to perform a particular operation on the computer.

As a rule, all programs in Windows are installed on the system disk in the Program Files or Program folders (x86), although some deviations are possible. The location of the program is the location of the executable file (usually this application with extension.exe).

Today we will deal with some ways to determine the specific location of the programs on the computer, on the example of the operating windows systems 10. (in the rest windows versions Everything is done about the same).

Search for installation of the program

To find out where the program you are interested in is the easiest way to use its label on the desktop. As an example, take a wonderful program for cleaning the computer.

When you click the program shortcut with the right mouse button, the context menu opens in which you want to select " File location».


After clicking at the specified item, the folder opens cCleaner programAnd in the address bar of the conductor displays the path to this folder.


You can do a little differently, and choose in context menu Label point "Properties", after which the CCleaner Properties window opens.


In the properties window that opens on the tab "Label", you see the item " Work folder " So, the folder specified there is, this is the installation site of the CCleaner program.

By clicking on the "button" File location"You will open the folder with the CCleaner program shown in the second screenshot.

If you wish, you can find out the place of installation of the program using the task manager, that is, without using its label. True, in this case the program must be launched. First, open the task manager and click the "Less" button to cut off all unnecessary.


In the truncated version of the task dispatcher, find the necessary program and click on its row right mouse button.


As you can see, there are paragraphs in the context menu. Open the file location"And" Properties ". As, using these items, find out the place of installation of the program, you already know.

That's what I finish. I hope the article was useful to you, and you have learned even better how to find the installation site of any program on your computer. Thanks for attention. Good luck!

With all questions and additions, please contact the comments.

Did you like the article? To share with friends: