Однажды посреди жаркого августовского дня я получил письмо от Холмса – он срочно просил меня приехать на Бейкер-стрит. Когда я вошел в кабинет, там уже сидела на краешке стула девушка, одетая скромно, но с большим вкусом.
«Знакомьтесь, это мисс Уинсли», — сказал Холмс, указав на нее рукой. «Она расскажет свою историю, которая должна вас заинтересовать», — слегка прищурившись, добавил он.
История мисс Уинсли
Девушка начала свой рассказ, собираясь с силами через каждые две-три фразы и не переставая нервно теребить в руках платочек. Отец ее умер, когда она была еще крохой, и мать вышла замуж повторно за некого мистера Гейтса. Тот был весьма богат, но особых щедрот падчерице не перепадало.
Три года назад ее мать умерла, а недавно этот мир покинул и отчим. Почти все свое состояние он завещал фонду по борьбе с пиратскими сборками Windows. Девушке причиталась лишь малая толика, которой, впрочем, ей бы хватило на годы безбедного существования. Однако, то ли из вредности, то ли просто в шутку, мистер Гейтс включил в завещание особый пункт.
Чтобы получить свою долю наследства, мисс Уинсли должна была найти способ запустить проводник Windows 7 с правами администратора, не отключая контроль учетных записей. Причем на поиски решения ей отводилось ровно неделя.
За предыдущие шесть дней девушка сбилась с ног, пытаясь найти решение. Она обращалась к самым известным детективам, но все они говорили ей, что это невозможно.
Мисс Уинсли тяжело вздохнула и подняла на нас глаза, полные мольбы:
— Джентльмены, вы – моя последняя надежда! Если до вечера вы не подберете ключ к загадке, я обречена на нищенское существование.
Холмс задумчиво посмотрел на нее:
— Обычно, я избегаю дел, которые нужно решить к определенному сроку. Но поскольку все ваши карты уже биты, я возьмусь за это дело. Думаю, доктор Ватсон мне в этом поможет.
Когда девушка ушла, Холмс не спеша раскурил трубку и, наконец, обратился ко мне:
— Ватсон, вы сияете как бляха того усатого «бобби», что стоит сейчас на углу. Вам что, известно решение?
В тупике
Я всегда считал, что Холмс не слишком разбирается в современных технологиях – именно поэтому он меня и позвал! Компьютер он использовал разве что для чтения криминальной хроники, да скачивания нот для своих скрипичных упражнений.
Ни слова не говоря, я раскрыл ноутбук, который верой и правдой служил мне еще с иракской кампании. Запустив диспетчер задач с полными правами, я быстро завершил процесс explorer.exe, открыл Файл – Новая задача, ввел там explorer /separate и нажал Enter.
Не скрывая торжества, я подвинул Холмсу ноутбук с открывшимся окном проводника.
— У explorer.exe есть недокументированный ключ /separate, запускающий проводник в отдельном процессе. Запуск такой команды с полными правами — это и есть ключ к разгадке, Холмс!
— Ватсон, во-первых, есть более гуманные способы завершения проводника…
Длинные пальцы Холмса быстро забегали по клавиатуре, открывая доселе неведомые мне возможности оболочки Windows. «А во-вторых…», — он щелкнул в адресной строке проводника, ввел cmd, нажал Enter и ткнул мундштуком трубки в заголовок окна командной строки. К моему стыду, там не было написано «Администратор».
— Друг мой, надеюсь, вы понимаете, что окно проводника все-таки было открыто с обычными правами?
— Гм… погодите Холмс, но этот способ точно работал в Windows XP!
Я начал догадываться, почему за шесть дней никто не смог помочь мисс Уинсли. Вид у меня был, наверное, не слишком радостный.
О чем рассказал Process Explorer
Холмс с сожалением взглянул на меня через кольцо дыма:
— Windows XP… У вас есть Process Explorer? Хочу показать вам одну любопытную вещь.
Я, как и любой опытный врач, всегда таскаю в саквояже инструменты компании Sysinternals.
— Ватсон, когда вы запустили проводник в отдельном процессе, повышения прав не произошло, и у процесса остался средний уровень целостности. Но посмотрите внимательнее.
— Process Explorer показывает, что отдельный процесс проводника запущен из-под процесса svchost.exe командой:
explorer.exe /factory,{75dff2b7-6936-4c06-a8bb-676a7b00b24b} –Embedding
Холмс навел курсор на процесс svchost.exe, и я увидел, что это служба запуска процессов DCOM-сервера. Он подвинул мне ноутбук, откинулся на спинку кресла и загадочно улыбнулся. Было непонятно, знает ли он точное решение, но направление для поисков он мне показал.
Поиски в реестре
Я открыл редактор реестра и запустил поиск по идентификатору {75dff2b7-6936-4c06-a8bb-676a7b00b24b}, который используется в командной строке проводника. Он привел меня в один из подразделов HKEY_CLASSES_ROOT\CLSID. Исходя из названия параметра по умолчанию, подраздел отвечал за запуск нескольких процессов проводника одновременно.
В параметре AppID содержался другой идентификатор, очевидно, относящийся к приложению «Проводник». Дальнейший поиск по нему в реестре привел меня в раздел
HKEY_CLASSES_ROOT\AppID\{CDCBCFCA-3CDC-436f-A4E2-0E02075250C2}
В параметре по умолчанию там было указано Elevated-Unelevated Explorer Factory, что явно намекало на связь с запуском проводника с полными и обычными правами.
— Холмс, параметр RunAs со значением Interactive User, очевидно, указывает на тип учетной записи для запуска процесса. Возможно, есть другие допустимые значения!
Я открыл браузер, намереваясь поискать в Интернете, но Холмс внезапно остановил меня:
— Минутку, Ватсон! Иногда полезно подумать самому, пока Гугл не отучил вас от этого достойного занятия. Вы слышали про оснастку «Службы компонентов»?
Секретные службы [компонентов]
Холмс нашел оснастку поиском в меню «Пуск» (впоследствии я узнал, что можно еще запустить исполняемый файл dcomcnfg.exe).
— Ее основным назначением является настройка объектов DCOM, и вот вам компонент Elevated-Unelevated Explorer Factory. Это не случайное совпадение!
Холмс открыл свойства компонента, и я увидел, что на вкладке «Удостоверение» предусмотрен выбор учетной записи для запуска процессов проводника.
«Параметр Текущий пользователь (Interactive User) соответствует значению параметра RunAs в реестре», — с авторитетным видом пояснил Холмс.
Увидев и другие варианты, я предположил, что этот параметр ограничивает запуск проводника текущими правами учетной записи, которые даже у администратора являются обычными.
— Получается, нужно попробовать установить параметр «Запускающий пользователь». Однако почему все опции заблокированы, Холмс?
— Это же элементарно, Ватсон!
Смена типа учетной записи для запуска проводника
Холмс переключился в редактор реестра.
— Поскольку в оснастке невозможно изменить тип учетной записи, у вас нет прав на внесение изменений в раздел реестра. Это происходит в случае, если его владельцем является системная учетная запись TrustedInstaller.
Он ловко получил доступ к разделу реестра и перезапустил оснастку. Чудесным образом в свойствах компонента Elevated-Unelevated Explorer Factory появилась возможность изменить тип учетной записи!
Затем Холмс снова вернулся в раздел HKEY_CLASSES_ROOT\AppID\{CDCBCFCA-3CDC-436f-A4E2-0E02075250C2} и продемонстрировал мне, что параметр RunAs исчез после изменения в оснастке.
Невозмутимо попыхивая трубкой, Холмс вернул исходные права и владельца раздела реестра на свои места, пояснив при этом:
— Как видите, изменение типа учетной записи для запуска проводника возможно двумя способами – в оснастке «Службы компонентов» и прямо в реестре. Впрочем, Ватсон, я не рекомендую вам удалять параметр реестра, т.к. достаточно переименовать его, например, в xRunAs.
Он подвинул мне ноутбук, давая понять, что проблема мисс Уинсли решена, и ехидно добавил:
— Кстати, Ватсон, теперь вовсе необязательно завершать все процессы проводника. Просто используйте ваш недокументированный ключ.
Запуск проводника с полными правами
Я открыл командую строку с полными правами и выполнил explorer.exe /separate. Теперь запущенный процесс проводника (PID 5948) имел высокой уровень целостности.
— Значит, «Текущий пользователь» (Interactive User) соответствует маркеру безопасности с обычными правами, который по умолчанию выдается даже администратору?
— Абсолютно верно, Ватсон! Вспомните историю про два билета на спектакль. Когда команда выполняется от имени администратора, «Запускающий пользователь» уже соответствует маркеру безопасности администратора. Поэтому теперь у проводника высокий уровень целостности, а его права полноценно повысились.
Я ввел в адресной строке проводника cmd, и командная строка открылась с полными правами (PID 2612).
— Можно вызывать мисс Уинсли?
— Конечно, Ватсон! И думаю, девушке будет приятно, если вы добавите ей в контекстное меню пункт для запуска проводника от имени администратора. Это послужит наглядным объяснением для распорядителей последней воли мистера Гейтса.
Пункт контекстного меню для запуска проводника с полными правами
Едва переступив порог, мисс Уинсли воскликнула:
— Джентльмены, неужели вы смогли найти решение всего за час?
— Позвольте ваш нетбук, леди. Доктор Ватсон покажет вам решение.
Мисс Уинсли достала из объемной сумочки серебристый VAIO и протянула мне. Уже через пару минут я создал в контекстном меню пункт для открытия папки от имени администратора.
Windows Registry Editor Version 5.00 ;Контекстное меню папки [HKEY_CLASSES_ROOT\Directory\shell\ExplorerElevated] @="Открыть папку от имени администратора" ;Отображение пункта только при нажатой клавише SHIFT "Extended"="" "Icon"="imageres.dll,73" [HKEY_CLASSES_ROOT\Directory\shell\ExplorerElevated\command] @="nircmd.exe elevate explorer.exe /separate /root,\"%1\"" ;Контекстное меню фона папки и рабочего стола [HKEY_CLASSES_ROOT\Directory\Background\shell\ExplorerElevated] @="Открыть папку от имени администратора" ;Отображение пункта только при нажатой клавише SHIFT "Extended"="" "Icon"="imageres.dll,73" [HKEY_CLASSES_ROOT\Directory\Background\shell\ExplorerElevated\command] @="nircmd.exe elevate explorer.exe /separate /root,\"%V\""
— Мисс Уинсли, выбрав этот пункт и согласившись с запросом контроля учетных записей, вы откроете папку проводника с полными правами. Все программы, запущенные из этого окна проводника, тоже будут иметь права администратора. Перетаскивание файлов в программы с любыми правами также будет работать.
Впервые за время пребывания на Бейкер-стрит мисс Уинсли улыбнулась, и ее глаза засветились от счастья. Прижимая к груди нетбук, она осыпала меня словами благодарности, заставив даже покраснеть под ироничным взглядом Холмса.
Уже в дверях мисс Уинсли внезапно повернулась и спросила:
— Джентльмены, скажите, а это решение будет работать в Windows vNext? В завещании есть еще один пункт – я должна перейти на нее в день выхода RTM.
Я замер, но Холмс отреагировал моментально:
— Но ведь в завещании не сказано, что вы должны запускать проводник с полными правами в Windows vNext?
Девушка отрицательно покачала головой, подарила нам еще одну улыбку и скрылась за дверью.
А я не смог удержаться от вопроса:
— Откуда у вас такие глубокие познания в Windows, Холмс?
— Это элементарно, Ватсон! Я подписан на вестник «Think Outside the Box!», благодаря которому регулярно пополняю свой багаж знаний. Да и разобраться в Windows все-таки проще, чем научиться играть на скрипке!
equinox
Превосходно! И детектив, и рассказ про такую полезную штуку как запуск проводника от имени администратора — все в одном! Прочел с удовольствием. Беру на заметку!
xaegr
Great story, mr. Watson! :)
Сергей Ткаченко
Чёрт возьми, это потрясающе.
Во-первых, я НЕ ЗНАЛ.
Во-вторых, стиль изложения — это реально круто.
Вадим, спасибо за полученную пользу и удовольствие от прочтения.
Oleg Krylov
Вадим, стиль изложения выше всяких похвал! Как говорится, аффтар, пешы исчо!!!!
Алекс
Читал с упоением, даже огорчился когда увидел конец детектива. Где берете все новое и новое Вадим, видимо Виндовс это большая недописанная книга)
Vinda-Master2012
Можете дать мод чтобы в меню через шифт, были пункты Запуск от админа для всех файлов, и Запуск папки под админом, и Запускт комадовой строки от админа в папке
Vadim Sterkin
Этот случай действительно интересный с точки зрения работы Windows 7. У него есть и практическое применение, хотя большей части пользователей он не нужен.
Увидев относительно слабую изначальную реакцию читателей на запись схожей тематики, я решил, что изложение proof of concept надо делать более увлекательным ;)
equinox, спасибо за высокую оценку рассказа!
xaegr, I’m glad you liked it ;)
Сергей Ткаченко, я знал, что ты не знал :) Но согласись, что узнать об этом так намного интереснее, чем из переписки в MSN.
Oleg Krylov, я смотрю, тебе настолько понравился рассказ, что ты даже перешел на албанский ;)
Алекс, многие записи блога основаны на вопросах, которые я вижу в форумах или получаю по почте. Последние два рассказа навеяны этой темой форума TechNet.
Vinda-Master2012, в смысле подать вам его на блюдечке с голубой каемочкой? :) Прямо под статьей есть блок «Вас также может заинтересовать». Вторая и пятая ссылки (на данный момент) вкупе с сегодняшним детективом содержат все необходимое. Разбирайтесь, вы же мастер ;)
Евгений
А можно эту же проблему решить чуть попроще:
— через диспетчер задач завершаем процесс explorer;
— через диспетчер задач, «Файл» -> «Новая задача (выполнить)» идем в %systemroot%, и правой кнопкой на файле explorer.exe, вызываем контекстное меню и запускаем от имени Администратора.
Если при нажатии на правую кнопку удерживать shift, то процесс explorer можно запустить от имени любого другого пользователя.
Антон Плескановский
Написано интересно, доступно и главное — полезно.
Спасибо, Вадим!
Еще раз убеждаюсь, что реестр вкупе с технологие COM+ содержат еще много тайных знаний:)
СанСаныч
Вам бы, батенька, романы писать.
Vadim Sterkin
Антон Плескановский, спасибо за отклик!
Viktor Golub, я боялся поднимать планку, потому что ее очень тяжело удерживать ;)
Viktor Golub
Bellissimo!
Das ist fantastisch!
Excellent!
Praeclarus!
Великолепно!
Сэр Артур Конан Дойль отдыхает однозначно :)
Вадим, изложение выше всяких похвал!
Надеюсь все твои следующие записи будут поданы не хуже этой ;)
Спасибо!
equinox
Извините, поспешил удалить скрины по ссылкам выше, переложил:
http://www.flickr.com/photos/equinox-net/5998051980/
http://www.flickr.com/photos/equinox-net/5998051986/
Hector
стиль потрясный, оказывается у технических спецов бывает и литературный талант :)
Vadim Sterkin
equinox, и что ваши скриншоты иллюстрируют? Они похожи на те, что у меня в статье :)
Hector, знаете, я ведь и до сегодняшнего дня писал точно так же с точки зрения языка, стилистики, детализации и т.д.. Просто тут стиль изложения другой, поэтому вы видите все в новом свете :)
equinox
Vadim Sterkin,
Они иллюстрируют десктоп доктора Ватсона (Watson) :) Чтоб соблюсти стилистику Конан Дойля — мне показалось нелогичным, что Ватсон заходит в систему под именем пользователя Vadik. ;)
Рассматривайте это не как «подковырку», мол, историческая неточность и так далее, а как стремление «вжиться в образ».
И, кстати, планируете продолжать «записки о Шерлоке Холмсе»? У меня сложилось впечатление, что читатели просто в восторге от подобного изложения материала.
Vadim Sterkin
equinox, aх, понял теперь :) Идея хорошая, но я не стал настолько заморачиваться. У вас на скриншотах стиль оформления без Аеро, да и на первом скриншоте у меня видно, что explorer нет в списке процессов.
В принципе, это ведь неважно. Вас же не смущает, что Ватсон использует русскую ОС? И вообще ОС… :)
Чтобы продолжить в этом духе, нужны материалы подходящие. Я, конечно, рассматриваю такую возможность. С другой стороны, я буду и дальше стараться разнообразить стиль. Вы ведь любите приятные сюрпризы? :)
glizinia
Спасибо Вадим — статья «бомба»!!!
Vadim Sterkin
Евгений, я проверил — да, работает. И даже можно без кнопки «Обзор» — достаточно ввести explorer в окно, показанное на первом скриншоте статьи и поставить там флажок.
В принципе, этот способ обсуждался в комментариях к предыдущей записи, начиная отсюда.
Но этот способ прост… как валенок :) Во-первых, вам нужно завершать проводник. Во-вторых, и это главное, у вас вся оболочка начинает работать с полными правами, что совершенно не нужно. И если вы не хотите так работать, то в-третьих, вам придется снова завершать процесс и перезапускать его.
Описанное мной решение элегантнее, да и удобнее оно в повседневной работе, если она время от времени подразумевает запуск проводника с полными правами.
Да, убивая проводник, можно было выполнить условия завещания, но представьте, что хитрый мистер Гейтс добавил бы в него еще три слова: «не завершая explorer.ехе» :) Так Мисс Уинсли не обошлась бы без Холмса, а вы бы прочли увлекательный рассказ :)
glizinia, спасибо за отзыв!
СанСаныч, романы писать… А зачем? :) Плохих романистов и так выше крыши, книги по рублю…
RuGo!
Здравия, Вадим.
Коли до сих пор у меня только промелькивала мысль о сборе ваших статей под одной обложкой, то теперь ……
Я просто уверен !
Вам нужно издаваться !
И поверьте — ваша книга будет бестселлером !
P.S. Ваш блог — единственный, который рекомендую к изучению многим «юзьверям» и где они всё прекрасно понимают ! Да и для себя ….. очень многое открыл -) . БЛАГОДАРСТВУЮ !
СанСаныч
RuGo! «…мысль о сборе ваших статей под одной обложкой,…
Вам нужно издаваться !…»
Я же говорю, рома… т.е. книгу надо написать.
equinox
Vadim Sterkin
Назрел вопрос: возможно ли все манипуляции с dcomcnfg.exe и реестром развернуть на доменные машины? В работе на удаленных компьютерах использую FreeManager, который запускаю от имени администратора. Но запуск отдельного окошка проводника (а не долгий и утомительный перезапуск explorer.exe, как описывал Евгений) действительно полезнейшая штука при работе в среде с разделяемыми правами.
P. S. По поводу того, что Ватсон использует ОС и нетбуки… В прошлом году крутили на первом канале английский сериал про современного Шерлока Холмса, очень интересная трактовка. В этом сериале герои живут в начале 21-го века и используют навигаторы, ноутбуки, телефоны и пр.
Vadim Sterkin
RuGo! и СанСаныч, вы мне льстите ;) Но если будет серия таких рассказов, я оберну ее в электронную книгу.
equinox, гм… не уверен, что это нужно в домене. Но логон-скрипт должен решить вопрос: сменить владельца, переименовать параметр, вернуть владельца. Команды на форуме есть:)
У меня нет ТВ.
Андрей
Вадим, слов нет. Просто класс!!!
equinox
Спасибо, попробую на тестовой машине.
У меня тоже нет ТВ. Просто видел рекламу, и скачал весь сериал с торрентов :)
artem
А а ведь всегда говорил, что есть некая корреляция между любовью к разъездам на велосипеде в не вполне трезвом состоянии и литературными способностями!
Но всё-таки «не опубликованное Конан Дойлем» должно писаться раздельно. (Либо «неопубликованное Конан Дойля»).
Vadim Sterkin
artem, прошедший уикенд показал, что вело-шашлыки — это вполне здоровое времяпрепровождение :)
Насчет правописания — интересный вопрос. У меня никогда не было сильной грамматический базы, и я по большей части пишу по наитию. Однако в данном случае я не вижу ошибки.
Неопубликованный — это страдательное причастие прошедшего времени, которое пишется слитно. Если заглянуть в Розенталя, то он там приводит такие тезисы:
«Не влияет на написание страдательных причастий и отглагольных прилагательных наличие частицы не-» (хотя делает это в контексте количества букв «Н»).
«обвешенные (обвесить) продавцом покупатели»
«подстреленные (подстрелить) охотником утки»
По-моему, «неопубликованное Конан Дойлем» аналогично этим примерам. Но я поинтересуюсь у лингвиста :)
P.S. Если напрягает, см. в заголовок окна браузера ;) Ммм… точнее наводи курсор на вкладку, у тебя ж IE9.
Vadim Sterkin
Поинтересовался :) Мы пришли к выводу, что стилистически данная фраза небезупречна, и лучше было ее перефразировать, избегая разговорного стиля. Однако формат заголовка записи вынуждал быть кратким.
Что же касается орфографии, то ошибки нет. Во фразе «записки, не опубликованные Конан Дойлем» действительно следовало бы писать «не» раздельно. Однако в данном случае существительное отсутствует, и его замещает причастие.
http://www.gramma.ru/RUS/?id=4.56
Что же касается склонения (Конан Дойлем), то оно тоже правильно.
Виктор
Отлично! Первоклассно! Мастерски!
Я поначалу подумал, что это какая-то левая статья попалась. А потом не мог оторваться. Супер!
Теперь я тут похоже на долго….)))
Vadim Sterkin
Виктор, спасибо за комплименты! Я рад, что вы не бросили читать рассказ после вступления ;)
Виталий
Я вот тоже так подумал. Но, посмотрев на число комментариев, прочёл. Не зря. Ключик забрал себе, авось пригодится.
P.S. В ХР всё проще было.
Vadim Sterkin
Виталий, я рад, что вы не зря потратили время!
QWERTY
Желаю найти еще интересных тем для изложения их в подобном духе..)
Max04
Написано очень интересно. Тока не понятно, зачем это нужно — запускать проводник от имени админа?
Vadim Sterkin
Max04, например, чтобы приступить к управлению и изменению системных файлов, не отвлекаясь на запросы UAC.
А вообще, показана концепция — как работает ограничение на запуск проводника с полными правами и как оно обходится.
джек
а можно покороче и поточнее только действия «правильные» кажется я нашёл то что мне нужно?!
Vadim Sterkin
Короче и точнее:
1. Сначала определитесь, что вам нужно.
2. Потом читайте внимательно.
джек
1мне нужно получить права админа 2мне нужно краткое описание того что написанно в рассказе.
Vadim Sterkin
Этот рассказ подразумевает, что у вас уже есть права администратора. Получить их можно так, если можно загрузиться с DVD/USB.
Но если эти права вам не положены И станет известно, что вы их получили, у вас будут проблемы.
джек
спасибо сэр
neviol
Здравствуйте.
вот такой вопрос: возможно сделать так, чтоб ВСЕ папки, программы и вообще все открывалось без этого дурацкого вопроса про права администратора?
короче чтоб был ПОЛНЫЙ доступ ко всему на компьютере….
или как то отключить это? но только чтоб для ВСЕГО…
чтоб можно было открыть любую папку, запустить любую программу, ну и т.п.
спасибо за любую инфу….
а статья прикольная :)
Vadim Sterkin
Можно, но я не буду вам советовать это делать, потому что вам это вредно. См. также Так ли страшен контроль учетных записей?
neviol
спасибо, за ответ.
я уже настроил. какой-то ползунок поставил на минимум( у вас на сайте видел скрин в статье про понижение UAC) и все стало как мне надо. все открывает и везде пускает…
вы кстати, несколько категоричны — говоря, что это мне вредно. ведь каждый настраивает комп под себя (как ему удобно, или я не прав?).
тем более все «ценные» файлы я периодически записываю на флешки, так что в принципе ничего не пропадет…
специально в систему не лажу, да антивирусом раз в неделю на максимальном режиме прогоняю…
просто действительно, доставали эти вопросы от Мелкософта.
ладно тем кто с деньгами работает или проекты какие изобретает — понятно (надо защиту включать), а таким как я, кто фотки,музыку да игрушки только включает — мне то оно зачем?
P.S. когда сильно заглючит, можно и систему заново переустановить :)