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

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

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

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

Добавлен: 29.10.2018

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

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

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

182  Часть 

II   

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

сеанса. Используйте параметр –i вместе с –x, чтобы запустить целевой про-
цесс на рабочем столе Winlogon в другом сеансе удаленного рабочего стола. 
Следующая команда запускает оболочку командной строки на безопасном 
рабочем столе консольного сеанса:

psexec -x -s Cmd.exe

Если вы вошли в систему в консольном режиме, нажмите Ctrl+Alt+Del, 

чтобы переключиться на рабочий стол Winlogon. Если в вашей версии 
Windows отображается полноэкранное изображение безопасного рабочего 
стола, нажмите Alt+Tab, чтобы перейти в оболочку командной строки.

Параметр –w каталог устанавливает исходный каталог целевого процес-

са. Заметьте, что путь к каталогу указывается относительно целевого ком-
пьютера. Например, путь C:\Program Files ссылается на папку C:\Program 
Files
 удаленного компьютера, а не локального. Также обратите внимание на 
то, что буквы, назначенные сетевым дискам, обычно не распознаются.

Если используется параметр –e, профиль учетной записи пользователя 

не загружается. Эта функция может сэкономить немного времени для про-
цессов с коротким временем жизни, которым профиль учетной записи не 
нужен. Однако ее не следует использовать в тех случаях, когда выполне-
ние операций может зависеть от параметров профиля пользователя. Ветвь 
HKCU, просматриваемая процессом, ссылается на ветвь HKCU учетной 
записи системы, если только в другом сеансе профиль пользователя уже 
не был загружен к тому времени, когда был запущен процесс. Переменная 
окружения %USERPROFILE% ссылается на каталог профиля учетной за-
писи системы независимо от того, был ли загружен профиль пользователя. 
Так как профиль учетной записи системы загружается всегда, PsExec не по-
зволяет использовать параметры –e и –s одновременно.

В Windows Vista и последующих версиях для входа «интерактивного» типа 

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

Параметр –l (L в нижнем регистре) запускает целевой процесс с ограни-

ченными правами. Если в маркере пользователя представлена группа ад-
министраторов, она отключается; также удаляются все привилегии, кроме 
предоставленных группе Пользователи  (Users) на целевом компьютере. 
В Windows Vista и последующих версиях процесс запускается с низким (Low) 
уровнем целостности (IL), что запрещает ему вести запись в большинство мест 
файловой системы и реестра. Следующая команда позволяет администратору 
Windows XP запустить Internet Explorer с ограниченными правами:

psexec -l -d  «%ProgramFiles%\Internet Explorer\iexplore.exe»

SIN_ch_06.indd   182

27.12.2011   14:19:50


background image

PsTools 

Глава 6  183 

 Примечание  Полученный процесс с «ограниченными правами» не обязательно бу-

дет иметь те же характеристики, что и другие процессы с «низкими правами», рабо-
тающие на компьютерах с Windows, такие как Internet Explorer в защищенном режиме. 
PsExec не отключает группы с повышенными привилегиями, которые обычно отключа-
ет UAC (такие как Опытные пользователи [Power Users] и другие доменные группы), 
кроме группы Администраторы (Administrators). Кроме того, если процесс запущен 
из процесса с повышенными правами, маркер нового процесса все равно будет по-
лучен из «повышенного» сеанса, даже если он помечен как имеющий низкий IL. Обо-
лочка командной строки с таким маркером будет иметь на панели заголовка надпись 
Администратор (Administrator), а дочерние процессы, требующие повышения прав, 
не смогут запросить или получить это повышение.

PsFile

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

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

с удаленных систем. Чтобы просмотреть файлы, открытые на удаленной 
системе, укажите имя удаленного компьютера (при необходимости предо-
ставив альтернативные учетные данные), используя синтаксис, описанный 
в разделе «Общие функции» в начале главы. Выходные данные будут вы-
глядеть примерно так:

Files opened  remotely on win7_vm: 
[332]  C:\Users
    User:   ABBY
    Locks:  0
    Access: Read 
[340] C:\Windows\TEMP\listing.txt
    User:   ABBY
    Locks:  0
    Access: Read Write 
[352] \PIPE\srvsvc
    User:   ABBY
    Locks:  0
    Access: Read Write

Число в скобках — идентификатор, предоставленный системой, за кото-

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

SIN_ch_06.indd   183

27.12.2011   14:19:50


background image

184  Часть 

II   

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

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

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

psfile \\Win7_vm  340

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

тым файлам из папки C:\Users, т. е. все ресурсы, пути которых начинаются 
с C:\Users:

psfile \\Win7_vm C:\Users

Чтобы закрыть открытые файлы, добавьте в командную строку параметр 

–c после идентификатора или префикса пути. Следующая команда закры-
вает все файлы, открытые удаленно из папки C:\Users на локальном ком-
пьютере:

psfile C:\Users -c

Используя PsFile, закрывайте файлы с осторожностью, так как данные, 

