как открыть файл для редактирования в режиме администратора?

<p>у меня есть файлы .config для открытия в notepad ++. файлы, которые я редактирую, обычно находятся в защищенных местах (например, c:\windows \, c:\program files ... и т.д.), что требует доступа администратора.</p><p>я хотел бы иметь возможность дважды щелкнуть файл .config и открыть notepad ++ с правами администратора. хорошо, если появится приглашение uac.</p><p>есть способ сделать это?</p>

<p>лучший способ - перейти прямо к папке, в которой установлен notepad ++ (program files для 32-битной windows и program files (x86) для 64-битной windows), там найти исполняемый файл notepad ++, щелкнуть по нему правой кнопкой мыши и выбрать совместимость, а внизу установите флажок запуск от имени администратора.</p><p>это сделает ваше приложение всегда всплывающим с предупреждением uac, но вы всегда сможете редактировать как администратор.</p><p>удачи!</p>

<p>я обнаружил, что поиск программы редактора (например, notepad ++) в меню "пуск", а затем набрав <kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>enter</kbd> позволяет запускать программу от имени администратора.</p><p>после этого вы сможете открывать и редактировать файл, который требует повышенных привилегий.</p>

<p>в качестве улучшения по сравнению с <a href="https://superuser.com/questions/219179/how-to-open-a-file-for-editing-in-administrator-mode/219182#219182">ответом @ аскели</a> , вы можете сначала сделать копию исполняемого файла notepad ++ (назовите его как-то как notepaduac). затем установите режим совместимости в свойствах вашей копии так, чтобы он требовал режима администратора, как предложено аскели. теперь у вас также должна быть возможность настроить файлы .config на открытие с использованием копии, а не оригинала.</p><p>преимущество в том, что вы не увидите подсказку uac при открытии файлов с исходным (по умолчанию) файлом notepad ++ .exe. недостатком является то, что эта копия не обязательно будет обновляться так же, как оригинал, и может в конечном итоге вызвать проблемы с несовпадающими версиями .dll или config. но это всегда достаточно легко удалить/переустановить, если это произойдет.</p>

<p>мое решение было<strong> прикрепить notepad ++ к панели задач. когда мне это нужно для редактирования системных файлов, я щелкаю на нем правой кнопкой мыши, нажимаю «блокнот ++» и нажимаю «запуск от имени администратора». </strong></p><p>другие решения, модифицирующие ярлык или создающие его копии, хороши, если вы все время редактируете системные файлы. я пользуюсь notepad ++ ежедневно, но я не связываюсь с защищенными файлами каждый день.</p>

<p>это не было доступно, когда первоначальный вопрос был опубликован в 2010 году, но по состоянию на 2012 год -<strong> лучший ответ </strong>(по крайней мере, как я считаю):</p><p><strong> установить nppsaveasadmin: </strong></p><p>от <a href="http://sourceforge.net/projects/nppsaveasadmin">http://sourceforge.net/projects/nppsaveasadmin</a> :</p><blockquote> <p>этот плагин позволяет сохранить любой файл от имени администратора. просто нажмите «сохранить» в notepad ++, и если вам не разрешено изменять этот файл как пользователь, notepad ++ сохранит его как администратор. windows xp, windows vista, windows 7, windows 8 поддерживаются.</p> </blockquote><p>плагин «сохранить как администратор» доступен для быстрой и простой установки из диспетчера плагинов notepad ++. (плагины/менеджер плагинов/показать диспетчер плагинов/доступно. отметьте «сохранить как администратор», нажмите «установить».)</p><p>notepad ++ будет продолжать работать как обычно, без необходимости использования полных административных токенов uac. однако, если notepad ++ обнаружит, что вы пытаетесь сохранить файл, к которому у вас нет других прав доступа, он преобразуется в nppadminaccess.exe (с отображением запроса uac). просто нажмите «да», и ваш файл будет сохранен с правами администратора.</p>

