Как включить журнал загрузки procmon для каждой загрузки?

Я знаю, что монитор процесса имеет функцию "включить загрузку журнала".

но это вступает в силу только для следующей загрузки.

Есть ли способ включить ведение журнала загрузки для каждой загрузки в будущем?

2 ответа

Я не знаю, как регулярно включать ведение журнала загрузки, но похоже, что ведение журнала загрузки контролируется двумя значениями реестра в Procmon Конфигурация драйвера. Возможно (повторное) создание этих значений (например, с помощью сценария запуска) будет делать то, что вы хотите:

if not exist %SystemRoot%\System32\Drivers\PROCMON23.sys copy PROCMON23.sys %SystemRoot%\System32\Drivers\
reg add HKLM\SYSTEM\CurrentControlSet\services\PROCMON23 /v ImagePath /t REG_SZ /d "System32\Drivers\PROCMON23.sys" /f
reg add HKLM\SYSTEM\CurrentControlSet\services\PROCMON23 /v Start /t REG_DWORD /d 0x0 /f
reg add HKLM\SYSTEM\CurrentControlSet\services\PROCMON23 /v Type /t REG_DWORD /d 0x1 /f

Однако, прежде чем пытаться что-то подобное, я бы сначала попробовал "обычный" мониторинг (без регистрации загрузки). Запустите Process Monitor один раз и настройте его на мониторинг только доступа к hosts файл (Фильтр → Фильтр...). Экспортируйте эту конфигурацию в файл C:\hosts.pmc (Файл → Экспорт конфигурации...). Затем запустите что-то вроде этого в сценарии запуска:

procmon /LoadConfig C:\hosts.pmc /BackingFile C:\hosts_%DATE:/=-%.pml /Quiet > C:\hosts.log 2>&1

Это запустит Process Monitor с экспортированной конфигурацией (/LoadConfig C:\hosts.pmc), запустить мониторинг без запроса подтверждения настроек фильтра (/Quiet) и записывать записанные события в файл журнала с текущей датой (/BackingFile C:\hosts_%DATE:/=-%.pml). Выражение %DATE:/=-% выдает текущую дату с косой чертой / заменены дефисами -, Если ваш формат даты не MM/DD/YYYY вам придется изменить это выражение соответственно.

Скрипты запуска могут быть настроены различными способами (Run ключи в реестре, запланированные задания, групповые политики,...). См. Ответы на этот вопрос в StackOverflow для обзора.

Адам Коллетт /adjman666 написал для этого vbscript и разместил его на форумах sysinternals., Для этого для работы \ server \ procmon share должны быть установлены общие права доступа и права доступа к файлам, чтобы "Доменные компьютеры" могли читать из этого расположения, в противном случае скрипт выдаст сообщение об ошибке "Отказано в доступе".

'Script to enable boot logging in Process Monitor at every shutdown to ensure we capture all activity, every time.

'Declare the objects used in the script
Dim objFSO, objShell, objRegistry

'Declare the variables used in the script
Dim strProcmon20KeyPath, strInstancesKeyPath, strPMIKeyPath, strStartValueName, strGroupValueName, strTypeValueName, strImagePathValueName
Dim strDefInstanceValueName, strAltitudeValueName, strFlagsValueName, strComputer

'Declare the constants used in the script
Const HKEY_LOCAL_MACHINE = &H80000002

'Create our FileSystem, Shell and Registry objects
Set objFSO=CreateObject("Scripting.FileSystemObject")
Set objShell=WScript.CreateObject("WScript.Shell")
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

'Set all variables ready for use

strProcmon20KeyPath = "SYSTEM\CurrentControlSet\Services\PROCMON20\"
strInstancesKeyPath = "SYSTEM\CurrentControlSet\Services\PROCMON20\Instances\"
strPMIKeyPath = "SYSTEM\CurrentControlSet\Services\PROCMON20\Instances\Process Monitor Instance\"

strStartValueName = "Start"
strGroupValueName = "Group"
strTypeValueName = "Type"
strImagePathValueName = "ImagePath"
strDefInstanceValueName = "DefaultInstance"
strAltitudeValueName = "Altitude"
strFlagsValueName = "Flags"

'Check for the Process Monitor Executable, copy it in if not already on the system.
If not objFSO.FileExists("C:\Windows\System32\procmon.exe") Then
  objFSO.CopyFile "\\server\procmon\procmon.exe", "C:\Windows\System32\", true
End If

'Now import the registry settings, one at a time
objShell.RegWrite "HKEY_LOCAL_MACHINE\" & strProcmon20KeyPath & strStartValueName, "0", "REG_DWORD"
objShell.RegWrite "HKEY_LOCAL_MACHINE\" & strProcmon20KeyPath & strGroupValueName, "FSFilter Activity Monitor", "REG_SZ"
objShell.RegWrite "HKEY_LOCAL_MACHINE\" & strProcmon20KeyPath & strTypeValueName, "1", "REG_DWORD"
objShell.RegWrite "HKEY_LOCAL_MACHINE\" & strProcmon20KeyPath & strImagePathValueName, "System32\Drivers\PROCMON20.SYS", "REG_EXPAND_SZ"

objShell.RegWrite "HKEY_LOCAL_MACHINE\" & strInstancesKeyPath & strDefInstanceValueName, "Process Monitor Instance", "REG_SZ"

objShell.RegWrite "HKEY_LOCAL_MACHINE\" & strPMIKeyPath & strAltitudeValueName, "385200", "REG_SZ"
objShell.RegWrite "HKEY_LOCAL_MACHINE\" & strPMIKeyPath & strFlagsValueName, "0", "REG_DWORD"

'Now copy over the PROCMON20.SYS file to the C:\Windows\System32\Drivers folder

If not objFSO.FileExists("C:\Windows\System32\Drivers\PROCMON20.SYS") Then
  objFSO.CopyFile "\\server\procmon\PROCMON20.SYS", "C:\Windows\System32\Drivers\", true
End If

'End of Script
Другие вопросы по тегам