Questions

Dos command to list all installed programs

Tags:
+
0 Votes
Locked

Dos command to list all installed programs

Alex1to
Is there a dos command to list all installed applications? Does anybody know of such dos command? If you know it, could you let me know what is it? or tell me it doesn't exist so I can find a different route to address my needs? Thanks in advance for your input
Alex
  • +
    0 Votes
    Why Me Worry?

    go to the root of your C: drive first

    C:\my stuff>cd\

    C:\>dir /w /s >dirlisting.txt

    this will output a list of all files and subfolders to a file called dirlisting.txt on the root of your C: drive. This won't tell you all running apps, but you can see what you have on your hard drive based on the folder names and their paths.

    +
    0 Votes
    luket

    Edited by moderator

    Message was edited by: beth.blakely@...

    +
    0 Votes
    grassiap

    you may use regedit to dump into a text file the content of the key :
    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

    this will list each and every piece of software shown in the add/remove program control panel.

    you'll then have to process the text to strip down undesired info (like maybe the drivers that every so often appear like {15634F-265432-543151765376}) As you're a netadmin I take it you'll find your way with some perl script (active perl allows to "compile" perl scripts as exe)

    From Windows 2000 on the WMI instrumentation can also be queried to get the deal (I've not the opportunity to dig that from MS technet know, let me know by email if you wish that I schedule some more time for that)

    if your target organization is larger than a SOHO I'd really advise you to consider a inventory solution like Insight Manager / TopTools/ Tivoli/ SMS or their Open Source counterparts
    (have a look at http://sourceforge.net/project/showfiles.php?group_id=58373&package_id=155185&release_id=488140 )

    +
    0 Votes
    anarchy

    You can use reg.exe command-line tool to get data containing in HKLM\Software\Microsoft\Windows\Uninstall.

    +
    0 Votes
    edexg

    reg.exe works very good to get the list that I need.

    +
    0 Votes
    LiamE

    Your best bet would be to run some PC auditing software like Centennial Discovery. This will scan your HDD and compare to a database of known programs signatures and output the result nicely for you.

    +
    0 Votes
    slylabs13

    This script generates a syntax error. <sigh>

    +
    0 Votes
    skarykid

    in the raw this displays the answers as pop ups on the screen, how would i tell it to write this to a text file

    +
    0 Votes
    princehancey

    echo List of softwares > software_list.txt
    echo ================= >>software_list.txt
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall temp1.txt
    find "DisplayName" temp1.txt| find /V "ParentDisplayName" > temp2.txt
    for /f "tokens=2,3 delims==" %%a in (temp2.txt) do (echo %%a >> software_list.txt)

    del temp1.txt temp2.txt

    +
    0 Votes
    tafi786

    i have been trying for 3 hours to get displayname and Publisher information into software_list.txt but i been unsucessful can you please help

    thank you

    +
    0 Votes
    rajeshdontham

    really very good
    thank u

    +
    0 Votes
    contactaleem

    Thank you, I use the above scripted, modified a little bit to fit my needs, may help someone else. I wanted the quotes out of the output.

    @echo off
    c:
    cd\
    cd %userprofile%\desktop
    echo List of softwares > temp3.txt
    echo ================= >> temp3.txt
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall temp1.txt
    find "DisplayName" temp1.txt| find /V "ParentDisplayName" > temp2.txt
    for /f "tokens=2,3 delims==" %%a in (temp2.txt) do (echo %%a >> temp3.txt)
    erase temp1.txt
    erase temp2.txt
    @echo off > SoftwareList.txt & setLocal enableDELAYedeXpansion
    set Q="

    for /f "tokens=* delims= " %%a in (temp3.txt) do (
    set S=%%a
    set S=!S:"=!
    >> SoftwareList.txt echo.!S!
    )
    erase temp3.txt
    notepad SoftwareList.txt

    +
    2 Votes
    ngruloos

    Windows comes with a command line version of the Management Instrumentation (WMIC).

    To get the list of all installed programs in a text file, simply enter the following command in a prompt:

    wmic product > c:\product.txt

    +
    0 Votes
    subs

    ... works like a charm and the results are easily imported into Excel.

    +
    0 Votes
    janus_bar

    To get a list of installed apps on a remote PC you can do the command:

    wmic /node:"PC NAME" product list

    and redirect it to a file using file redirections

    +
    0 Votes
    Mehul Bhai

    Zombie Alert!!!

    +
    0 Votes
    slylabs13

    wmic does NOT LIST ALL installed software. Try it on a computer that has Windows Search 4.0 installed and see if it lists it.

    A LOT of people are asking this question and the answers are all the same. WMIC will not do it properly. There is no single registry query that will do it because different OSES 32bit 64bit etc will put things in different places in the registry. PSInfo from PSTools does a great job. Too great. It lists all the updates and hotfixes as well as installed software, and there is no way to filter the noise out. Still, that is the best way so far, and you can query every active device in a domain too. Output the results to a text file and parse it with something else and you pretty much have your list.

    +
    2 Votes
    wikki

    C:\windows\system32\wmic is the command
    Below syntax is to execute this command

    C:\windows\system32\wmic \output:C:/installed.txt product get name, version

    +
    0 Votes
    Mehul Bhai

    Zombie Alert!!!

    +
    0 Votes
    B.Kaatz

    I think you got your slashes mixed up...

    wikki wrote:
    C:\windows\system32\wmic \output:C:/installed.txt product get name, version

    Shouldn't it be?:
    C:\windows\system32\wmic /output:C:\installed.txt product get name, version

    +
    0 Votes
    robo_dev

    Since there are applications that make no registry entries, and do not therefore appear in add-remove-programs list, simply pulling the registry will typically only get around 80% of the actual licensed apps on the machine. You need a utility that can hit both the registry and baseline/enumerate all executable files such as Symantec Altiris software inventory.

    +
    0 Votes
    TheChas

    As stated, nearly all of the command line, registry based, and related utilities only list those programs that install and place proper registry entries in the proper keys.

    Just listing all of the executables on a system is not very helpful either, as you have a lot of sorting and elimination to do to make a simple list.

    I have used Win Audit and it gives a fairly detailed list.

    SIW is another viable option.

    http://www.gtopala.com/

    The real question is what do you need / want to do with this information?

    If this is for a business that wants to make sure that only licensed and approved software is installed, you really need to lock down the computers and install monitoring software.

    Chas

  • +
    0 Votes
    Why Me Worry?

    go to the root of your C: drive first

    C:\my stuff>cd\

    C:\>dir /w /s >dirlisting.txt

    this will output a list of all files and subfolders to a file called dirlisting.txt on the root of your C: drive. This won't tell you all running apps, but you can see what you have on your hard drive based on the folder names and their paths.

    +
    0 Votes
    luket

    Edited by moderator

    Message was edited by: beth.blakely@...

    +
    0 Votes
    grassiap

    you may use regedit to dump into a text file the content of the key :
    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

    this will list each and every piece of software shown in the add/remove program control panel.

    you'll then have to process the text to strip down undesired info (like maybe the drivers that every so often appear like {15634F-265432-543151765376}) As you're a netadmin I take it you'll find your way with some perl script (active perl allows to "compile" perl scripts as exe)

    From Windows 2000 on the WMI instrumentation can also be queried to get the deal (I've not the opportunity to dig that from MS technet know, let me know by email if you wish that I schedule some more time for that)

    if your target organization is larger than a SOHO I'd really advise you to consider a inventory solution like Insight Manager / TopTools/ Tivoli/ SMS or their Open Source counterparts
    (have a look at http://sourceforge.net/project/showfiles.php?group_id=58373&package_id=155185&release_id=488140 )

    +
    0 Votes
    anarchy

    You can use reg.exe command-line tool to get data containing in HKLM\Software\Microsoft\Windows\Uninstall.

    +
    0 Votes
    edexg

    reg.exe works very good to get the list that I need.

    +
    0 Votes
    LiamE

    Your best bet would be to run some PC auditing software like Centennial Discovery. This will scan your HDD and compare to a database of known programs signatures and output the result nicely for you.

    +
    0 Votes
    slylabs13

    This script generates a syntax error. <sigh>

    +
    0 Votes
    skarykid

    in the raw this displays the answers as pop ups on the screen, how would i tell it to write this to a text file

    +
    0 Votes
    princehancey

    echo List of softwares > software_list.txt
    echo ================= >>software_list.txt
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall temp1.txt
    find "DisplayName" temp1.txt| find /V "ParentDisplayName" > temp2.txt
    for /f "tokens=2,3 delims==" %%a in (temp2.txt) do (echo %%a >> software_list.txt)

    del temp1.txt temp2.txt

    +
    0 Votes
    tafi786

    i have been trying for 3 hours to get displayname and Publisher information into software_list.txt but i been unsucessful can you please help

    thank you

    +
    0 Votes
    rajeshdontham

    really very good
    thank u

    +
    0 Votes
    contactaleem

    Thank you, I use the above scripted, modified a little bit to fit my needs, may help someone else. I wanted the quotes out of the output.

    @echo off
    c:
    cd\
    cd %userprofile%\desktop
    echo List of softwares > temp3.txt
    echo ================= >> temp3.txt
    reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall temp1.txt
    find "DisplayName" temp1.txt| find /V "ParentDisplayName" > temp2.txt
    for /f "tokens=2,3 delims==" %%a in (temp2.txt) do (echo %%a >> temp3.txt)
    erase temp1.txt
    erase temp2.txt
    @echo off > SoftwareList.txt & setLocal enableDELAYedeXpansion
    set Q="

    for /f "tokens=* delims= " %%a in (temp3.txt) do (
    set S=%%a
    set S=!S:"=!
    >> SoftwareList.txt echo.!S!
    )
    erase temp3.txt
    notepad SoftwareList.txt

    +
    2 Votes
    ngruloos

    Windows comes with a command line version of the Management Instrumentation (WMIC).

    To get the list of all installed programs in a text file, simply enter the following command in a prompt:

    wmic product > c:\product.txt

    +
    0 Votes
    subs

    ... works like a charm and the results are easily imported into Excel.

    +
    0 Votes
    janus_bar

    To get a list of installed apps on a remote PC you can do the command:

    wmic /node:"PC NAME" product list

    and redirect it to a file using file redirections

    +
    0 Votes
    Mehul Bhai

    Zombie Alert!!!

    +
    0 Votes
    slylabs13

    wmic does NOT LIST ALL installed software. Try it on a computer that has Windows Search 4.0 installed and see if it lists it.

    A LOT of people are asking this question and the answers are all the same. WMIC will not do it properly. There is no single registry query that will do it because different OSES 32bit 64bit etc will put things in different places in the registry. PSInfo from PSTools does a great job. Too great. It lists all the updates and hotfixes as well as installed software, and there is no way to filter the noise out. Still, that is the best way so far, and you can query every active device in a domain too. Output the results to a text file and parse it with something else and you pretty much have your list.

    +
    2 Votes
    wikki

    C:\windows\system32\wmic is the command
    Below syntax is to execute this command

    C:\windows\system32\wmic \output:C:/installed.txt product get name, version

    +
    0 Votes
    Mehul Bhai

    Zombie Alert!!!

    +
    0 Votes
    B.Kaatz

    I think you got your slashes mixed up...

    wikki wrote:
    C:\windows\system32\wmic \output:C:/installed.txt product get name, version

    Shouldn't it be?:
    C:\windows\system32\wmic /output:C:\installed.txt product get name, version

    +
    0 Votes
    robo_dev

    Since there are applications that make no registry entries, and do not therefore appear in add-remove-programs list, simply pulling the registry will typically only get around 80% of the actual licensed apps on the machine. You need a utility that can hit both the registry and baseline/enumerate all executable files such as Symantec Altiris software inventory.

    +
    0 Votes
    TheChas

    As stated, nearly all of the command line, registry based, and related utilities only list those programs that install and place proper registry entries in the proper keys.

    Just listing all of the executables on a system is not very helpful either, as you have a lot of sorting and elimination to do to make a simple list.

    I have used Win Audit and it gives a fairly detailed list.

    SIW is another viable option.

    http://www.gtopala.com/

    The real question is what do you need / want to do with this information?

    If this is for a business that wants to make sure that only licensed and approved software is installed, you really need to lock down the computers and install monitoring software.

    Chas