5

Мы знаем, как получить список программного обеспечения, установленного из экземпляра операционной системы.

Мои окна не загружаются. Нет безопасного режима. Я хочу получить список установленного программного обеспечения, чтобы я мог стереть и переустановить.

2 ответа2

5

Решение

Список установленного программного обеспечения можно получить из реестра.

  1. Либо извлеките жесткий диск и загрузите его в другую систему, либо загрузите любой Linux live CD/DVD/USB.

  2. Скопируйте файл SOFTWARE расположенный в X:\Windows\System32\config . Этот файл содержит куст реестра HKEY_LOCAL_MACHINE\SOFTWARE и содержит общесистемные данные установленного программного обеспечения.

  3. Скопируйте все файлы NTUSER.DAT из всех подпапок X:\Users и переименуйте их после их заказа (например, NTUSER1.DAT , NTUSER2.DAT и т.д.). Эти файлы содержат куст реестра HKEY_CURRENT_USER и содержат данные об установленном программном обеспечении для каждого пользователя.

  4. Получите все скопированные файлы в работающей системе Windows и откройте командную строку с повышенными привилегиями .

  5. Введите или вставьте следующую команду и нажмите клавишу Enter после замены пути внутри кавычек:

    reg load "HKLM\SOFTWARE2" "X:\Folder\containing\SOFTWARE"
    
  6. Установите кодировку символов UTF-8, чтобы избежать проблем с символами Unicode:

    chcp 65001
    
  7. Чтобы получить список всех установленных приложений для всей системы, выполните следующие команды:

    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"
    

    Список будет создан на рабочем столе.

  8. Если исходная система была 32-разрядной (x86), перейдите к шагу 9. В противном случае выполните следующую команду:

    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. Выгрузите куст реестра:

    reg unload "HKLM\SOFTWARE2"
    
  10. Загрузите куст реестра пользователей:

    reg load "HKU\User1" "X:\Path\to\NTUSER1.DAT"
    
  11. Получите список установленных программ для каждого пользователя:

    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"
    

    Если необходимые ключи не существуют, это означает, что нет установленных пользователем программ.

  12. Выгрузите куст реестра:

     reg unload "HKU\User1"
    
  13. Повторите шаги 10-12 для любого другого NTUSERx.DAT файл.

  14. Сортировать полученный список по алфавиту:

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

Известные вопросы

  • Некоторые приложения могут быть перечислены более одного раза. Это обычно происходит, когда они включают несколько компонентов, которые имеют одинаковое отображаемое имя.

Рекомендации

3

Загрузка с Windows 7 DVD

ремонт

командная строка

dism /Image:c:\ /Get-Apps (Получает установленные программы MSI.)

Вы должны быть в состоянии запустить regedit оттуда.

Внутри regedit используйте File Load Hive и выберите c:\windows\system32\config\SOFTWARE

экспорт (первое 64-битное программное обеспечение, а второе 32-битное программное обеспечение)

 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .