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

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

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

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

Добавлен: 29.10.2018

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

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

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

Основные понятия Windows  

Глава 2  17 

Запуск программы с правами администратора 
в Windows XP и Windows Server 2003

Если вы входите в систему Windows XP или Windows Server 2003 с учет-
ной записью пользователя — члена группы Администраторы, то для запуска 
утилиты Sysinternals с правами администратора отдельных действий не тре-
буется. Любая программа, которую вы запустите, будет иметь полные права 
администратора.

Если же вы входите под учетной записью, не имеющей необходимых 

привилегий для запуска той или иной утилиты Sysinternals, то вам понадо-
бится получить права администратора от другой учетной записи. Служба 
«Вторичный вход в систему» (Seclogon) дает возможность программам на-
чать новый процесс под другой учетной записью пользователя на текущем 
рабочем столе после ввода других учетных данных. Это можно сделать через 
диалоговое окно Запуск от имени (RunAs) Проводника (Explorer) или с 
помощью программы командной строки Runas.exe.

Для запуска программы с помощью диалогового окна Запуск от имени 

(RunAs) с правами администратора щелкните правой кнопкой мыши любую 
программу или ярлык в Проводнике (Explorer) или в меню Пуск (Start) и 
выберите из контекстного меню Запуск от имени (RunAs). В диалоговом 
окне  Запуск от имени (RunAs) выберите вторую кнопку-переключатель 
(Следующий пользователь (The Following User)), как показано на рис. 2-1, 
введите имя и пароль учетной записи администратора и щелкните ОК. Для 
того чтобы сделать Запуск от имени (RunAs) программой по умолчанию 
для ярлыка, откройте диалоговое окно Свойства (Properties), щелкните 
кнопку Расширенные (Advanced) и установите флажок Запуск с другими 
учетными данными (Run With Different Credentials)
.

Рис. 2-1.  Диалоговое окно Windows XP Запуск от имени (RunAs) c выбранной второй 
кнопкой-переключателем

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

мы командной строки Runas.exe, откройте командную строку и запустите 
Runas.exe следующим образом:

SIN_ch_02.indd   17

27.12.2011   14:12:04


background image

18  Часть 

I   

Приступая к работе

runas /u

:

username program

Например, для запуска Process Monitor (Procmon.exe) под локальной 

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

runas /u:administrator procmon.exe

После нажатия Enter Runas.exe запросит пароль вашей учетной записи. 

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

Для аутентификации по смарт-карте вместо пароля добавьте в команд-

ную строку параметр /smartcard

Теперь вместо пароля вам нужно будет вво-

дить ПИН-код смарт-карты.

Для получения более подробной информации и советов по использова-

нию диалогового окна Запуск от имени (RunAs) см. блог Аарона Маргозиса 
«RunAs basic (and intermediate) topics» по адресу: http://blogs. msdn. com/b/
aaron_ margosis/archive/2004/06/23/163229.aspx.

Если вам нужно запустить утилиту Sysinternals с полными правами ад-

министратора, но под иной учетной записью (например, для аутентифи-
кации в домене), можно воспользоваться сценарием Аарона Маргозиса 
MakeMeAdmin. Этот сценарий дважды вызывает Runas.exe для запуска 
командной строки, которая работает под вашей текущей учетной записью 
пользователя, но с полными правами администратора. (Имейте в виду, 
что для этого нужно знать учетные данные для записи администратора.) 
Подробнее об этом см. в блоге Аарона (ищите пост «MakeMeAdmin — tem-
porary admin for your Limited User account») по адресу: http://blogs.msdn.
com/b/aaron_margosis/archive/2004/07/24/193721.aspx.

Запуск программы с правами администратора 
в Windows Vista или более поздних версиях

Windows Vista и контроль учетных записей изменили все, что касается запу-
ска программ с правами администратора. Запуск под учетной записью поль-
зователя стал умолчанием даже для членов группы Администраторы.

Если вы выполняете вход в систему Windows Vista или более поздней 

версии под учетной записью пользователя, являющегося членом груп-
пы  Администраторы  (первая учетная запись — единственная, которая по 
умолчанию дает членство в группе Администраторы  на компьютерах, не 

SIN_ch_02.indd   18

27.12.2011   14:12:05


background image

Основные понятия Windows  

Глава 2  19 

подключенных к домену) или другой группы с широкими возможностями, 
например, Операторы архива (Backup Operators), либо получившего при-
вилегии, «эквивалентные администраторским», локальные средства защиты 
(LSA) создают для пользователя два сеанса входа в систему с различными 
маркерами доступа для каждого (утилита LogonSessions, которая регистри-
рует эти сеансы, рассматривается в главе 8). Один из этих маркеров обо-
значает полные права администратора. При этом все группы и привилегии 
остаются неизменными. Второй — отфильтрованный маркер, практически 
равноценный маркеру пользователя с отключенным членством в «могу-
щественных» группах и снятыми привилегиями. Этот отфильтрованный 
маркер создает начальные процессы пользователя, например Userinit.exe и 
Explorer.exe, и наследуются их дочерними процессами. Запуск процесса с 
полным маркером пользователя требует повышения привилегий UAC при 
помощи службы Appinfo. Команда Runas.exe по-прежнему присутствует, 
но не вызывает службу Appinfo, поэтому она действует не совсем так, как в 
Windows XP. Если вы запустите программу с помощью Runas.exe и укажете 
учетную запись администратора, программа на выходном языке будет рабо-
тать под «пользовательской» версией данной учетной записи.