<ol> <li>скопируйте .exe вашего текстового редактора в ту же папку с программными файлами и добавьте «admin» или аналогичное имя.</li> <li>щелкните правой кнопкой мыши новый исполняемый файл -> свойства -> совместимость -> уровень привилегий -> отметьте «запускать эту программу от имени администратора»</li> <li>создайте ярлык для этого exe на вашем рабочем столе/панели задач/меню пуск</li> <li>перетащите текстовый файл, который вы хотите отредактировать как администратор (или ярлык на один) в этот ярлык</li> </ol><p>это самый простой/гибкий способ, который я нашел, когда я должен отредактировать файл hosts для веб-разработки. конечно, если вы просто хотите открыть все файлы с одним расширением от имени администратора, по предложению джоэла, вы можете просто использовать «открыть с помощью ...» -> «выбрать программу по умолчанию» в созданной вами копии.</p>

<p>лучший способ - настроить notepad ++ для запуска с правами администратора. проблема в том, что он нарушает выбор правой кнопки мыши. поэтому я сделал замену правой кнопки мыши, которая удаляет старую. приятной частью моего исправления является то, что я добавил его в настройках каталога в реестре. теперь вы можете щелкнуть правой кнопкой мыши по папке и выбрать «редактировать с помощью notepad ++», и она откроет все файлы в notepad ++ :). я много занимаюсь программированием на vbscript. это позволяет мне легко редактировать все мои файлы, внося глобальные изменения, когда я придумываю новый метод выполнения чего-либо или изменения объекта.</p><p>мой vbscript создает резервную копию ключей реестра, прежде чем он их меняет. он не устанавливает notepad ++ в качестве администратора, поэтому вы должны сделать это, щелкнув правой кнопкой мыши исполняемый файл notepad ++ и изменив его на запуск от имени администратора. я начинаю исследовать, как сделать это «запуск от имени администратора». когда я это сделаю, я отредактирую свой пост, чтобы он давал вам возможность редактировать в качестве администратора или редактировать в обычном режиме.</p><pre><code>'========================================================================================== ' name: new-openwithnotepad++(winvista7).vbs ' edited: kevin dondrea , gordos-dondrea enterprises and foundation ' date : 8/12/2012 ' comment: this script exports registry keys and replaced notepad++ right click options. ' works with windows vista and 7. also works for restricted win xp accounts. ' web link: '========================================================================================== option explicit ' =============== start add admin rights =============== ' this adds the admin run function for windows vista and 7 ' you must put this at the top below computer and end if at the ' very end of the script if wscript.arguments.length = 0 then set objshell = createobject("shell.application") objshell.shellexecute "wscript.exe", """" & \_ wscript.scriptfullname & """" &\_ " runasadministrator", , "runas", 1 else ' do not forget to add end if at the end of the script ' =============== end add admin rights =============== on error resume next ' =============== start constant variables =============== const hkey\_classes\_root = &h80000000 const hkey\_current\_user = &h80000001 const hkey\_local\_machine = &h80000002 const hkey\_users = &h80000003 ' =============== end constant variables =============== ' =============== start dim variables =============== dim objfso, objwrite2file, objshell, objreg, objregistry, objwshshell dim strdate, strtime, strtime2, strfilename, stropenfile dim strcomputer, strcommand, strhostname, strusername dim intrc, strkeypath, strvaluename, strvalue ' =============== end dim variables =============== ' -------------------------------------------------------------------------- ' =============== start computer name, time and date =============== strcomputer = "." ' reads registry for computer name set objshell = createobject("wscript.shell") ' edit or add with registrry object set objreg=getobject("winmgmts:{impersonationlevel=impersonate}!\\" & \_ strcomputer & "\root\default:stdregprov") ' same as above but used only to delete registry key set objregistry=getobject("winmgmts:\\" & \_ strcomputer & "\root\default:stdregprov") strhostname = objshell.regread ("hklm\system\currentcontrolset\services\" & \_ "tcpip\parameters\hostname") strusername = objshell.regread ("hklm\software\microsoft\windows nt\" & \_ "currentversion\winlogon\defaultusername") ' retreives date and time strtime = right("0" & hour(now()), 2) & right("00" & \_ minute(now()), 2) & second(now()) strtime2 = right("0" & hour(now()), 2) & ":" & right("00" & ":" & \_ minute(now()), 2) & ":" & second(now()) strdate = right("0" & month(now()), 2) & "-" & right("00" & \_ day(now()), 2) & "-" & year(now()) ' ----------------------------------------------------------- ' =============== start backup of registry keys used for =============== ' original command ' strcommand = "regedit /e <filepath> <regkey>" ' local machine ...... strcommand = "regedit /e " & strhostname & "-" & strdate & "-" & \_ strtime & "-backuplm-notepad++.reg " & \_ """hkey\_local\_machine\software\classes" & \_ "\clsid\{00f3c2ec-a6ee-11de-a03a-ef8f55d89593}""" set objwshshell = wscript.createobject("wscript.shell") intrc = objwshshell.run(strcommand, 0, true) if intrc <> 0 then wscript.echo "error returned from exporting registry: " & intrc else wscript.echo "no errors returned from exporting the registry file" end if ' =============== end backup of registry keys used for =============== ' ----------------------------------------------------------- ' =============== start new open * shell command =============== ' name of registry entry key\path strkeypath = "*\shell\edit with notepad++\command" objreg.createkey hkey\_classes\_root,strkeypath ' name of registry entry string strvaluename = "" strvalue = "c:\progra~1\notepad++\notepad++.exe %1" objreg.setstringvalue hkey\_classes\_root,strkeypath,null,strvalue ' =============== start new open directory shell command =============== ' name of registry entry key\path strkeypath = "directory\shell\edit with notepad++\command" objreg.createkey hkey\_classes\_root,strkeypath ' name of registry entry string strvaluename = "" strvalue = "c:\progra~1\notepad++\notepad++.exe %1" objreg.setstringvalue hkey\_classes\_root,strkeypath,null,strvalue ' ----------------------------------------------------------- strkeypath = "*\shellex\contextmenuhandlers\anotepad++" objregistry.deletekey hkey\_classes\_root,strkeypath strkeypath = "software\classes\clsid\{00f3c2ec-a6ee-11de-a03a-ef8f55d89593}\settings" objregistry.deletekey hkey\_local\_machine,strkeypath ' ending message msgbox"notepad++ right-click settings" & vbcrlf & \_ "have been created", ,"click ok to close window" ' cleans up variables from memory set objfso = nothing set objwrite2file = nothing set objshell = nothing set objreg = nothing set objregistry = nothing set objwshshell = nothing set strdate = nothing set strtime = nothing set strtime2 = nothing set strfilename = nothing set stropenfile = nothing set strcomputer = nothing set strcommand = nothing set strhostname = nothing set strusername = nothing set intrc = nothing set strkeypath = nothing set strvaluename = nothing set strvalue = nothing end if </code></pre>

<p>удалите плагины (кроме менеджера плагинов). это решило проблему для меня. вы можете установить один плагин за раз, чтобы увидеть, какой плагин (ы) вызывает проблемы.</p>

<p>следующее решение на самом деле не учитывает сценарий двойного щелчка, но дает вам возможность выбора (и технически это также два щелчка):</p><p>вы можете добавить пункт меню «запуск от имени администратора» в контекстное меню оболочки для каждого типа файлов (или, скорее, для каждой программы). смотрите <a href="http://www.howtogeek.com/howto/windows-vista/add-run-as-administrator-to-any-file-type-in-windows-vista/">эту статью</a> для деталей о твике реестра.</p>

<p>еще одно решение - открыть «пуск», найти приложение «блокнот» и щелкнуть по нему правой кнопкой мыши. затем нажмите «запуск от имени администратора».</p><p>теперь вы можете просматривать файловую систему (через «блокнот/файл/открыть ...») для файла, который вы хотите редактировать.</p>