Файл: Руссинович М., Маргозис А. Утилиты Sysinternals. Справочник администратора 2012.pdf

ВУЗ: Не указан

Категория: Книга

Дисциплина: Операционные системы

Добавлен: 29.10.2018

Просмотров: 33052

Скачиваний: 742

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

PsTools 

Глава 6  187 

дения об одном или нескольких удаленных компьютерах. PsInfo не требует 
прав администратора на локальном компьютере, но требует их на удаленных 
системах.

Если добавить параметр –d, будет показана также информация о томах 

дисков:

Volume    Type         Format     Label       Size         Free        Free
     A:   Removable                                                    0.0%
     C:   Fixed        NTFS                   126.99 GB    123.34 GB  97.1%
     D:   CD-ROM       CDFS       VMCUEST     23.66 MB                 0.0%
     X:   Remote       NTFS                   19.99 GB     13.35 GB   66.8%

В предыдущем примере у пользователя, запустившего PsInfo, был диск 

X:, назначенный удаленному хранилищу файлов. При опросе удаленных 
компьютеров PsInfo собирает информацию в контексте учетной записи си-
стемы, поэтому показываются только глобально видимые тома. Буквы, на-
значенные удаленным томам, входят сюда, только если они созданы в кон-
тексте учетной записи SYSTEM, что делает их видимыми всем процессам 
компьютера.

 Примечание  PsInfo не различает подстановки, сделанные с помощью SUBST. Если 

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

Если указать параметр –h, будут перечислены исправления, установлен-

ные на целевой системе. Сведения об исправлениях собираются из несколь-
ких известных мест реестра, содержащих информацию об исправлениях 
Windows и Internet Explorer.

Параметр –s сообщает об установленных приложениях в соответствии с 

информацией для удаления приложений, хранящейся в реестре.

Можно получить выходные данные в виде значений, разделенных запя-

тыми (CSV-файла), добавив параметр –c. Результаты с каждого компьютера 
выводятся в отдельной строке, что удобно для генерации электронной та-
блицы. Чтобы использовать другой символ-разделитель, добавьте параметр 
–t, за которым укажите новый разделитель. Чтобы использовать в качестве 
разделителя символ табуляции, укажите параметр \t:

psinfo -c -t \t

Если PsInfo выводит информацию о локальном компьютере или одном 

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

PsKill

PsKill — утилита командной строки для завершения процессов, заданных по 
идентификатору или имени образа. Она также может завершать все произ-

SIN_ch_06.indd   187

27.12.2011   14:19:51


background image

188  Часть 

II   

Работа с утилитами

водные процессы целевого процесса. Как и другие утилиты PsTools, PsKill 
может завершать процессы и деревья процессов на удаленных компьютерах, 
при необходимости используя альтернативные учетные данные.

 Внимание!  PsKill завершает процессы незамедлительно. Принудительное завер-

шение процесса не дает ему возможности корректно завершить работу и может при-
вести к потере данных или нестабильности системы. Кроме того, PsKill не показывает 
дополнительных предупреждений, если попытаться завершить процесс, критически 
важный для работы системы, такой как Csrss.exe. Завершение критически важного 
процесса приводит к появлению «синего экрана» Windows.

Чтобы завершить процесс, укажите в командной строке PsKill его иден-

тификатор (PID) или имя образа. Если параметр можно интерпретировать 
как десятичное число, он считается идентификатором; в противном случае 
он считается именем образа. В имени образа не обязательно указывать рас-
ширение .exe, но в остальном оно должно быть точным — PsKill не прини-
мает символы подстановки. Если указать имя образа, PsKill попытается за-
вершить все процессы с таким именем.

Если имя образа является десятичным числом, включите в имя расшире-

ние .exe, чтобы этот параметр интерпретировался как имя, а не PID.

Если добавить параметр –t, будет завершено дерево процессов целевого 

процесса или процессов. Дерево процессов целевого процесса — это сам этот 
процесс и все созданные им процессы. Дерево процессов можно увидеть в 
Process Explorer (см. гл. 3) или при помощи параметра –t, о котором гово-
рится далее в этой главе.

Для завершения процесса, работающего в том же контексте безопасности 

на том же компьютере, что и PsKill, администраторские права не требуются, 
но необходимы во всех остальных случаях.

 Примечание  Утилита PsKill была создана, когда в Windows было относительно не-

много утилит командной строки. В Windows XP появились утилиты Taskkill.exe и Tskill.
exe, предоставляющие все возможности PsKill и даже больше.

