11 лет назад 10 августа 2007 в 1:50 52

Ключевые инструменты

Автор: Сергей Голубев

В середине прошлого года корпорация microsoft приобрела проект sysinternals, созданный марком руcсиновичем и брюсом когсвеллом. таким образом, множество популярных полезных утилит стали собственностью софтверного гиганта.

Сразу после того как Microsoft купила этот проект, в Сети появились весьма пессимистичные прогнозы. Мол, прикроют они это дело – утилиты-то очень грамотно написаны, и многие из них позволяют получить доступ к скрытым возможностям Windows. А это, как ни крути, потенциальная угроза для системы.

К счастью, так не случилось. И утилиты Руссиновича (www.microsoft.com/technet/sysinternals/default.mspx) продолжают помогать пользователям в их нелегкой борьбе с причудами Windows. Рассмотрим наиболее интересные из них.

CONTIG

Дефрагментация раздела – актуальная задача для пользователя, который по роду занятий должен заботиться о быстродействии файловой системы. Инструментов для этого достаточно – как платных, так и бесплатных. Однако у них есть один общий недостаток вследствие того, что применяемые алгоритмы предназначены для работы со всей областью, а не с отдельными объектами. Хотя на практике последнее может оказаться более востребованным.

Представьте себе, что вы провели полную дефрагментацию логического диска, а потом внесли изменения в несколько наиболее критичных файлов. Для приведения их в оптимальное состояние потребуется повторить всю процедуру. А это совершенно бессмысленная потеря времени.

Contig этого недостатка лишен. При помощи этой утилиты можно провести как дефрагментацию одного-единственного файла, так и создать новый объект, оптимизировав его размещение на диске. Причем имя нового файла и его размер можно указать заранее.

Еще одна особенность Contig – невозможность повредить файл, который обслуживает утилита. Oна использует стандартный интерфейс API, поэтому даже случайное или аварийное завершение работы не чревато никакими неприятными последствиями.

У утилиты нет графического интерфейса, что вполне понятно. На практике лучше всего самому написать скрипт, который будет обрабатывать все критичные для вас объекты. А если использовать планировщик, то о необходимости регулярной дефрагментации какой-то базы данных или большого медиафайла вообще можно забыть.

DISKMON

В ряде случаев бывает весьма полезно узнать, какие программы обращаются к жесткому диску. В этом пользователю поможет утилита DiskMon. В системе Windows XP она отслеживает события ядра и сообщает обо всех обнаруженных операциях чтения/записи.

Если нет необходимости вникать в детали, а важны только качественные показатели, то программе следует приказать свернуться в трей. При чтении иконка будет зеленой, а при записи – красной.

Нужна подробная информация? Никаких проблем. Только не забудьте выставить актуальное значение параметра History Depth. По умолчанию он равен нулю, что означает полное отсутствие ограничений. Оно, конечно, хорошо, но записей будет слишком много, и придется пользоваться поиском.

К сожалению, версия программы, предназначенная специально для Windows XP, работает не всегда. Самый простой способ добиться желаемого результата – загрузить вариант для Windows NT 4, а затем запустить утилиту в режиме совместимости. Этот метод пусть и не очень красив, зато совершенно безотказен.

DISKVIEW

На первый взгляд, пользы от этой программы, как от козла молока. Даже создается впечатление, что Руcсинович писал ее из любви к чистому искусству. Впрочем, даже если это и так, утилита все равно заслуживает внимания, поскольку выглядит она весьма эффектно.

И все-таки DiskView может пригодиться прагматичному пользователю. Как известно, кластеры – они как йогурты. В смысле, не все одинаково полезны. Одна и та же программа, размещенная в различных областях диска, может работать по-разному – где-то быстрее, где-то медленнее. Можно ли узнать, в оптимальном месте расположено интересующее нас приложение или система засунула его на задворки, откуда до цивилизации три дня на оленях?

DiskView именно этим и занимается – выводит на экран графическую схему жесткого диска. На нижней полосе можно выделить некоторую область, размер которой определяется пользователем. Правда, на глазок, но большой точности тут не требуется.

В основном окне появится карта кластеров. Двойной клик по любому из них позволяет увидеть, какой файл занимает это место.

