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

49

У меня есть файлы .config для открытия в Notepad ++. Файлы, которые я редактирую, обычно находятся в защищенных местах (например, c: \ windows \, ​​c: \ program files ... и т. Д.), Что требует доступа администратора.

Я хотел бы иметь возможность дважды щелкнуть файл .config и открыть Notepad ++ с правами администратора. Хорошо, если появится приглашение UAC.

Есть ли способ сделать это?

AngryHacker
источник

Ответы:

53

Лучший способ - перейти прямо к папке, в которой установлен Notepad ++ (Program Files для 32-битной Windows и Program Files (x86) для 64-битной Windows), там найти исполняемый файл Notepad ++, щелкнуть по нему правой кнопкой мыши и выбрать Совместимость, а внизу установите флажок Запуск от имени администратора.

Это сделает ваше приложение всегда всплывающим с предупреждением UAC, но вы всегда сможете редактировать как администратор.

Удачи!

РЕДАКТИРОВАТЬ: нашел эту статью, которая позволяет вам создать ярлык без запуска приглашения UAC. Технически это для Windows 10, но должно работать так же на Win7 +.

Akseli
источник
2
Мы можем улучшить это, сделав копию exe-файла Notepad ++ и установив только копию для запуска в качестве администратора. Таким образом, обычный блокнот ++ не будет предлагать вам каждый раз.
Джоэл Кохорн
8
@JoelCoehoorn Это можно сделать с помощью ярлыка вместо полной копии исполняемого файла (перейдите к Advanced...кнопке на Shortcutвкладке окна свойств ярлыка, чтобы включить его), таким образом, если вы обновите notepad ++, он обновит как ваш не повышенный, так и ваш повышенные ярлыки.
Скотт Чемберлен
и как superuser.com/a/1462628/193963 поместите оба ярлыка в меню оболочки sendto
Бернхард
19

Я обнаружил, что поиск программы-редактора (например, Notepad ++) в меню «Пуск», а затем ввод Ctrl+ Shift+ Enterпозволяет запустить программу от имени администратора.

После этого вы сможете открывать и редактировать файл, который требует повышенных привилегий.

elolos
источник
3
Это не совсем ответ на этот вопрос, поскольку он спрашивает, как открыть файл для редактирования с повышенными привилегиями.
Der Hochstapler
Вы правы, вы открываете файл из редактора таким способом, а не двойным щелчком мыши.
elolos
12

В качестве улучшения по сравнению с ответом @ Аскели , вы можете сначала сделать копию исполняемого файла notepad ++ (назовите его как-то как NotepadUAC). Затем установите режим совместимости в свойствах вашей копии так, чтобы он требовал режима администратора, как предложено Аскели. Теперь у вас также должна быть возможность настроить файлы .config на открытие с использованием копии, а не оригинала.

Преимущество здесь в том, что вы не увидите приглашение UAC при открытии файлов с исходным (по умолчанию) файлом Notepad ++ .exe. Недостатком является то, что эта копия не обязательно будет обновляться так же, как оригинал, и может в конечном итоге вызвать проблемы с несовпадающими версиями .dll или config. Но это всегда достаточно легко удалить / переустановить, если это произойдет.

Джоэл Коухорн
источник
Предложение @ akseli работает, однако я все еще вижу подсказку UAC. Во всяком случае, я могу жить с этим.
AngryHacker
10

Моим решением было закрепить Notepad ++ на панели задач. Когда мне это нужно для редактирования системных файлов, я щелкаю на нем правой кнопкой мыши, нажимаю «Блокнот ++» и нажимаю «Запуск от имени администратора».

Другие решения, модифицирующие ярлык или создающие его копии, хороши, если вы все время редактируете системные файлы. Я пользуюсь Notepad ++ ежедневно, но я не связываюсь с защищенными файлами каждый день.

Marlon
источник
6

Это не было доступно, когда первоначальный вопрос был опубликован в 2010 году, но по состоянию на 2012 год - лучший ответ (по крайней мере, на мой взгляд):

Установите nppSaveAsAdmin:

С http://sourceforge.net/projects/nppsaveasadmin :

Этот плагин позволяет сохранить любой файл от имени администратора. Просто нажмите «Сохранить» в Notepad ++, и если вам не разрешено изменять этот файл как пользователь, Notepad ++ сохранит его как администратор. Windows XP, Windows Vista, Windows 7, Windows 8 поддерживаются.

Плагин «Сохранить как администратор» доступен для быстрой и простой установки из диспетчера плагинов Notepad ++. (Плагины / Менеджер плагинов / Показать диспетчер плагинов / Доступно. Отметьте «Сохранить как администратор», нажмите «Установить».)

