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

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

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

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

Добавлен: 29.10.2018

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

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

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

PsTools 

Глава 6  177 

 Примечание  Некоторые утилиты Sysinternals еще не поддерживают параметр /

accepteula. Для таких утилит необходимо вручную устанавливать флаг принятия со-
глашения. Это можно сделать следующей командой:

psexec \\server1 reg add hkcu\software\sysinternals\pendmove /v 
eulaaccepted /t reg_dword /d 1 /f

•  Windows PowerShell версии 1 не поддерживает перенаправление вывода 

консоли, но вторая версия его поддерживает, если запускать ее с параме-
тром командной строки –File –. Например:

psexec \\server1 PowerShell.exe -file -

•  нажатие Ctrl+C принудительно завершает удаленный процесс, а не толь-

ко текущую команду. Например, если вы запустили удаленную оболоч-
ку командной строки и случайно выполнили команду dir /s c:\, нажатие 
Ctrl+C закроет оболочку, а не только завершит команду dir.
Некоторые распространенные команды, такие как dir и copy, не являются 

отдельными исполняемыми программами, а встроены в Cmd.exe. Чтобы вы-
полнить встроенную команду, используйте параметр /c оболочки Cmd для 
выполнения этой команды в контексте процесса Cmd.exe, который будет за-
вершен после выполнения команды. Например, следующая команда запу-
скает на компьютере server1 экземпляр Cmd.exe, выполняющий встроенную 
команду ver, а затем закрывающийся:

psexec \\server1 Cmd.exe /c ver

Выходные данные команды 

ver

, выполненной на server1, отображаются 

в локальном окне консоли, из которого запущена утилита PsExec. В этом 
случае Cmd.exe входит в путь (параметр 

программа

 командной строки 

PsExec), а 

/c ver

 является необязательной частью параметра 

аргументы

передаваемого запускаемой программе.

Альтернативные учетные данные PsExec

В разделе «Альтернативные учетные данные» выше описано использование 
параметров –u и –p для явного предоставления учетных данных утилитам 
PsTools. Если эти параметры не указаны, для аутентификации на удален-
ной системе будет использована учетная запись пользователя, запустивше-
го PsExec, и удаленный процесс, запущенный PsExec, будет действовать от 
имени этой учетной записи. При этом возникают следующие ограничения:
•  чтобы запустить процесс на удаленной системе, PsExec необходимо ис-

пользовать учетную запись, имеющую там администраторские права;

•  если удаленный процесс обращается к сетевым ресурсам, он будет про-

ходить анонимную аутентификацию, если только не включено делеги-
рование Kerberos. Это так называемое ограничение одного прыжка: ком-
пьютер, на котором вход в систему выполнен с явным указанием учетных 
данных, может пройти аутентификацию на удаленном сервере, который 

SIN_ch_06.indd   177

27.12.2011   14:19:50


background image

178  Часть 

II   

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

может действовать в этом контексте безопасности, но процесс на удален-
ном компьютере не может после этого использовать этот контекст безо-
пасности для аутентификации на третьей системе;

•  полученный контекст безопасности не будет включать SID входа, откры-

вающие доступ к интерактивным сеансам пользователя.
Следует явно указывать учетные данные, если учетная запись, от имени 

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

 Внимание!  Имя пользователя и пароль для создания нового сеанса входа передаются 

удаленной системе открытым текстом, без шифрования. Любой человек, прослушиваю-
щий сеть, сможет перехватить эти учетные данные. Для защиты шифрованием всех пе-
редаваемых данных можно использовать IPSec с ESP (Encapsulating Security Payload).

Параметры –u и –p можно использовать также при запуске процесса на 

локальном компьютере, аналогично RunAs.exe. Как и при запуске при по-
мощи RunAs.exe, из-за UAC целевой процесс не будет иметь полных прав 
администратора в Windows Vista и последующих версиях, даже если учет-
ная запись входит в группу администраторов (если только не использовать 
параметр –h, описанный ниже).

