Я знаю, что монитор процесса имеет функцию "включить загрузку журнала".
но это вступает в силу только для следующей загрузки.
Есть ли способ включить ведение журнала загрузки для каждой загрузки в будущем?
Я не знаю, как регулярно включать ведение журнала загрузки, но похоже, что ведение журнала загрузки контролируется двумя значениями реестра в конфигурации драйвера 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
(Filter → Filter ...). Экспортируйте эту конфигурацию в файл 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