Повысить привилегии UAC для нового процесса можно одним из следу-

ющих способов:
•  Исполняемый файл содержит манифест, указывающий на то, что он нуж-

дается в повышении привилегий. Такие манифесты имеются в утилитах 
Sysinternals с графическим пользовательским интерфейсом, например, в 
Disk2Vhd и RAMMap, которые всегда требуют повышения привилегий 
(для просмотра манифеста образа служит утилита Sigcheck, см. главу 8).

•  Пользователь напрямую посылает запрос на повышение привилегий 

работающей программы, например, щелкнув ее правой кнопкой мыши 
и выбрав в контекстном меню опцию Запуск от имени администратора 
(Run As Administrator)
.

•  Windows эвристически определяет, что приложение является унаследо-

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

•  Приложение связано с режимом совместимости или т. н. прокладкой 

(shim), требующей повышения привилегий.
Если родительский процесс уже запущен с маркером администратора, то 

дочерний процесс просто наследует этот маркер, и повышение привилегий 
через UAC не требуется. Обычно консольные утилиты, требующие прав ад-
министратора, (например, LogonSessions от Sysinternals) не требуют повы-
шения привилегий UAC. Вместо этого следует запускать их из командной 
строки или консоли Windows PowerShell, запущенных с повышенными при-
вилегиями.

После срабатывания UAC повышение привилегий можно выполнить тре-

мя способами:

SIN_ch_02.indd   19

27.12.2011   14:12:05


background image

20  Часть 

I   

Приступая к работе

•  Пассивно. Повышение привилегий происходит без вмешательства ко-

нечного пользователя. Данная возможность доступна только членам 
группы Администраторы. По умолчанию в Windows 7 она включена для 
определенных команд Windows. Ее можно включить для всех запросов на 
повышение привилегий посредством политики безопасности.

•  С запросом. Система запрашивает у пользователя согласие на повыше-

ние привилегий, отображая диалог, показанный на рис. 2-2. Данный ва-
риант доступен только членам группы Администраторы и является для 
них вариантом по умолчанию (кроме пассивного повышения по умолча-
нию в Windows 7).

•  С запросом учетных данных. Система запрашивает у пользователя дан-

ные учетной записи администратора (рис. 2-3). Это вариант по умолча-
нию для всех учетных записей, кроме администратора, и единственный 
способ повышения привилегий для тех, кто не является администрато-
ром. Можно дать эту возможность пользователям с правами администра-
тора через политику безопасности.
Имейте в виду, что повышения привилегий через UAC для обычных пользо-

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

Рис. 2-2.  Запрос согласия на повышение привилегий в Windows 7

Рис. 2-3.  Запрос учетных данных для повышения привилегий в Windows 7

SIN_ch_02.indd   20

27.12.2011   14:12:05


background image

Основные понятия Windows  

Глава 2  21 

Если включен контроль учетных записей, Windows переходит в режим, 

аналогичный Windows XP. В этом случае локальные средства защиты не 
создают отфильтрованные маркеры, и программы, запущенные пользовате-
лями — членами группы Администраторы, всегда работают с правами адми-
нистратора. Обратите внимание на то, что отключение UAC приводит так-
же к отключению защищенного режима Internet Explorer, так что Internet 
Explorer работает с полными правами пользователя, выполнившего вход в 
систему. Кроме того, отключение UAC приводит к отключению виртуали-
зации файла и реестра этой программы, то есть, функции, позволявшей в 
Windows XP запускать многие приложения, обычно требующие админи-
страторских прав, под учетной записью пользователя.

Процессы, потоки и задания

На первый взгляд понятия «программа» и «процесс» похожи, но между 
ними есть принципиальное различие. Программа — это статическая после-
довательность команд, в то время как процесс представляет собой контейнер 
для набора ресурсов, используемых для выполнения программы. На самом 
высоком уровне абстракции процесс Windows включает в себя следующее:
•  Уникальный идентификатор, который называется идентификатором 

процесса (PID).

•  Не менее одного работающего потока. Каждый поток в процессе име-

ет полный доступ ко всем ресурсам, на которые ссылается его процесс-
контейнер.

•  Закрытое виртуальное адресное пространство — набор адресов виртуаль-

ной памяти, используемых процессом для хранения информации и соз-
дания ссылок на данные и код.

•  Выполняемую программу — исходно запущенный код и данные, отобра-

жаемые в виртуальном адресном пространстве процесса.

•  Список открытых описателей различных системных ресурсов: семафо-

ров, коммуникационных портов, файлов и пр.

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

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

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

В Windows модель процессов дополнена концепцией заданий. Основная 

функция объекта-задания в том, что он позволяет манипулировать группой 

SIN_ch_02.indd   21

27.12.2011   14:12:05