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.
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.
The list of installed software can be retrieved from the registry.
Either remove the hard drive and load it onto another system, or boot any Linux live CD/DVD/USB.
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.
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.
Get all the copied files in a working Windows system, and open an elevated command prompt.
Type or paste the following command, and press Enter after replacing the path inside quotes:
reg load "HKLM\SOFTWARE2" "X:\Folder\containing\SOFTWARE"
Set the character encoding to UTF-8 to avoid issues with Unicode characters:
chcp 65001
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.
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"
Unload the machine registry hive:
reg unload "HKLM\SOFTWARE2"
Load the user registry hive:
reg load "HKU\User1" "X:\Path\to\NTUSER1.DAT"
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.
Unload the registry hive:
reg unload "HKU\User1"
Repeat steps 10-12 for any other NTUSERx.DAT file.
Sort the resulting list alphabetically:
sort "%UserProfile%\Desktop\list.txt" /o "%UserProfile%\Desktop\list.txt"
Uninstall key in the User hive does not exist, does that mean there are no programs installed only for that user?
– Milind R
Feb 24 '14 at 06:40
Uninstall key is what gets queried (mostly) by the Programs and Features control panel applet to populate the software list. Anyway, I've edited the original answer in order to include Windows Installer (MSI) installed programs. In case you followed all the steps already, repeat step 4 onwards. Let me know if you have any further doubts.
– and31415
Feb 24 '14 at 09:36
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
HKEY_LOCAL_MACHINE hive.
– and31415
Feb 23 '14 at 17:42
regedit is not enough because you have to manually load the C:\Windows\System32\config\SOFTWARE registry hive first in order to access the actual keys.
– and31415
Feb 23 '14 at 18:24