кешированные на клиентской системе, не записываются в файл перед его 
закрытием.

PsGetSid

В Windows идентификаторы защиты (SID) уникальны для пользователей, 
группы, компьютеров и других сущности. Эти идентификаторы хранятся 
в маркерах доступа и дескрипторах защиты и используются при проверке 
прав доступа. Имена, связанные с SID, нужны только для представления в 
пользовательском интерфейсе и могут изменяться на разных системах в ре-
зультате локализации. Например, в англоязычных системах имеется группа 
Administrators, имеющая SID S-1-5-32-544, но в системах с интерфейсом на 
русском языке она называется Администраторы, на итальянском — Gruppo 
Administrators, а на финском — Jarjestelmanvalvojat.

Каждый компьютер под управлением Windows имеет локальный SID, 

называемый также машинным SID, создающийся во время установки ОС. 
Каждая локальная группа и учетная запись на компьютере имеет SID, соз-
данный из машинного SID с добавлением относительного идентификатора 
(Relative ID, RID). Точно так же, каждый домен Active Directory имеет SID, 
а сущности внутри этого домена (включая доменные группы, учетные запи-
си пользователей и компьютеров) имеют идентификаторы SID, полученные 
на основе SID домена с добавлением RID. Кроме машинных и доменных 
SID, в Windows определен набор хорошо известных идентификаторов SID в 
доменах NT AUTHORITY и BULTIN.

PsGetSid облегчает перевод идентификаторов SID в соответствующие 

имена и имен в идентификаторы SID, а также получение идентификаторов 
компьютеров и доменов. Как и другие утилиты PsTools, PsGetSid может вы-

SIN_ch_06.indd   184

27.12.2011   14:19:50


background image

PsTools 

Глава 6  185 

полнять эти переводы на удаленных системах и сообщать результаты на ло-
кальном компьютере.

Чтобы перевести имя или SID, запустите PsGetSid с именем или иденти-

фикатором SID в командной строке. При запуске без параметров эта утили-
та отображает машинный SID локального компьютера. Например:

C:\>psgetsid
SID for \\WIN_VM:
S-1-5-21-2292904206-3342264711-2075022165

C:\>psgetsid Administrator
SID for WIN_VM\Administrator:
S-1-5-21-2292904206-3342264711-2075022165-500

Использование полных доменных имен (ДОМЕН\ИМЯПОЛЬЗОВА- 

ТЕЛЯ) позволяет избежать путаницы и повышает производительность. 
Если указать только имя учетной записи, PsGetSid в первую очередь прове-
ряет общеизвестные SID, затем встроенные и административно определен-
ные учетные записи. Если имя не найдено, выполняется проверка первично-
го домена, а затем доверенных доменов.

Перевод идентификаторов SID входа (Logon SID) невозможен. Эти 

идентификаторы генерируются случайным образом, они назначаются вре-
менным объектам и имеют формат S-1-5-5-X-Y.

Следующая строка сценария PowerShell возвращает список имен, свя-

занных со стандартными SID в диапазоне от S-1-5-32-544 до S-1-5-32-576, 
перенаправляя любые сведения об ошибках в nul. Выходные данные этой 
команды показаны на рис. 6-1.

0x220..0x240   |  %{  psgetsid  S-1-5-32-$_ 2> $nul   }

Рис. 6-1.  Перечисление диапазона имен BUILTIN при помощи PsGetSid

SIN_ch_06.indd   185

27.12.2011   14:19:50


background image

186  Часть 

II   

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

Следующий код PowerShell получает имена первых десяти локальных 

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

$msid = $(psgetsid)[2]  + «-»
1000..1009 | %{ psgetsid $msid$_ 2> $nul }

PsInfo

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

System information for \\WIN7-X86-VM:
Uptime:                    0 days 23 hours  58 minutes 9 seconds
Kernel version:            Windows 7 Ultimate,  Multiprocessor Free
Product type:              Professional
Product version:           6.1
Service pack:              0
Kernel  build number:      7600
Registered organization:   Microsoft
Registered owner:         Abby
IE version:               8.0000
System  root:             C:\Windows
Processors:               1
Processor speed:          2.3 GHz
Processor type:           Intel(R)  Core(TM)2 Duo CPU   T7700  @
Physical   memory:        2048 MB
Video driver:             Microsoft Virtual  Machine Bus Video Device

Значение Uptime представляет суммарное время работы системы с мо-

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

 Примечание  В момент написания книги объем физической памяти не сообщался 

для 64-разрядных версий Windows.

Чтобы получить только отдельные строки из этих данных, укажите в 

командной строке полное или частичное имя нужного поля или полей. 
Например, если выполнить команду psinfo register, будут показаны только 
поля Registered organization и Registered owner.

По умолчанию PsInfo получает информацию о локальном компьютере, 

но, используя синтаксис, описанный в начале главы, можно получать све-

SIN_ch_06.indd   186

27.12.2011   14:19:51