2010-12-06 21:54:08 +0000 2010-12-06 21:54:08 +0000
51
51
Advertisement

如何在管理员模式下打开文件进行编辑?

Advertisement

我将.config文件设置为在Notepad++中打开。我编辑的文件通常在受保护的位置(例如c:\windows\, c:\program files…, 等等),因此需要管理员权限。

我希望能够双击一个.config文件,然后用管理员权限打开Notepad++。如果出现UAC提示就可以了。

有什么方法可以做到吗?

Advertisement

答案 (11)

54
54
54
2010-12-06 21:59:56 +0000

最好的方法是直接进入安装Notepad++的文件夹(32位Windows的Program Files和64位Windows的Program Files(x86)),在那里找到Notepad++的可执行文件,右击它,然后选择Compatibility,在底部勾选Run as administrator。

这将使你的应用程序总是弹出一个UAC警告,但你总是可以以管理员身份编辑。

祝你好运

编辑:找到了这篇文章它允许你在不启动UAC提示的情况下创建快捷方式。从技术上讲,它适用于Windows 10,但在Win7+上应该以同样的方式工作。

19
19
19
2012-08-31 10:15:27 +0000

我发现在 “开始 "菜单中搜索编辑器程序(如Notepad++),然后输入Ctrl+Shift+Enter可以让你以管理员身份运行该程序。

然后你应该可以打开和编辑需要提升权限的文件。

11
Advertisement
11
11
2010-12-06 22:10:52 +0000

作为对 @Askeli 的回答 的改进,你可以先制作一个 notepad++ 可执行文件的副本(命名为 NotepadUAC)。然后按照Askeli的建议,在副本的属性中设置兼容性模式为需要管理员模式。现在你应该也可以设置你的.配置文件使用副本而不是原版打开。

这里的好处是,当你用原来的(默认)Notepad++ .exe文件打开文件时,你不会看到UAC提示。缺点是这个副本不一定会像原始文件一样保持更新,最终可能会导致.dll或配置版本不匹配的问题。但如果发生这种情况,卸载/重新安装总是很容易的。

10
10
10
2010-12-07 05:14:49 +0000

我的解决办法是把记事本++钉在任务栏上。当我需要它编辑系统文件时,我就右击它,点击 “记事本++",然后点击 "以管理员身份运行”.

如果你一直在编辑系统文件的话,其他的解决方案修改快捷方式或者复制快捷方式都可以。我每天都用记事本++,但我不会每天都搞保护文件。

6
Advertisement
6
6
2014-11-04 16:01:38 +0000

当2010年发布原始问题时,这还没有,但截至2012年–最佳答案(至少我认为是这样):

安装nppSaveAsAdmin:

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

这个插件允许你将任何文件保存为管理员。只需在Notepad++中按下 “保存 "键,如果你不允许以用户身份更改该文件,Notepad++将以管理员身份保存。支持Windows XP、Windows Vista、Windows 7、Windows 8。

"保存为管理员 "插件可以从Notepad++插件管理器中快速方便地安装。(插件/插件管理器/显示插件管理器/可用。勾选 "保存为管理员",点击 "安装")。)

Notepad++将继续像往常一样运行,而且不需要使用完整的管理UAC令牌运行。然而,如果Notepad++看到你试图保存一个你不允许访问的文件,它将分叉到NppAdminAccess.exe(显示一个UAC提示)。只要点击 "是",你的文件就会以管理权限保存。

2
2
2
2012-12-31 20:24:09 +0000
  1. 将你的文本编辑器的.exe复制到同一个程序文件夹中,并在名称中附加 “Admin "或类似的内容。
  2. 右键点击新的exe->属性->兼容性->权限级别->选中 "以管理员身份运行此程序”
  3. 在你的桌面/任务栏/开始菜单上为这个exe创建一个快捷方式
  4. 将你想以管理员身份编辑的txt文件(或快捷方式)拖到这个快捷方式中

这是我发现的最简单/最灵活的方法,当我必须为网站开发编辑hosts文件时。当然如果你只是想以管理员的身份打开一个扩展名的所有文件,按照Joel的建议,你可以直接使用 “用…打开” ->“选择默认程序 "在你创建的副本上。

1
Advertisement
1
1
2013-10-23 11:04:56 +0000

最好的方法是将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
1
1
2012-02-16 19:10:28 +0000

卸载插件(除了插件管理器)。这为我解决了问题。你可以一次安装一个插件,看看是哪个插件导致的问题。

1
Advertisement
1
1
2012-08-27 12:50:03 +0000

下面的解决方案并不真正允许双击方案,但它给了你选择的权力(技术上也是两次点击):

你可以在shell上下文菜单中添加一个 “以管理员身份运行 "菜单项,以每个文件类型(或者说每个程序)为基础。关于注册表调整的细节,请参见 本文

1
1
1
2019-07-22 11:27:37 +0000

只是一个简单有效的方法。

  1. 在桌面上创建一个快捷方式(c:program files/notepad++/notpad++.exe ->右键 -> sendto ->桌面)
  2. 创建一个该快捷方式的副本,并在该快捷方式中添加 _ADMIN
  3. 右击该快捷方式-属性-快捷方式-按钮高级-勾选 “以管理员身份运行 ” 4.打开一个文件资源管理器并输入 “shell:sendto ” 5.将这两个快捷方式拖放到打开的文件夹中

现在你的 “SendTo "列表中的任何文件都有notepad++和notepad++_ADMIN。

0
Advertisement
0
0
2013-10-15 07:21:17 +0000

另一种解决方法是打开 “开始菜单",搜索记事本应用,右键点击。然后点击 "以管理员身份运行"。

现在你可以浏览文件系统(通过 "记事本/文件/打开……"),寻找你要编辑的文件。

Advertisement
Advertisement