К сожалению, утилита работает только в пассивном режиме. Невозможно приказать ей разместить на диске файлы оптимальным образом. Она только информирует пользователя. Но правильно поставленный диагноз – это как минимум половина дела. Если вы обнаружите, что в самых “быстрых” областях расположены не перманентно нужные файлы, а какая-то случайно сохраненная дребедень, то, по крайней мере, уже понятно, с чем именно предстоит побороться.

JUNCTION

Эта текстовая утилита будет бальзамом на душу мигрантам с Linux. Дело в том, что в UNIX-системах широко используются символические ссылки, что радикально упрощает навигацию по файловой системе. В Windows XP это тоже есть, только называется иначе – точки соединения.

Но желающему использовать эту возможность потребуется Resource Kit, где есть специальная программа linkd. Такое решение Microsoft вполне можно понять – функция вряд ли востребована большинством потребителей, она рассчитана на более чем продвинутого пользователя.

Допустим, вы часто работаете с файлами, хранящимися в каталоге с очень длинным названием. По тем или иным причинам у вас появляется желание сделать его покороче. Утилита Junction как раз это и позволяет. В результате обращаясь к одной директории, вы на самом деле будете заходить в другую.

Помимо этой задачи Junction может проверить, выполняют ли файлы и каталоги роль точек повторной обработки. Кстати, эту функцию использует служба съемных носителей Windows, так что она не настолько экзотична, как это может показаться.

MOVEFILE

Вы хотите установить патч для какой-то программы, но система сообщает, что не может этого сделать, поскольку объект в данный момент используется. Знакомая картина, не правда ли? Однако решается проблема на удивление просто – надо переименовать или удалить файл при следующей загрузке, причем до того как выстроится цепочка ссылок с его участием.

Это сделает утилита MoveFile. Она работает из командной строки, поскольку графический интерфейс тут попросту не нужен. Каких-то тонкостей в ее использовании тоже нет. В общем случае надо просто скормить ей имя объекта, чтобы после перезагрузки он исчез из системы и больше не мозолил глаза.

FILEMON

Диагностическая программа, которая отображает все операции, совершаемые над файловой системой. Она поможет увидеть, какие именно приложения обращаются к файлам и библиотекам, а также при каких условиях – FileMon отмечает время каждой процедуры.

По умолчанию программа мониторит все доступные тома. Разумеется, на практике чаще всего это не требуется. Поэтому первым делом следует определить источники информации. Для этого служит меню Volumes панели инструментов. Если его открыть, то можно увидеть, что наблюдение ведется даже за сетевыми ресурсами. Оно вам надо? Если нет, то ограничьте поток данных.

Однако простого выбора тома может оказаться недостаточно. Тогда на помощь придет контекстное меню (или раздел Edit панели инструментов). Опции Include Process и Exclude Process включат или выключат мониторинг определенных процессов, а опции Include Path и Exclude Path проделают ту же самую процедуру с обращениями процесса к файлу.

Для более тонкой настройки интерфейса существует система фильтрации. Она достаточно мощная. Например, используя знаки подстановки, можно контролировать обращение конкретного приложения к конкретному файлу.

Ограничить число записей можно при помощи опции History Depth. По умолчанию значение этого параметра равно нулю, что означает отсутствие ограничений. На практике это не всегда удобно. Более того, для работы предпочтительнее сохранить результаты анализа в файл и изучать уже его содержимое.

REGMON

Программа предназначена для слежения за реестром системы в режиме реального времени. Достаточно мощный инструмент для анализа действий любого приложения. Однако у высокой функциональности есть и обратная сторона.

Использовать Regmon только для того, чтобы посмотреть, что именно записала в реестр та или иная программа – это палить из пушки по воробьям. Этот инструмент необходим для того, чтобы увидеть процесс в динамике. Сервисные возможности: фильтр для отсеивания заведомо ненужной информации и возможность быстро перейти в редактор реестра. Причем сразу к выбранному ключу.

PROCESS MONITOR

Это одна из первых программ, написанных Руссиновичем и Когсвеллом после того, как Microsoft купила их фирму. В ней объединены возможности двух очень популярных утилит – Regmon и FileMon. По всей видимости, приложение написано специально для Windows Vista. По крайней мере, даже обычная Windows XP без второго сервис-пака не поддерживается.

Сама же Microsoft называет эту утилиту ключевым инструментом для устранения неисправностей. Она умеет следить за изменениями в файловой системе и реестре, наблюдать за процессами и потоками. Причем делает все это в режиме реального времени.

