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

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

Я знаю, что у Process Monitor есть функция «включить ведение журнала загрузки».

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

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

решение1

Я не знаю обычного способа постоянного включения ведения журнала загрузки, но, похоже, ведение журнала загрузки контролируется двумя значениями реестра в 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 для обзора.

решение2

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

'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

Связанный контент