- Історія міс Уінслі
- В глухому куті
- Про що розповів Process Explorer
- Пошуки в реєстрі
- Секретні служби [компонентів]
- Зміна типу облікового запису для запуску провідника
- Запуск провідника з повними правами
- Пункт контекстного меню для запуску провідника з повними правами
Одного разу посеред спекотного серпневого дня я отримав лист від Холмса - він терміново просив мене приїхати на Бейкер-стріт. Коли я увійшов до кабінету, там уже сиділа на краєчку стільця дівчина, одягнена скромно, але з великим смаком.
«Знайомтеся, це міс Уінслі», - сказав Холмс, вказавши на неї рукою. «Вона розповість свою історію, яка повинна вас зацікавити», - злегка примружившись, додав він.
Історія міс Уінслі
Дівчина почала свою розповідь, збираючись з силами через кожні дві-три фрази і не перестаючи нервово смикати в руках хустинку. Батько її помер, коли вона була ще крихіткою, і мати вийшла заміж повторно за нікого містера Гейтса. Той був дуже багатий, але особливих щедрот падчерки не перепадає.
Три роки тому її мати померла, а недавно цей світ покинув і вітчим. Майже весь свій статок він заповів фонду по боротьбі з піратськими збірками 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 все-таки простіше, ніж навчитися грати на скрипці!
Обговорення завершено.
Вам що, відомо рішення?Друг мій, сподіваюся, ви розумієте, що вікно провідника все-таки було відкрито зі звичайними правами?
У вас є Process Explorer?
Ви чули про оснащення «Служби компонентів»?
Однак чому все опції заблоковані, Холмс?
Можна викликати міс Уінслі?