it-swarm-ru.tech

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

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

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

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

49
AngryHacker

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

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

Удачи!

53
akseli

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

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

19
elolos

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

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

12
Joel Coehoorn

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

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

10
Marlon

Это не было доступно, когда первоначальный вопрос был опубликован в 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). Просто нажмите «Да», и ваш файл будет сохранен с правами администратора.

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

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

2
Brad

Лучший способ - настроить 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
1
Kevin

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

1
notepadpp student user

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

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

1
ctusch

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

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

0
Jérôme