Notepad ++ будет продолжать работать как обычно, без необходимости использования полных административных токенов UAC. Однако, если Notepad ++ обнаружит, что вы пытаетесь сохранить файл, к которому у вас нет других прав доступа, он преобразуется в NppAdminAccess.exe (с отображением приглашения UAC). Просто нажмите «Да», и ваш файл будет сохранен с правами администратора.

ziesemer
источник
2
  1. Скопируйте .exe вашего текстового редактора в ту же папку с программными файлами и добавьте «Admin» или аналогичное имя.
  2. Щелкните правой кнопкой мыши новый исполняемый файл -> Свойства -> Совместимость -> Уровень привилегий -> Отметьте «Запускать эту программу от имени администратора»
  3. Создайте ярлык для этого exe на вашем рабочем столе / панели задач / меню Пуск
  4. Перетащите текстовый файл, который вы хотите отредактировать как Администратор (или ярлык на один) в этот ярлык

Это самый простой / гибкий способ, который я нашел, когда я должен отредактировать файл hosts для веб-разработки. Конечно, если вы просто хотите открыть все файлы с одним расширением от имени администратора, по предложению Джоэла, вы можете просто использовать «открыть с помощью ...» -> «Выбрать программу по умолчанию» в созданной вами копии.

штифтик
источник
1

Удалите плагины (кроме менеджера плагинов). Это решило проблему для меня. Вы можете установить один плагин за раз, чтобы увидеть, какой плагин (ы) вызывает проблемы.

Notepadpp студент пользователя
источник
1

Следующее решение на самом деле не учитывает сценарий двойного щелчка, но дает вам возможность выбора (и технически это также два щелчка):

Вы можете добавить пункт меню «Запуск от имени администратора» в контекстное меню оболочки для каждого типа файлов (или, скорее, для каждой программы). См. Эту статью для деталей о настройке реестра.

ctusch
источник
1
@Ramhound Не могли бы вы заценить связанную статью и переосмыслить свое отрицательное мнение? Или, альтернативно, укажите, на какой ответ вы ссылаетесь? Ответ Аксели всегда будет вызывать UAC. Для ответа Джоэла Кехорна требовалась копия файла .exe (который, как он упоминал, не будет автоматически обновляться). Также он всегда будет запускать UAC для определенного типа файлов. Ответ Марлона просто запускает программу от имени администратора, вам все равно нужно открыть файл вручную в Notepad ++. И Notepadpp Studend ответ пользователя не по теме AFAICT.
ctusch
1

Лучший способ - настроить Notepad ++ для запуска с правами администратора. Проблема в том, что он нарушает выбор правой кнопки мыши. Поэтому я сделал замену правой кнопки мыши, которая удаляет старую. Приятной частью моего исправления является то, что я добавил его в настройки каталога в реестре. Теперь вы можете щелкнуть правой кнопкой мыши по папке и выбрать «Редактировать с помощью Notepad ++», и она откроет все файлы в Notepad ++ :). Я много занимаюсь программированием на VBScript. Это позволяет мне легко редактировать все мои файлы, внося глобальные изменения, когда я придумываю новый метод выполнения чего-либо или изменения объекта.

Мой VBScript создает резервную копию ключей реестра, прежде чем он их меняет. Он не устанавливает Notepad ++ в качестве администратора, поэтому вы должны сделать это, щелкнув правой кнопкой мыши исполняемый файл Notepad ++ и изменив его на запуск от имени администратора. Я начинаю исследовать, как сделать это «Запуск от имени администратора». Когда я это сделаю, я отредактирую свой пост, чтобы он давал вам возможность редактировать в качестве администратора или редактировать в обычном режиме.

'==========================================================================================
' 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

Kevin
источник
0

Еще одно решение - открыть «Пуск», найти приложение «Блокнот» и щелкнуть по нему правой кнопкой мыши. Затем нажмите «Запуск от имени администратора».

Теперь вы можете просматривать файловую систему (через «Блокнот / Файл / Открыть ...») для файла, который вы хотите редактировать.

Жером
источник
0

просто простой и эффективный метод:

  1. создать ярлык на рабочем столе (c: \ program files \ notepad ++ \ notpad ++. exe -> щелчок правой кнопкой мыши -> sendto -> рабочий стол)
  2. создайте копию этого ярлыка и добавьте _ADMIN в ярлык
  3. щелкните правой кнопкой мыши ярлык _ADMIN - свойства - ярлык - кнопка «Дополнительно» - установите флажок «Запуск от имени администратора»
  4. откройте проводник и введите «shell: sendto»
  5. перетащите оба ярлыка в открытую папку

теперь у вас есть и блокнот ++, и блокнот ++ _ ADMIN в списке «SendTo» для любого файла.

Shell contextmenu

Бернхард
источник