Параметры командной строки PsExec

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

Табл. 6-1.  Параметры командной строки PsExec

Параметр

Описание

-d

PsExec не ожидает завершения процесса (см. раздел 
«Завершение удаленного процесса» выше)

Параметры производительности процесса

-background
-low
-belownormal
-abovenormal
-high
-realtime

Запускают процесс с указанным приоритетом

-a n,n…

Указывает процессоры, которые может использовать процесс

SIN_ch_06.indd   178

27.12.2011   14:19:50


background image

PsTools 

Глава 6  179 

Табл. 6-1.  (окончание)

Параметр

Описание

Параметры удаленного подключения

-c [-f | -v]

Копирует указанную программу из локальной системы 
на удаленную. Если опустить этот параметр, приложение 
должно иметься в системном пути на удаленном компьютере. 
При добавлении параметра –f копирование выполняется 
принудительно. Если указать параметр –v, будет проверена 
версия или временной штамп, и копирование будет выпол-
нено только в том случае, если источник новее

-n секунды

Указывает таймаут в секундах при подключении к удален-
ному компьютеру

Параметры исполняющей среды

-s

Выполняет процесс от имени учетной записи SYSTEM

-i [сеанс]

Выполняет программу на интерактивном рабочем столе

-x

Выполняет процесс на безопасном рабочем столе Winlogon

-w каталог

Определяет рабочий каталог процесса

-e

Не загружает профиль указанной учетной записи

-h

Использует повышенный контекст учетной записи, если 
тот доступен

-l

Выполняет процесс от имени ограниченной учетной записи

Параметры производительности процесса

По умолчанию целевой процесс запускается с обычным приоритетом. 
Можно явно указать приоритет процесса, используя следующие параметры 
PsExec: –background, –low, -belownormal, –abovenormal, –high и –realtime. 
Параметр –background поддерживается, начиная с Windows Vista; в допол-
нение к назначению процессу низкого (Low) приоритета, он устанавливает 
очень низкие (Very Low) приоритеты обращения к памяти и ввода-вывода. 
Если целевая система является многопроцессорной, можно указать, что це-
левой процесс будет работать только на определенных процессорах. Для 
этого добавьте параметр –a со списком логических ЦП, разделенных запя-
тыми (где 1 — процессор с наименьшим номером). Например, чтобы процесс 
использовал только третий процессор, выполните следующую команду:

psexec -a 3 app.exe

Чтобы запустить целевой процесс на процессорах с номерами 2, 3 и 4, вы-

полните следующую команду:

psexec -a 2,3,4 app.exe

SIN_ch_06.indd   179

27.12.2011   14:19:50


background image

180  Часть 

II   

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

Параметры удаленного подключения

Если программа, которую требуется запустить, не установлена на удален-
ной системе, PsExec может скопировать ее из локальной файловой систе-
мы в папку system32 удаленного компьютера, запустить ее оттуда, а затем 
удалить после выполнения. Можно добавить условие, что программа будет 
копироваться только в том случае, если на удаленной системе нет ее более 
новой версии. Если указать параметр –c, часть программа командной строки 
PsExec указывает путь к файлу относительно локального компьютера. Этот 
файл будет скопирован в папку system32 удаленной системы. Заметьте, од-
нако, что копируется только указанный файл, но не связанные библиотеки 
DLL или другие файлы.

При использовании параметра –c копирование не будет выполнено, если 

такой файл уже есть в целевой папке. При добавлении параметра –f копиро-
вание выполняется принудительно, даже если требуется переписать файл, 
помеченный как доступный только для чтения, скрытый или системный. 
При добавлении параметра –v выполняется проверка версий и временных 
штампов файлов. Файл копируется, только если это более поздняя версия 
или более новый файл. Удаленный процесс запускается в любом случае.