PsList

PsList, первая из написанных мной утилит PsTools, основана на утилите ps с 
платформы UNIX. Она выводит список процессов и их характеристики, та-
кие как использование памяти и процессора. Также PsList может показывать 
отношения родительских и дочерних процессов, выводить сведения для от-
дельных потоков и непрерывно обновляться в режиме диспетчера задач. 
Сведения можно получать для локальных и удаленных процессов.

Для отображения информации о процессах локальной системы админи-

страторские права не требуются. По умолчанию для получения сведений об 
удаленном компьютере Windows XP требуются администраторские права 
на целевой системе. В Windows Vista и последующих версиях члены групп 
Администраторы (Administrators),  Пользователи монитора производи-
тельности
  (Performance Monitor Users) и Пользователи журнала произ-

SIN_ch_06.indd   188

27.12.2011   14:19:51


background image

PsTools 

Глава 6  189 

водительности (Performance Log Users) могут выполнять PsList удаленно. 
На целевом компьютере должна быть запущена служба Remote Registry 
(Удаленный реестр).

При запуске без аргументов командной строки PsList выводит список 

процессов, работающих на локальном компьютере, в порядке их запуска; 
их идентификаторы (столбец с заголовком Pid); приоритет (Pri); число по-
токов (Thd); число описателей объектов ядра (Hnd); объем закрытой вир-
туальной памяти в килобайтах (Priv); общее время ЦП, занятое процессом; 
время с момента запуска процесса.

 Примечание  PsList использует имя «Idle» для ссылки на псевдо-процесс, имеющий 

PID 0, который в Process Explorer и других утилитах называется «System Idle Process» 
(Процесс бездействия системы). Как и большинство других утилит для просмотра про-
цессов, PsList не идентифицирует отдельно псведо-процесс Interrupts (Прерывания), 
который идентифицируется в Process Explorer, вместо этого приписывая его нагрузку 
на ЦП процессу Idle.

Параметр –t отображает процессы в виде дерева аналогично Process 

Explorer, где дочерние процессы расположены под родительскими с отсту-
пом от края. В древовидном представлении столбцы CPU Time (Время про-
цессора)
 и Elapsed Time (Затраченное время) не отображаются; вместо них 
PsList показывает зарезервированную виртуальную память (VM) и рабочий 
набор (WS) в килобайтах.

Параметр –m показывает для каждого процесса информацию, относя-

щуюся к памяти, а не к процессору. Показанные сведения включают заре-
зервированную виртуальную память (VM), размер рабочего набора (WS), 
закрытую виртуальную память (Priv), пиковый объем закрытой виртуаль-
ной памяти за время жизни процесса (Priv Pk), страничные ошибки (Faults), 
включая жесткие и мягкие сбои, а также размеры неподкачиваемого и под-
качиваемого пулов (NonP и Page, соответственно). Все размеры памяти по-
казаны в килобайтах.

Параметр –d показывает информацию о каждом потоке в системе. Потоки 

группируются по процессам, которым принадлежат, и сортируются по вре-
мени запуска. Выводится идентификатор потока (Tid), приоритет потока 
(Pri), число переключений контекста или число раз, когда поток начинал 
выполнение на процессоре (Cswitch), текущее состояние потока (State), 
время выполнения в режиме пользователя (User Time) и в режиме ядра 
(Kernel Time), а также затраченное время (Elapsed Time) с момента начала 
выполнения потока.

Параметр –x показывает информацию о процессоре, памяти и потоках 

для каждого процесса. Параметры –m, -x и –d можно комбинировать, но 
нельзя использовать вместе с параметром –t.

Можно отображать информацию об отдельных процессах, указав их 

идентификаторы, частичные или точные имена. Следующая команда выво-
дит информацию о процессе с PID 560 на компьютере с именем Win7_vm:

pslist \\Win7_vm 560

SIN_ch_06.indd   189

27.12.2011   14:19:51


background image

190  Часть 

II   

Работа с утилитами

Следующая команда отображает информацию о процессоре, потоках и 

памяти для всех процессов, чье имя начинается с «svc»:

pslist –x svc

Параметр –e указывает, что введенное имя должно в точности соответ-

ствовать имени процесса. Если добавить этот параметр в предыдущий при-
мер, будут показаны только процессы svc.exe, но не экземпляры svchost.exe.

Параметр –s запускает PsList в режиме «диспетчера задач», в котором 

