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

5153
David Dai

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

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

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

2
Ведение журнала загрузки предназначено для устранения неполадок и не должно быть включено по умолчанию. Тем более, что ведение журнала будет продолжаться до следующего запуска программы (т. Е. Вы будете регистрировать все от загрузки до выключения). Какую проблему вы пытаетесь решить этим? Ansgar Wiechers 11 лет назад 0
каждые несколько дней я нахожу запись, содержащую «www.google.com», из моего файла hosts, что очень раздражает. Мне нужно следить за файлом в течение нескольких дней (возможно, недели), чтобы узнать, какая программа это сделала. David Dai 11 лет назад 0
@DavidDai, почему бы не установить атрибут «только для чтения» в файле hosts? Moab 11 лет назад 0
конечно я могу это сделать. но я просто хочу выяснить чёрную руку за этим. :( David Dai 11 лет назад 0
@ansgarwiechers, если вы настроили ProcMon для удаления отфильтрованных событий, не будет ли регистрация времени загрузки относительно неинвазивной? Justin Dearing 9 лет назад 0
@JustinDearing Это все еще должно было бы подключиться к последовательности загрузки, и все еще будет потреблять циклы ЦП для сопоставления и выбора событий. И запись событий в журнал. Ведение журнала загрузки является разновидностью ведения журнала отладки. Не включайте его, если у вас нет чего-то нужного для отладки. Ansgar Wiechers 9 лет назад 0

2 ответа на вопрос

2
Ansgar Wiechers

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

кроме разделов реестра, для ведения журнала загрузки требуется файл PROCMON23.sys в C: \ Windows \ System32 \ Drivers \. если я включаю ведение журнала загрузки с помощью меню, он делает это. но я не могу переместить файл из драйверов в другое место. David Dai 11 лет назад 0
С правами администратора вы сможете скопировать файл. Возможно, вы могли бы скопировать резервную копию обратно в каталог драйверов, если она не существует, а затем установить ключи реестра. Но опять же, я рекомендую не пытаться сделать это до того, как вы попробуете все остальное. Ansgar Wiechers 11 лет назад 0
Я не мог создать резервную копию PROCMON23.sys даже с правами администратора. Я оставил procmon запущенным вчера вечером и обнаружил процессы, которые портят мой файл hosts. это "system" и "svchost.exe", это другой вопрос. Спасибо, в любом случае. David Dai 11 лет назад 0
Обязательно скопируйте PROCMON23.SYS в system32 / drivers, прежде чем вручную добавлять значения reg. При использовании параметра procmon GUI он копирует его в этот каталог и применяет значения reg. при снятии флажка с этой опции он удаляется. Если вы хотите сделать это вручную, скопируйте файл sys в этот каталог и примените значения reg самостоятельно. работает нормально 11 лет назад 0
1
Justin Dearing

Адам Коллетт / 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