Сравнение снимков реестра через Reg Compare

Тема в разделе "Пакетные файлы CMD, BAT", создана пользователем Dragokas, 14 мар 2015.

  1. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.497
    Симпатии:
    4.312
    Сырой вариант, сделанный на основе этой темы: http://safezone.cc/threads/kak-sravnit-mezhdu-soboj-snimki-reestra.23579/

    Может, у кого будет желание доработать (выдает очень много фолсов).

    Принцип работы:
    Батник RCompare_1_shoot.cmd создает снимки:
    - HKCU (под привилегией Администратора)
    - HKLM\System (под привилегией System)
    - HKLM\Software (под привилегией System)

    Батник RCompare_2_shoot.cmd по схожему принципу запускает команду reg compare.
    (типа RegShot-a - 1 снимок - исходный, 2 - после модификаций).

    Не забудьте положить рядом PsExec.exe

    Код (DOS):

    set @x=0; /*
    @echo off
    cd /d "%~dp0"
    net session >NUL 2>NUL || (
      echo Admin privilegies required !
      if "%~1"=="" cscript.exe //nologo //e:jscript "%~fs0"
      exit /b
    )
    :: ----------------------------

    md temp 2>NUL
    cd temp

    ::

    ::  Current user privilegy (Admin)
    ::

    if "%~1" neq "System" (
      echo.
      echo Backup HKCU

      rem Сохранение улья

      reg save HKCU HKCU.hiv /y

      rem Монтирование улья из файла

      reg load HKLM\test HKCU.hiv

      psexec -s -i "%comspec%" /c "%~fs0" System
      exit /B
    )

    ::

    ::  System privilegy
    ::

    :: Аналогично для HKLM

    echo.
    echo Backup HKLM\System

    reg save HKLM\System HKLM_SYS.hiv /y
    reg load HKLM\test2 HKLM_SYS.hiv

    echo.
    echo Backup HKLM\Software

    reg save HKLM\Software HKLM_SOFT.hiv /y
    reg load HKLM\test3 HKLM_SOFT.hiv

    goto :eof

    */new ActiveXObject('Shell.Application').ShellExecute (WScript.ScriptFullName,'Admin','','runas',1);

     

    Код (DOS):

    @set @x=0; /*
    @echo off
    cd /d "%~dp0Temp"
    net session >NUL 2>NUL || (
      echo Admin privilegies required !
      if "%~1"=="" cscript.exe //nologo //e:jscript "%~fs0"
      exit /b
    )

    ::

    ::  Current user privilegy (Admin)
    ::
    if "%~1" neq "System" (
      echo Comparing HKCU
      reg compare HKCU HKLM\Test /s /od > "..\Compare1.txt"

      psexec -s -i "%comspec%" /c "%~fs0" System
      exit /B
    )

    ::

    ::  System privilegy
    ::

    :: /s - проверка рекурсивно

    :: /od - вывести только различия
    echo.
    echo Comparing HKLM\System
    reg compare HKLM\System HKLM\Test2 /s /od > "..\Compare2.txt"

    echo.
    echo Comparing HKLM\Software
    reg compare HKLM\Software HKLM\Test3 /s /od >> "..\Compare2.txt"

    echo.
    echo Complete.

    :: Recode 866 (psexec) -> 1251

    chcp 866
    for %%? in ("") do chcp 1251 & cmd /d /a /c set /p=яю<NUL > .tmp
    chcp 866
    cmd /d /u /c type ..\Compare2.txt >> .tmp
    chcp 1251
    cmd /d /a /c type .tmp > ..\Compare2.txt
    del .tmp

    copy /b /y ..\Compare1.txt + ..\Compare2.txt ..\Compare.txt

    start "" notepad "..\Compare.txt"

    :: очистка

    del ..\Compare1.txt
    del ..\Compare2.txt

    reg unload HKLM\test
    reg unload HKLM\test2
    reg unload HKLM\test3
    del HKCU.hiv
    del HKLM_SYS.hiv
    del HKLM_SOFT.hiv
    del /f /a HKCU.hiv{*}.TM.blf
    del /f /a HKCU.hiv{*}*.regtrans-ms
    del /f /a HKCU.hiv.LOG*
    del /f /a HKLM_SYS.hiv{*}.TM.blf
    del /f /a HKLM_SYS.hiv{*}*.regtrans-ms
    del /f /a HKLM_SYS.hiv.LOG*
    del /f /a HKLM_SOFT.hiv{*}.TM.blf
    del /f /a HKLM_SOFT.hiv{*}*.regtrans-ms
    del /f /a HKLM_SOFT.hiv.LOG*

    goto :eof

    */new ActiveXObject('Shell.Application').ShellExecute (WScript.ScriptFullName,'Admin','','runas',1);

     
     

    Вложения:

    Kиpилл и ScriptMakeR нравится это.
  2. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    Да,дорабатывать нужно.
    Идея хороша.
     

Поделиться этой страницей