Кстати, поскольку количество параметров заметно увеличилось, в интерфейсе фильтрации произошли некоторые изменения. Обычными галочками уже не отделаться – потребуется составлять полноценные правила. При этом смена фильтра влияет на отображение всей информации, независимо от того, произошло событие до или после обновления.

Поскольку информации собирается много, имеет смысл позаботиться о месте, в котором она будет храниться. По умолчанию данные аккумулируются в файле подкачки, но для этой цели можно назначить и произвольный объект.

Однако главный вопрос открыт: имеет ли смысл тому, кто может выбирать, отказываться от связки FileMon и Regmon в пользу Process Monitor? Что в этой программе такого замечательного, чтобы пользователь не пожалел времени на некоторое переучивание? Судите сами.

Process Monitor может следить за запуском процессов и потоков, а также за окончанием их работы. При этом пользователю будут доступны сведения о коде завершения. Осуществляется мониторинг DLL и драйверов, которые работают в режиме ядра. Усовершенствованная система фильтров не позволит пропасть важным данным.

Для каждой операции можно собрать сведения о стеке потоков, что позволит добраться до первоисточника активности. Это особенно полезно при поиске хорошо замаскированной заразы. Также в журнал могут быть записаны действия системы во время загрузки. Разумеется, полный список улучшений значительно шире, но даже вышеперечисленное впечатляет.

SHAREENUM

Это приложение предназначено администраторам сетей, которые достаточно настрадались от безалаберности одних абонентов и любопытства других. Как известно, система Windows позволяет предоставлять общий доступ к файлам и папкам. На практике это приводит к тому, что кто-то хочет показать коллеге фотографии субботнего пикника и делает это понятно каким способом. А вот про защиту информации общительный товарищ совсем не думает. Чаще всего он даже забывает закрыть доступ к своим данным, когда нужда в нем отпадет.

В результате кто-то увидит то, что его глазам не предназначалось. Последствия могут быть непредсказуемы как для пользователя, так и для администратора, который в этой ситуации непременно окажется крайним.

Чтобы такого не случилось, надо периодически просматривать сеть на предмет расшаренных ресурсов. Программа ShareEnum просканирует все машины, входящие в доступные домены, и отобразит список общих файловых ресурсов. Если в нем обнаружится что-то лишнее, то пора переходить к санкциям.

PORTMON

Эта утилита предназначена, прежде всего, для творческих или просто любознательных личностей. Она следит за активностью последовательных и параллельных портов в системе и отображает всю найденную информацию. Разработчики утверждают, что работа с приложением способствует не только ускорению отладки самостоятельно написанных программ, но и лучшему пониманию принципов функционирования системы Windows.

Portmon – сетевая утилита. Она может работать не только с локальной машиной, но и с любым компьютером сети. Поэтому перед началом работы необходимо выбрать нужный хост.

PROCESS EXPLORER

Альтернатива штатному менеджеру задач системы Windows. Только значительно улучшенная. Кстати, на фоне остальных утилит Руссиновича Process Explorer – настоящий монстр. Архив занимает почти полтора мегабайта.

По умолчанию программа использует одно окно, хотя если вы хотите получать больше информации о запущенных приложениях, можете активировать второе. В нем могут отображаться, например, все DLL-библиотеки, к которым обращается выделенная программа или процесс. Весьма удобно и практично.

Второй режим нижнего окна – отображение всех открытых дескрипторов выбранного процесса. И вообще, меню View богато опциями. Разработчики даже подумали о тех, кто неровно дышит к различным эффектам – интерфейс Process Explorer может быть прозрачным.

Информационный потенциал программы проще всего понять из примера. Допустим, мы хотим больше узнать про DLL-файлы, используемые конкретным приложением. Для этого находим его в верхнем окне и включаем режим View – Lower Pane View-DLLs. Список у нас перед глазами. Однако это еще не все. Правый клик по названию библиотеки открывает контекстное меню, в котором есть две команды: показать свойства объекта (включая его полное имя) и запустить поисковую машину, которая должна отыскать информацию по имени DLL-файла.

Process Explorer – не пассивный созерцатель, а настоящий управленец. Например, вы хотите перезапустить какое-либо приложение. Для этого в контекстном меню есть специальная команда. Конечно, можно обойтись и без этого, но менеджер – это не только функциональность, но и удобство.