Вы можете добавить в контекстное меню пункт, который будет открывать файлы с полными правами, например, в текстовом редакторе. Это можно сделать наряду с пунктом для обычного запуска или вместо него.
Если программа умеет интегрироваться в контекстное меню, логично добавлять только пункт для запуска с полными правами. При этом его можно скрыть по умолчанию, а отображать только при вызове контекстного меню с нажатой клавишей SHIFT.
Я не рекомендую отказываться от запуска с обычными правами по двум причинам. Во-первых, вовсе необязательно всегда открывать программу с правами администратора, а во-вторых, существует ограничение, на котором я остановлюсь отдельно.
Повышение прав можно организовать несколькиим способами: первый из них не требует сторонних утилит, зато остальные – более универсальны.
Повышение прав из раздела реестра “runas”
Все делается почти так же, как в случае с обычными правами. Основное отличие в том, что подразделу реестра задается не произвольное название, а фиксированное — runas. Этот так называемый «глагол» (verb) форсирует запрос на повышение прав для выполняемой команды.
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\runas] "MUIVerb"="Открыть в Блокноте от имени администратора" "HasLUAShield"="" "Icon"="notepad.exe" ;"Position"="Bottom" "Extended"="" [HKEY_CLASSES_ROOT\*\shell\runas\command] ;Блокнот @="notepad.exe %1" ;Notepad++ ;@="C:\\Program Files\\Notepad++\\notepad++.exe %1"
Обратите внимание, что добавлен параметр HasLUAShield для отображения щита на значке программы. В реестре это выглядит примерно так:
В контекстном меню появился пункт Открыть в Блокноте от имени администратора. Он запускает редактор, предварительно отображая запрос контроля учетных записей. Одобрив запрос, вы сможете редактировать файл, даже если он расположен в системной папке.
У этого способа есть два недостатка:
- Для каждого типа файлов, в том числе в разделе HKEY_CLASSES_ROOT\*, может быть только один подраздел runas. Если вы хотите встроить в контекстное меню несколько разных программ, нужно организовать повышение прав альтернативными способами.
- Для некоторых типов файлов глагол runas уже задан, и в этом случае он преобладает над разделом для всех типов файлов (*). Посмотрите, например, в разделе HKEY_CLASSES_ROOT\cmdfile\shell. CMD-файлы иногда нужно запускать с полными правами, и пункт меню «Запуск от имени администратора» реализован именно способом runas. При таком раскладе ваш пункт не отобразится.
Если вам неудобны такие ограничения, добро пожаловать в мир альтернативных решений!
Повышение прав сторонними средствами
Для решения этой задачи есть несколько вариантов, но все они похожи.
NirCmd
В утилите NirCmd предусмотрен ключ elevate, который организует запрос на повышение прав.
В общем случае команда такая:
nircmd.exe elevate program.exe
Правка реестра выполняется аналогично, но теперь вы можете указать любое имя для раздела программы, например, EditorElevated. В подразделе command указывается полный путь к утилите NirCmd, если только она не лежит в системной папке, например, System32.
nircmd.exe elevate notepad "%1"
В реестре это выглядит примерно так (на рисунке показан мой полный путь к утилите):
Если вы используете сторонний редактор, укажите полный путь к нему в кавычках вместо notepad.
nircmd.exe elevate "C:\Program Files\Notepad++\notepad++.exe" "%1"
Обратите внимание, что передаваемый программе параметр %1 (путь к файлу) также заключается в кавычки, поскольку он выступает уже в роли параметра утилиты NirCmd (кавычки решают проблему пробелов в путях)
ELE
ELE похожа на утилиту elevate, о которой я рассказывал в статье про ложные страхи перед UAC. Разница в том, что ELE открывает новую командую строку в той же папке, где была открыта старая.
Утилиту можно положить в системную папку, и команда будет похожа на nircmd, даже короче:
ele.exe notepad "%1"
В отличие от NirCmd, при запуске ELE появляется на миг окно командной строки, но это не имеет особого значения, т.к. за ним все равно следует запрос контроля учетных записей.
Elevation PowerToys
До NirCmd я использовал Elevation PowerToys, которые легли в основу рассказа о том, как открыть командную строку от имени администратора в нужной папке. Любопытно, что для решения этой задачи в INF-файле применяется все-таки способ runas, который я описал выше. Но в архиве также лежат файлы для организации повышения.
Достаточно распаковать архив в любую папку и скопировать файлы elevate.cmd и elevate.vbs в папку %WinDir%\System32. В общем случае повышение выполняется командой:
elevate program.exe
Консольное окно тоже появляется на миг. Этот способ интересен тем, что повышение прав осуществляется с помощью VBS. Здесь рассматривается этот вариант в подробностях. Как вы думаете, что там в коде главное? Конечно, глагол runas :)
Тонкости, которые нужно учитывать, при работе с UAC
В контексте UAC я выделю два момента, которые вам нужно учесть при открытии файлов из контекстного меню с полными правами.
Открытие файлов во вкладках программы
В отличие от блокнота, многие текстовые редакторы (например, Notepad++) открывают файлы во вкладках уже запущенного приложения. Описанный выше способ запуска редактора с полными правами сработает правильно только в том случае, если редактор еще не запущен. А когда он уже открыт, запрос UAC появится, но файл все равно откроется в виде вкладки в редакторе, который изначально был запущен с обычными правами.
В этом случае сохранить файл после правки не получится. Я не могу отвечать за все редакторы, но в Notepad++ происходит именно так, причем сообщение об ошибке не раскрывает суть проблемы.
Если вы столкнулись с такой ситуацией, выход заключается в том, чтобы вызывать с полными правами новый экземпляр приложения (в случае с блокнотом так всегда и происходит, кстати).
Скорее всего, у редактора найдется параметр командной строки, позволяющий запустить новый экземпляр программы. У Notepad++ этим параметром является multiInst. В этом случае в реестре нужно прописать такую команду:
nircmd.exe elevate "C:\Program Files\Notepad++\notepad++.exe" -multiInst “%1”
Одновременное открытие нескольких файлов
Описанные выше пункты контекстного меню позволяют открывать сразу несколько выделенных файлов. При правке файлов, не требующих повышения, все проходит нормально. Но попытка одновременно открыть большое количество файлов от имени администратора может не сработать на безопасном рабочем столе.
Стандартным уровнем контроля учетных записей является отображение запроса на фоне затемненного экрана.
На самом деле система делает скриншот рабочего стола, затемняет полученную картинку и отображает запрос на ее фоне. Это и есть безопасный рабочий стол.
Вообще, вы его видите каждый раз при входе в систему, но там всегда используется фиксированный фон.
Поскольку для каждого файла нужно вывести запрос UAC, возникает нетривиальная ситуация – система реагирует на первый файл отображением запроса, а в это время выполняется запуск следующих файлов. В результате, не все файлы открываются.
Я не нашел, как это обойти, кроме как снижением уровня UAC на один пункт ниже стандартного.
Вообще, возможность отключить затемнение экрана была еще в Vista в виде групповой политики, а в графическом интерфейсе появилась только в Windows 7, чтобы упростить оптимизацию работы владельцам слабых видеокарт.
Лучше работать со стандартным уровнем UAC, т.к. безопасный рабочий стол дает дополнительную визуальную информацию о легитимности запущенного процесса (фальшивый фон труднее подсунуть).
Я не припомню ситуации, когда мне приходилось одновременно открывать сразу несколько файлов в системной папке (в крайнем случае, их можно открыть по одному).
Практика: создание архива с полными правами из контекстного меню
Наверняка, у вас в контекстное меню интегрирован архиватор 7-Zip или WinRar. Недавно в форуме TechNet один участник сетовал на невозможность создания архива в корне диска или системной папке. Например, у него есть папка Logs, которую очень удобно архивировать из контекстного меню с помощью каскадного меню архиватора.
В корне диска можно создавать папки с обычными правами, но для записи туда файлов нужны права администратора — помните мою загадку в викторине?
Из контекстного меню архиватор запускается с обычными правами, и на создание архива в системном расположении у него не хватает полномочий. В Windows 7 и Vista предусмотрена такая ситуация, и архив создается, хотя в корне диска файл не отображается. Впрочем, достаточно нажать в проводнике кнопку Файлы совместимости, чтобы все увидеть.
Я считаю, что раз UAC включен, нужно следовать лучшим практикам работы в Windows. Это значит, что файлы нужно хранить в профиле, а не в корне диска, и тогда не будет таких проблем.
При острой необходимости вы можете добавить в меню свой пункт полноправного архиватора, что будет работать с некоторыми ограничениями.
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\AllFilesystemObjects\shell] [HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\7zElevated] "MUIVerb"="Архивировать с правами администратора" "HasLUAShield"="" "Icon"="\"C:\\Program Files\\7-Zip\\7zFM.exe\"" "Extended"="" [HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\7zElevated\command] @="nircmd elevate \"C:\\Program Files\\7-Zip\\7z.exe\" a \"%1\".7z \"%1\""
При вызове контекстного меню папки с нажатой клавишей SHIFT это выглядит так:
Обратите внимание на два момента:
- Параметры добавляются в подраздел AllFilesystemObjects. Раньше мы имели дело с файлами, но нередко нужно добавить в архив папку. Этот подраздел отвечает за все объекты файловой системы, т.е. файлы и папки.
- Команда выглядит запутанной из-за двойных и экранирующих кавычки слэшей в REG-файле, но в реестре она смотрится понятнее:
nircmd elevate "C:\Program Files\7-Zip\7z.exe" a "%1".7z "%1"
Первый параметр %1 задает полный путь к расположению 7z архива, при этом его имя будет таким же, как у архивируемого объекта. Другими словами, архив создается на одном уровне с архивируемой папкой или файлом с таким же именем. Второй параметр %1 указывает на папку или файл, добавляемые в архив.
Ограничения этого способа
К сожалению, такой пункт меню работает неидеально. Если выделить несколько папок или файлов, каждый объект помещается в отдельный архив. Оболочка (проводник) последовательно передает архиватору в качестве имени архива первый параметр %1, т.е. полный путь к каждому файлу или папке.
Это можно обойти, указав вместо первого экземпляра %1 фиксированное имя архива (например, archive.7z).
nircmd elevate "C:\Program Files\7-Zip\7z.exe" a archive.7z "%1"
В этом случае архив будет последовательно обновлен при добавлении каждого файла.
Постоянное имя архива, конечно, не очень удобно, но с этим можно было бы мириться, если бы не второе ограничение. Оно связано с одновременным обращением к нескольким объектам, т.е. для каждого выводится запрос UAC. Эту проблему я уже рассматривал выше. В контексте архиватора она выражается в том, что некоторые выделенные объекты не попадают в архив.
Таким образом, при рекомендуемом уровне UAC (с безопасным рабочим столом) этот способ не подвержен сбоям лишь при архивации одной папки или одного файла.
Как видите, самодельный пункт контекстного меню, добавленный в реестр, не столь удобен, как полноценные расширения оболочки, с помощью которых архиваторы интегрируются в проводник. Однако в них вообще не предусматривается запуск архиватора с полными правами.
Вы заметили, в чем основная проблема с запуском файлов из контекстного меню с полными правами? Все дело в том, что проводник запущен с обычными правами, и команды контекстного меню их наследуют. Казалось бы, решение лежит на поверхности – нужно запустить проводник с правами администратора, дело в шляпе!
Однако сделать это сложнее, чем кажется, и описанные выше методы тут не помогут. На следующей неделе я приглашаю вас на экскурсию по… театральному залу Windows, где процессы занимают места согласно купленным билетам. Она послужит прелюдией к рассказу о том, как запускать проводник с полными правами.
А как часто вы сохраняете файлы в корне системного диска или правите файлы в системных папках? Отвечая на вопрос, не забудьте указать, включен ли у вас UAC :)
Vadim Sterkin
Гм… отсутствие комментариев к записи — редкий случай в последнее время :) Это может означать, что материал:
— плохо изложен (что вряд ли, ибо стиль не менялся)
— слишком сложный (я бы так не сказал)
— полностью раскрывает тему, так что нечего добавить
— не нужен подавляющему большинству читателей (UAC отключен или нет нбх в открытии файлов с повышением)
— просто очень жарко и лень комментировать :)
Я что-то упустил?
oneman
Спасибо, Вадим, за статью. Изложено все достаточно подробно… правда все равно нужно время чтобы усвоить инфу… жара :)
Что касаеться Ваших вопросов, редко нужны права на запись в системный раздел или папки, но ногда необходимо
Так что жду продолжения про запуск проводника с полными правами :)
Еще раз спасибо что не смотря на погодные условия находите время на написание статей.
Guest
Предпоследний вариант. Много манипуляций ради ничего. Приведите практические примеры и пользу от использования всех этих действий.
Vadim Sterkin
oneman, спасибо за отклик!
Совершенно согласен. Мне они нужны не чаще раза в год :)
О, это будет совершенно необычный рассказ, вы удивитесь :)
Guest, на самом деле, манипуляций-то немного. Взять готовый твик, подставить путь к своей программе и закинуть nircmd в System32 — дело одной минуты.
Практические примеры есть прямо в статье — тот же файл hosts. С другой стороны, те, кто правит системные ресурсы, могут добавить в меню редактор ресурсов.
Однако я уверен, что почти все люди, которые постоянно лезут в системные папки, отключают UAC :) Поэтому в статье довольно явно просматривается мораль, что в системные папки лезть не нужно.
Так что данный рассказ — это скорее демонстрация концепции. В том числе, и несовершенства ее реализации при стандартных параметрах UAC. А заодно, у вас есть возможность изучить, как функционируют разные пункты контекстного меню Windows 7.
Даниил
Спасибо за статью Вадим.
Обязательно «возьму на вооружение» описанные Вами способы, если понадобится.
Отвечая на вопрос:
Создание и изменение файлов в системных каталогах практикую очень редко, только в случае крайней необходимости, если без этого не обойтись никак.
UAC был, есть, и будет включен всегда. Он мне совершенно не мешает сейчас (Windows 7), и не мешал (Windows Vista), да и привык я к нему уже :)
Vadim Sterkin
Даниил, спасибо за ответ :)
fedor
Спасибо за очередную статью, хочу поделиться своим опытом. Когда я жил на winxp и работал под ограниченной учётной записью были постоянные проблемы с различным софтом, не принято было тогда у некоторых проверять как ведет себя программа запущенная под ограниченной учёткой. В основном проблема была в том что программа при установке не выставляла правильных прав на свои файлы, из-под админа естественно всё работало нормально. Чтобы не переключаться туда-сюда между пользователями каждый раз для того чтобы выставить права руками делал просто — запускал FreeCommander от имени администратора и спокойно в нем уже выставлял права. Таким же образом можно ковырять системные файлы просто открывая двойным кликом. Привычка осталась и сейчас когда необходимо копнуть в системной директории запускаю файловый менеджер с правами администратора.
Vadim Sterkin
fedor, спасибо за отклик! Конечно, запуск файлового менеджера с правами администратора решает проблему. Так и нужно делать (не всегда, а для внесения изменений в системные файлы). Только вот проводник отличается от других файловых менеджеров в этом аспекте…
Eugene_R
Вадим, спасибо за статью.
Хотя мне она пригодиться только для общего развития. Вместо стандартного проводника я использую… нет не тотал коммандер, а Directory Opus 9. И пользуюсь им с 7 версии. В этом проводнике столько возможностей, что мне даже страшно начинать их перечислять. Скажу только, что программа очень гибкая в настройке. Вот на всякий случай скриншот, хотя по нему сложно что либо понять:
тык
Версия 9 не последняя, но мне её подарили авторы программы за мою помощь. Стоимость программы конечно не радует.
Vadim Sterkin
Eugene_R, обсуждение файловых менеджеров давно напрашивается :) Собственно, я к нему потихоньку и подвожу. Думаю, в августе у нас будет возможность поговорить на эту тему.
Eugene_R
Вадим, может мне небольшой обзор на Directory Opus сделать?
Vadim Sterkin
Eugene_R, хорошая идея! Поскольку вы используете разные адреса при отправке комментариев, напишите мне с «живого» адреса прежде чем начинать. Я вам вышлю кое-что полезное для этого дела :)
jakv
Спасибо за статью Вадим.
Отвечая на вопрос:
В корневом каталоге файлов не создаю, создание и изменение файлов в системных каталогах практикую очень редко,
UAC был, есть, и будет включен всегда.
Возникает ряд вопросов по данной тематике:
1 Можно ли где-то прочитать алгоритм формирования контекстного меню?
У себя (Windows 7) я, например, вижу в
[HKEY_CLASSES_ROOT\txtfile\shell]
три ветки open, print, printto
а в меню вижу
Открыть, Печать, Заменить
я могу предположить, что первые два перевод. Но куда делся пункт printto и откуда взялся Заменить.
2 Где можно получить информацию по ключам командной строки для утилит Windows.
Для команд я запускаю с ключом /? или смотрю в справке.
А здесь увидев в
[HKEY_CLASSES_ROOT\txtfile\shell\printto\command]
команду
notepad.exe /pt «%1» «%2» «%3» «%4″ »
приходиться гадать что значит ключ /pt и что подставляется в параметры после первого
3 Хотелось бы добавить пункт меню «Посмотреть» для всех файлов, но где взять программу хотя бы типа встроенного просмотра в ТС?
Меня всегда удивляло отсутствие команды посмотреть в проводнике даже для текстовых файлов.
На мой взгляд открытие в редакторе не лучший вариант.
4 При установке некоторых программ при запуске setup через runas, возникала ситуация что процесс установки запускается и идет номально, а затем на некотором этапе вылетает по нехватке прав. К сожелению сейчас не могу вспомнить конкретный пример.
Почему это может быть?
Vadim Sterkin
jakv, ого, сколько вопросов :)
Давайте по порядку…
Creating Shortcut Menu Handlers (Windows)
Ответ там же. Это канонические глаголы (canonical verbs). printto позволяет перетаскивать файлы на принтер.
Command-line reference A-Z
Ключ определяет печать файла на указанный принтер.
%1 — имя файла
%2 — имя принтера
остальные не имеют значения в современных ОС (драйвер и порт, для Windows 3.1 :)
Скачайте Lister, киньте в с System32, в качестве команды используйте
Усе :)
Насчет последнего, как я понимаю, это не связано с темой статьи. Установщики сейчас сами запрашивают повышение. Надо конкретные программы и точные сообщения об ошибках в форуме смотреть.
jakv
Спасибо за ответы
Это то как раз описаны ключи для команд командной строки с ними все понятно, а как узнать ключи запуска таких например программ notepad, wordpad, explorer и т.п.
Это я понимаю, и если ситуация возникнет напишу конкретно
jakv
Вопрос можно сформулировать так: кроме описанных в выше указанном справочнике команд стандартная установка Windows cодержит еще массу программ. Если по ним справочник с описанием их назначения и параметров запуска?
jakv
Vadim Sterkin,
В обсуждении вашего следующего поста Tiunov Igor например говорит
Вот про такие ключи я и вел речь в предыдущем коменте. Где про них можно узнать?
Vadim Sterkin
jakv, в гугле можно все узнать запросом «название программы + command line options»
jakv
Vadim Sterkin,
Совет с гуглом конечно хороший, но есть маленькое но
я попробовал для explorer
первые три ссылки вели на разные статьи базы знаний
Код статьи: 130510 — Последнее изменение :: 28 ноября 2007 г
Код статьи: 152457 — Последнее изменение :: 3 июня 2011 г.
Код статьи: 314853 — Последнее изменение :: 7 июня 2011 г.
в них
Синтаксис
EXPLORER.EXE [/n][/e][,/root,][[,/select],]
ни в одной из них не упоминается ключ /separate
как же я мог узнать о его существовании?
Vadim Sterkin
Что ж, давайте учиться гуглить…
А вообще, на то и существует мой блог, чтобы вы узнавали из него что-то новое :)
jakv
не понял что хорошего в вашем примере. В первых десяти ссылок нашел лишь одно упоминание о ключе .separate, да и то лишь потому что знал о его существовании. Впрочем речь не о гугле. Когда я задавал вопрос я имел в виду нет ли где справочника в котором все это собрано в одном месте. Ну на нет и суда нет.
За блог отдельное спасибо, но всегда узнав новое хочется покопаться вокруг вдруг там тоже есть что-то интересное.
Vadim Sterkin
jakv, в моем примере хорошо то, что по первой ссылке результатов поиска обнаруживаются ключи проводника, в т.ч. separate. А если щелкнуть по единственной ссылке в том обсуждении, то находится еще больше.
Сопоставляя их с документированными ключами, вы можете увидеть разницу.
Понимаю, вы хотели объять необъятное. Может, такой и есть. Но раз речь не о гугле, то даже не знаю, что вам посоветовать :)
Мораль в том, что кто ищет, тот всегда найдет. И «копание вокруг» как раз подразумевает, что речь о гугле.
ozezy
Уважаемый Vadim Sterkin помогите плиз советом или делом,хочу добавить в контектное меню файов doc(Word) пункт Прочитать с Балаболкой. заранее спасибо
Vadim Sterkin
В соседней записи описано добавление пункта меню для запуска с обычными правами. Покажите мне, что вы попытались сделать, и я подскажу конкретнее.
Кирилл
Вадим-запустить консоль с правами админа из контексного меню реально)))
Средствами системы.
Vadim Sterkin
Спасибо, кэп! :)
Кирилл
хм…я почему то ожидал немного другого решения,но про vbs я как то не подумал)))
Мне вот интересно-почему глаголы контексного меню не употребляют ярлыки?
Я сначала пробовал переписать часть реестра,потом начал подумывать о новых cuid.
Но мне ваш вариант тоже понравился,на днях испробую.
Но таки чистую запись реестр так и не принял или не пробовали?
Надеюсь не сильно отвлекаю.
Не так много народа могут общаться на эту тему.в основном копипастеры которые не пытались вникнуть в суть.
Vadim Sterkin
Кирилл, если честно, я ничего не понял. Начните с внятного описания стоящей перед вами задачи.
Кирилл
Вадим,задачи как таковой нет.
Была цель-получить пункт контексного меню запуска консоли с правами админа.
Вариант runas к которому как правило все ссылаются не подходит-ввод пароля.
Я вообще увлекаюсь тем,что ковыряю реестр и с помощью него веду разного рода настройки.
Вот и попал на вашу тему,но по вашей ссылке был использован допсофт.
Я решил свою идею средствами системы,но когда посмотрел вашу ссылку то появилось пара мыслей.
Первая -добавить к своему варианту подавление диалогового окна,это vbs.
Попробую реализовать в своем твике(я обошелся средствами системы)
Второе- как именно (программно) связано ограничение по использованию пунктов с глаголом runas для cmd
Третье- перенять некоторые возможности вин8 для вин 7-но это я уже сам,сначала посмотрю что получится.
Так вот-вы не рассматривали возможность запуска консоли с правами админа из контексного меню? Я имею ввиду средствами ОС
Если да- то каким методом воспользовались?
свой вариант в ссыль не вкладываю- не пытаюсь как то похвалиться,это для себя.
Vadim Sterkin
Кириллл, а что значит «средствами ОС»? Разве VBS не средства ОС? :) Если бы скрипт был на CMD, вы бы считали его средствами ОС? Ну вот…
Для меня главное — эффективное решение задачи с минимальными усилиями. Если у меня в system32 лежит скрипт VBS, nircmd, ELE (нужное подчеркнуть), я все равно делаю это в системе.
Что касается вопроса, по-моему на него есть ответ в записи. Если нужно больше одного приложения запускать, см. утилиты.
В Windows 8 мне уже не нужно контекстное меню папки для вызова консоли. А с начального экрана или панели задач я запускаю так.
Кирилл
Сейчас попытаюсь сконцентрировать мысль:
1)средствами cmd,vbs это да,то что надо.
Я хотел избежать применения утилитт вроде nircmd, ELE (чисто ради посмотреть как получится) под этим я и подразумевал средствами ос
2)как это делается в вин 8 мне тоже понятно,
а вот
мне было интересно как именно организовано это ограничение,программно.
Как это работает понятно,процесс в подробностях хотелось узнать.
Vadim Sterkin
Кирилл, ставьте пробелы после знаков препинания, плиз (правила обсуждений).
Программно организовано очень просто — имя раздела реестра должно быть уникальным -> два одинаковых создать нельзя, потому что один runas уже есть.
Кирилл
Вадим,мы видимо друг друга не понимаем-то что нельзя создать два одинаковых раздела это я знаю.
Но мы уже почти точно можем понять мой опросы:
Вот как именно происходит невосприятие раздела-клона?
У меня по этому поводу две версии -первая,это то что система постоянно обращается к реестру в реальном времени и создание раздела-клона невозможно из за того,что ОС не может одновременно считать данные и,как следствие обратиться к директориям и файлам которые так же являются производными друг от друга с элементами реестра.
Ну как бы если раздел создан на производной от определенных данных (файлов и папок) то одновременное обращение к клону раздела и зависимому элементу невозможно,так как зависимый элемент уже занят ОС.
Тогда из под live такой маневр должен проходить.
Второй вариант-это какой либо мониторинг со стороны защитного функционала системы.
А по поводу того,что runas определенных разделов имеет приоритет-это мне кажется уже реализовано при написании глаголов и интерпретации их реестром.
Тут возникает еще вопрос-каким образом программируется интерпретация глаголов,ведь теоретически их и самому можно написать,главное что бы они воспринимались.
Что скажете?
Алексей
Здравствуйте, Вадим!
Хочу провернуть такое же для exe-файла, но на exe-файле в пункте меню нет пункта «Restore ownership».
Для всех других файлов есть!
Как мне сделать отображение пункта для exe-файлов?
Заранее спасибо.
Vadim Sterkin
Алексей, для начала я не вижу смысла в смене владельца системных файлов.
Алексей
Здравствуйте!
Это конечно не ответ.
Смыл в том, что нужно изменить ресурсы в том же explorer.exe
Например свою кнопку Пуск.
Поэтому нужно менять владельца на Администраторов, а потом восстанавливать обратно.
В х64 системе также он есть в C:\Windows\SysWOW64
Vadim Sterkin
Алексей, это как раз ответ, и могу еще раз повторить — не изменяйте системные файлы, и будет вам счастье.
Алексей
Здравствуйте!
Вместо «MUIVerb» можно просто параметр по умолчанию — @
«Icon»=»cmd.exe,0» — нужно указывать номер иконки.
[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Command Prompt Administrator"
"HasLUAShield"=""
"Icon"="cmd.exe,0"
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /k pushd \"%1\""
Vadim Sterkin
Алексей, можно, это унаследованная возможность. Современные рекомендации — MUIVerb.
P.S. В будущем используйте тег code на панели над комментарием для вставки кода.
Алексей
Вадим, у вас есть в меню «Открыть окно команд от имени администратора» — подскажите как это прописать?
Vadim Sterkin
Алексей, в общем, вся статья об этом. Попробуйте перечитать :) См. также Как открыть командную строку от имени администратора в нужной папке
Султан Каирбеков
Очень качественная статья, спасибо) С корневой папкой приходиться работать часто) скажи пожалуйста как создавать архив с сегоднешней датой?