При попытке установления подключения к удаленной системе, которая 

выключена, очень загружена или имеет проблемы с подключением, PsExec 
использует стандартный системный тайм-аут для каждой из необходимых 
сетевых операций. Чтобы указать более короткий период ожидания, исполь-
зуйте параметр –n и укажите максимальное число секунд ожидания каждого 
удаленного подключения. Например, чтобы ограничить время на попытку 
подключения к группе удаленных систем десятью секундами, используйте 
следующую команду:

psexec @computers.txt -n 10 app.exe

Параметры исполняющей среды

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

Параметр –s запускает целевое приложение от имени учетной записи 

SYSTEM. Если не указать также параметр –i (см. ниже), процесс будет запу-
щен в той же неинтерактивной среде, в которой работают остальные службы 
Windows, запущенные от имени системы (сеанс 0, оконная станция Service-
0x0-3e7$; подробнее см. в гл. 2), а вывод консоли будет перенаправлен в ту 
консоль, в которой работает PsExec. О том, что при этом следует учитывать, 

SIN_ch_06.indd   180

27.12.2011   14:19:50


background image

PsTools 

Глава 6  181 

рассказано выше в разделе «Перенаправление вывода консоли». Одним из 
преимуществ такого режима выполнения является то, что процесс продол-
жает работу даже после выхода из системы интерактивного пользователя. 
В главе, посвященной Process Monitor, приведен пример такого использо-
вания PsExec для мониторинга событий во время выхода пользователя из 
системы и завершения работы.

Если целевой системой является локальный компьютер, утилита PsExec 

должна работать с полными административными правами, чтобы можно 
было использовать параметр –s. Для удаленного выполнения PsExec тре-
бует запуска от имени администраторской учетной записи на удаленной си-
стеме.

Параметр –i [сеанс] используется для интерактивного запуска целевого 

процесса на целевой системе, а именно, на выбранном по умолчанию интерак-
тивном рабочем столе сеанса служб терминалов. Без параметра –i процессы 
на удаленных компьютерах будут запускаться в неинтерактивной оконной 
станции в сеансе 0. Необязательный параметр сеанс указывает идентифи-
катор сеанса служб терминалов, в котором должен работать процесс. Если 
использовать параметр –i, но опустить параметр сеанс, PsExec запустит про-
цесс в текущем сеансе рабочего стола при запуске на локальном компьютере, 
или в текущем консольном сеансе при запуске на удаленном компьютере. 
Консольный сеанс — это текущий сеанс, связанный с клавиатурой и монито-
ром, подключенным к компьютеру (в противоположность сеансу удаленно-
го рабочего стола). Напомним, что для запуска интерактивного процесса на 
удаленном компьютере требуется явно указать учетные данные.

 Совет  Чтобы просмотреть идентификаторы сеансов, связанные с процессами, вклю-

чите отображение столбца Session (Сеанс) в Process Explorer (см. гл. 3).

Следующая команда запускает Regedit от имени учетной записи SYSTEM 

в текущем интерактивном сеансе, что позволяет просмотреть те части рее-
стра, доступ к которым разрешен только системе (такие как HKLM\SAM и 
HKLM\Security):

psexec -s -i Regedit.exe

А эта команда запускает от имени системы оболочку командной строки 

на текущем рабочем столе:

psexec -s -i Cmd.exe

Параметр –x запускает целевой процесс на защищенном рабочем столе 

Winlogon. Рабочий стол Winlogon управляется учетной записью системы, и 
доступ к нему могут получать только процессы, работающие от ее имени. 
Обычно это значит, что –x требуется использовать вместе с –s, а утилита 
PsExec уже должна работать с административными правами. Кроме того, па-
раметр –x можно использовать только на локальном компьютере. По умол-
чанию –x запускает целевой процесс на рабочем столе Winlogon консольного 

SIN_ch_06.indd   181

27.12.2011   14:19:50