6

We know how to get the list of software installed from an instance of an operating system.

My windows is unbootable. No safe mode. I want to get the list of installed software so that I can wipe and reinstall.

Milind R
  • 907
  • 1
  • 12
  • 29

2 Answers2

6

Solution

The list of installed software can be retrieved from the registry.

  1. Either remove the hard drive and load it onto another system, or boot any Linux live CD/DVD/USB.

  2. Copy the SOFTWARE file located in the X:\Windows\System32\config. This file contains the HKEY_LOCAL_MACHINE\SOFTWARE registry hive, and includes the system-wide installed software data.

  3. Copy all NTUSER.DAT files from all X:\Users subfolders, and rename them after their order (e.g. NTUSER1.DAT, NTUSER2.DAT, etc.). These files contains the HKEY_CURRENT_USER registry hive, and include the per-user installed software data.

  4. Get all the copied files in a working Windows system, and open an elevated command prompt.

  5. Type or paste the following command, and press Enter after replacing the path inside quotes:

    reg load "HKLM\SOFTWARE2" "X:\Folder\containing\SOFTWARE"
    
  6. Set the character encoding to UTF-8 to avoid issues with Unicode characters:

    chcp 65001
    
  7. To get the list of all system-wide applications installed, run these commands:

    for /f "tokens=3,*" %A in ('"reg query "HKLM\SOFTWARE2\Microsoft\Windows\CurrentVersion\Uninstall" /v "DisplayName" /s | findstr /c:"REG_SZ" "') do @echo %A %B>>"%UserProfile%\Desktop\list.txt"
    for /f "tokens=3,*" %A in ('"reg query "HKLM\SOFTWARE2\Microsoft\Windows\CurrentVersion\Installer\UserData" /v "DisplayName" /s | findstr /c:"REG_SZ" "') do @echo %A %B>>"%UserProfile%\Desktop\list.txt"
    

    The list will be created on the desktop.

  8. If the original system was 32-bit (x86), skip to step 9. Otherwise run the following command too:

    for /f "tokens=3,*" %A in ('"reg query "HKLM\SOFTWARE2\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /v "DisplayName" /s | findstr /c:"REG_SZ" "') do @echo %A %B>>"%UserProfile%\Desktop\list.txt"
    
  9. Unload the machine registry hive:

    reg unload "HKLM\SOFTWARE2"
    
  10. Load the user registry hive:

    reg load "HKU\User1" "X:\Path\to\NTUSER1.DAT"
    
  11. Get the list of the per-user installed software:

    for /f "tokens=3,*" %A in ('"reg query "HKU\User1\Software\Microsoft\Windows\CurrentVersion\Uninstall" /v "DisplayName" /s | findstr /c:"REG_SZ" "') do @echo %A %B>>"%UserProfile%\Desktop\list.txt"
    for /f "tokens=3,*" %A in ('"reg query "HKU\User1\Software\Microsoft\Installer" /v "ProductName" /s | findstr /c:"REG_SZ" "') do @echo %A %B>>"%UserProfile%\Desktop\list.txt"
    

    If the required keys don't exist, that means there are no user-installed programs.

  12. Unload the registry hive:

     reg unload "HKU\User1"
    
  13. Repeat steps 10-12 for any other NTUSERx.DAT file.

  14. Sort the resulting list alphabetically:

     sort "%UserProfile%\Desktop\list.txt" /o "%UserProfile%\Desktop\list.txt"
    

Known issues

  • Some applications may be listed more than once. That usually happens when they include several components which share the same display name.

References

and31415
  • 14,901
3

Boot from Windows 7 DVD

repair

command prompt

dism /Image:c:\ /Get-Apps (Gets MSI installed programs.)

You should be able to run regedit from there.

Inside regedit use File Load Hive and select c:\windows\system32\config\SOFTWARE

export (First one 64 bit software, and 2nd is 32 bit software)

 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
cybernard
  • 14,924