экран консоли периодически очищается и обновляется последней инфор-
мацией. Список сортируется по столбцу CPU, в котором показан процент 
времени ЦП, использованный каждым процессом с момента предыдущего 
обновления. По умолчанию PsList обновляет экран один раз в секунду до 
нажатия клавиши Escape. Можно указать длительность работы PsList, ука-
зав число секунд сразу после параметра –s, и изменить частоту обновления, 
добавив параметр –r. В следующем примере PsList будет работать в режиме 
диспетчера задач 60 секунд (или до нажатия Escape), обновляя экран каж-
дые пять секунд:

pslist -s 60 -r 5

Параметр –s можно комбинировать с параметром –m, чтобы просматри-

вать непрерывно обновляемые сведения о памяти и сортировать процессы 
по закрытым байтам, а не использованию ЦП. Можно также комбинировать 
–s и –t, чтобы просматривать обновляемые сведения о процессах в древо-
видном представлении, как в Process Explorer. Можно указать PID, частич-
ное или точное имя процесса, чтобы просматривать информацию о них в 
режиме диспетчера задач. Если указывается PID, его лучше поставить перед 
параметром –s, чтобы он не интерпретировался как число секунд работы. 
Следующая команда позволяет непрерывно следить за использованием па-
мяти процессом leakyapp.exe на удаленном компьютере:

pslist \\Win7_vm -s -m -e leakyapp

PsLoggedOn

PsLoggedOn сообщает, кто вошел в систему на определенном компьютере 
локально или удаленно. Можно также выяснить, на какие компьютеры в 
сети вошел определенный пользователь.

При запуске без параметров командной строки эта утилита сообщает, ка-

кие пользователи и когда вошли локально на текущий компьютер. Затем она 
сообщает, какие пользователи вошли через общие ресурсы, и в какое время 
были начаты сеансы. (Последняя возможность похожа на работу команды 
net session.)

Чтобы просмотреть эту информацию для удаленного компьютера, ука-

жите его имя в командной строке:

psloggedon \\Win7_vm

SIN_ch_06.indd   190

27.12.2011   14:19:51


background image

PsTools 

Глава 6  191 

Для запуска PsLoggedOn на удаленном компьютере требуется учетная 

запись с правами администратор. Это одна из утилит PsTools, не прини-
мающих параметры –u и –p для указания альтернативных учетных данных. 
Поскольку PsLoggedOn использует для сбора информации на удаленном 
компьютере службу Remote Registry, она всегда будет показывать подключе-
ние к общему ресурсу на компьютере, с которого получается информация.

Чтобы отображались только локальные входы в систему, но не подклю-

чения к общим ресурсам, добавьте в командную строку параметр –l (L в 
нижнем регистре). Чтобы отображались только имена учетных записей, без 
времени входа, добавьте параметр –x.

Если указать имя пользователя, а не компьютера, PsLoggedOn выпол-

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

PsLoggedOn считает, что пользователь вошел в систему локально, если 

его профиль загружен в реестр. Когда профиль загружается, SID пользовате-
ля появляется в разделе HKEY_USERS в качестве подраздела. PsLoggedOn 
проверяет последнюю временную отметку подраздела с этим SID в качестве 
имени, чтобы определить примерное время входа пользователя в систе-
му. Определенное время будет точным в большинстве случаев. Для полу-
чения более полной и точной информации о сеансах используйте утилиту 
LogonSessions, описанную в главе 8.

PsLogList

PsLogList отображает записи из журналов событий локального или удален-
ных компьютеров. Можно фильтровать выходные данные по временным от-
меткам, источнику, идентификатору и другим условиям. Также эта утилита 
позволяет экспортировать записи журнала в evt-файл, прочитать записи из 
сохраненного evt-файла и очистить журнал событий.

При запуске без параметров PsLogList выгружает все записи из журна-

ла событий Система (System) локального компьютера. Чтобы просмотреть 
записи из другого журнала событий, укажите его имя в командной строке. 
Например, следующие команды выгружают записи из журнала Приложения 
(Application) и журнала PowerShell, соответственно:

psloglist application 
psloglist “Windows Powershell”

Чтобы просмотреть записи с одного или нескольких удаленных компьюте-

ров, укажите имена систем в командной строке, как описано в начале главы.

Каждая запись журнала событий включает источник события и иденти-

фикатор события. Идентификатор события используется для поиска и ото-

SIN_ch_06.indd   191

27.12.2011   14:19:51