// Engineering Log
Sysinternals: утилиты Microsoft для диагностики Windows Server
Опубликовано 22.09.2026
Sysinternals — набор бесплатных утилит Microsoft для диагностики Windows. Сайт Sysinternals создал в 1996 году Марк Руссинович вместе с Брайсом Когсвеллом, в 2006 году компанию купила Microsoft, и с тех пор утилиты публикуются на learn.microsoft.com. Они показывают то, чего не видно в стандартных средствах: какой процесс держит файл, что именно программа читает из реестра, что запускается при старте системы и какие процессы открывают сетевые соединения.
Набор регулярно обновляется: например, в 2026 году вышли Process Monitor 4.1, Autoruns 14.3 и новая версия Sysmon. Ниже — утилиты, которые пригодятся администратору Windows Server чаще всего, и приёмы работы с ними.
Как получить утилиты
- Архив Sysinternals Suite с официального сайта:
https://download.sysinternals.com/files/SysinternalsSuite.zip. Распакуйте его в отдельный каталог, напримерC:\Tools\Sysinternals, и добавьте каталог в переменнуюPATH. - Sysinternals Live — запуск без скачивания. В проводнике или командной строке укажите путь вида
\\live.sysinternals.com\tools\<имя_утилиты>:
\\live.sysinternals.com\tools\procexp64.exeПуть вида \\live.sysinternals.com\tools открывается как сетевой ресурс, поэтому в корпоративных сетях, где такой исходящий трафик закрыт, Sysinternals Live может быть недоступен. На серверы без выхода в интернет утилиты лучше класть заранее, вместе с остальными инструментами администратора.
При первом запуске каждая утилита показывает лицензионное соглашение. В скриптах его подтверждают ключом -accepteula.
Основные утилиты
| Утилита | Для чего нужна |
|---|---|
| Process Explorer | Расширенный диспетчер задач: дерево процессов, загруженные DLL, открытые дескрипторы, проверка цифровых подписей |
| Process Monitor | Запись обращений к файлам, реестру, сети и процессам в реальном времени |
| Autoruns | Все места автозапуска: службы, драйверы, задачи планировщика, ключи реестра, расширения |
| Handle | Консольный поиск процесса, который держит файл или каталог |
| TCPView | Сетевые соединения с привязкой к процессам |
| PsTools | Набор консольных утилит для локального и удалённого управления: PsExec, PsList, PsKill, PsInfo, PsService |
| Sysmon | Служба, которая записывает в журнал событий создание процессов, сетевые соединения, изменения реестра и другие действия |
Типовые задачи
Файл занят другим процессом. Когда не удаётся удалить или заменить файл, Handle покажет, кто его держит:
handle.exe -accepteula C:\inetpub\logs\LogFiles\W3SVC1\u_ex260922.logВ Process Explorer то же самое делается через Find → Find Handle or DLL.
Программа не запускается или ведёт себя странно. Process Monitor записывает каждую операцию с файлами и реестром. Сразу задайте фильтр по имени процесса (Filter → Process Name is …): без фильтра за минуту набираются сотни тысяч событий, и утилита заметно нагружает систему. Результаты с кодами ACCESS DENIED и NAME NOT FOUND чаще всего и указывают на причину — нет прав на каталог или не найден ключ реестра.
Сервер долго загружается или в автозапуске что-то лишнее. Autoruns показывает все точки автозапуска на одном экране. Включите Options → Hide Microsoft Entries, чтобы остались только сторонние компоненты, и проверьте записи без подписи или с неизвестным издателем. Отключайте элементы снятием галочки, а не удалением: так изменение легко откатить.
Высокая нагрузка на процессор или утечка памяти. Process Explorer показывает для каждого процесса историю загрузки ЦП, рабочий набор и число дескрипторов. Постоянно растущее число дескрипторов или частных байтов у долго работающей службы — типичный признак утечки. Для сбора дампа зависшего процесса используют ProcDump.
Кто устанавливает сетевые соединения. TCPView показывает соединения с именами процессов и позволяет закрыть соединение или завершить процесс прямо из окна.
Удалённое выполнение команд: PsExec
PsExec запускает процессы на удалённых компьютерах без предварительной установки клиента. Синтаксис позволяет указать несколько компьютеров через запятую или список из файла:
psexec \\server01,server02 -accepteula cmd /c "net stop wuauserv && net start wuauserv"
psexec @servers.txt -accepteula ipconfig /allЧто нужно учитывать:
- Права. Для работы на удалённой машине нужна учётная запись с правами администратора на ней. PsExec доставляет на удалённый компьютер служебный компонент и запускает его как службу, поэтому ему нужен доступ к административному общему ресурсу
ADMIN$по SMB — на целевой машине должны быть открыты порты SMB и включена служба «Сервер». - Контекст. Без ключа
-uпроцесс работает от вашей учётной записи, но без доступа к сетевым ресурсам. Если команде нужны сетевые ресурсы, укажите пользователя в форматеДомен\Пользователь. Ключ-sзапускает процесс от имени System. - Безопасность. Пароль и команда передаются в зашифрованном виде. При этом антивирусы нередко реагируют на PsTools: сами утилиты вредоносного кода не содержат, но ими пользуются и злоумышленники. Поэтому запуск PsExec в сети стоит согласовать со службой безопасности, а в журналах его появление должно быть ожидаемым.
Для регулярного управления парком серверов PsExec удобен как разовый инструмент. Для постоянной автоматизации больше подходят PowerShell Remoting или системы управления конфигурацией.
Sysmon: журнал для расследования инцидентов
Sysmon устанавливается как служба и драйвер и сохраняется после перезагрузки. Он записывает в журнал событий создание процессов с полной командной строкой и хешем исполняемого файла, загрузку драйверов, сетевые соединения, DNS-запросы, изменения реестра и многое другое. Сам Sysmon события не анализирует: их собирают в SIEM или централизованное хранилище журналов.
Установка с конфигурационным файлом и обновление конфигурации:
sysmon64 -accepteula -i C:\Tools\sysmon-config.xml
sysmon64 -c C:\Tools\sysmon-config.xmlСобытия записываются в журнал Applications and Services Logs/Microsoft/Windows/Sysmon/Operational. Без фильтров Sysmon создаёт очень много событий, поэтому конфигурацию берут за основу из проверенных шаблонов, например SwiftOnSecurity/sysmon-config, и дорабатывают под свои серверы. Текущая версия поддерживает Windows Server 2019 и новее; есть и отдельная версия Sysmon для Linux.
Связка с PowerShell
Консольные утилиты удобно вызывать из скриптов. Например, проверить, не заблокирован ли файл перед обновлением приложения:
$result = & C:\Tools\Sysinternals\handle.exe -accepteula -nobanner "C:\App\app.dll"
if ($result -match 'pid:') {
Write-Warning "Файл занят: $result"
}Флаг -nobanner убирает строку с копирайтом из вывода, и его проще разбирать.
Типичные ошибки
- Process Monitor без фильтра на загруженном сервере: быстро заполняет память и замедляет систему. Фильтр задают до начала записи.
- Sysmon без конфигурации или с конфигурацией «записывать всё»: журнал переполняется, полезные события теряются.
- Удаление записей в Autoruns вместо отключения: откатить такое изменение сложнее.
- PsExec с паролем в открытом виде в скриптах: пароль остаётся в истории команд и файлах. Используйте учётную запись с нужными правами без передачи пароля в командной строке.
- Старые копии утилит на серверах: Microsoft регулярно выпускает исправления, поэтому набор стоит обновлять вместе с остальным инструментарием.
Итог
Sysinternals закрывает большую часть задач диагностики Windows Server без установки дополнительных агентов: найти процесс, который держит файл, понять, почему не запускается программа, проверить автозапуск и собрать журнал для расследования. Для постоянного наблюдения за серверами их дополняют мониторингом и централизованным сбором журналов.
Ресурсы
// Contact
Нужна помощь?
Свяжись со мной и я помогу решить проблему
Написать в TelegramОтвечаю в течение рабочего дня (03:00–13:00 GMT)
Или оставьте заявку здесь:
// Related