¿Cómo abrir un archivo para editarlo en modo Administrador?

49

Tengo archivos .config configurados para abrir en Notepad ++. Los archivos que edito están típicamente en ubicaciones protegidas (por ejemplo, c: \ windows \, ​​c: \ program files ..., etc.), por lo que requieren acceso de administrador.

Me gustaría poder hacer doble clic en un archivo .config y tener Notepad ++ abierto con privilegios de administrador. Está bien si aparece el aviso de UAC.

¿Hay una manera de hacerlo?

AngryHacker
fuente

Respuestas:

53

La mejor manera de hacerlo es ir directamente a la carpeta en la que está instalado Notepad ++ (Archivos de programa para Windows de 32 bits y Archivos de programa (x86) para Windows de 64 bits), allí, encuentre el ejecutable de Notepad ++, haga clic derecho sobre él y seleccione Compatibilidad, y en la parte inferior marque la casilla Ejecutar como administrador.

Esto hará que su aplicación siempre aparezca con una advertencia de UAC, pero siempre tendrá la capacidad de editar como administrador.

¡Buena suerte!

EDITAR: Encontré este artículo que le permite crear el acceso directo sin iniciar el indicador UAC. Técnicamente es para Windows 10, pero debería funcionar de la misma manera en Win7 +.

akseli
fuente
2
Podemos mejorar esto haciendo una copia del archivo exe Notepad ++ y configurando solo la copia para que se ejecute como administrador. De esta manera, el bloc de notas normal ++ no te preguntará siempre.
Joel Coehoorn
8
@JoelCoehoorn Eso se puede hacer a través de un acceso directo en lugar de una copia completa del exe (vaya al Advanced...botón en la Shortcutpestaña de la ventana de propiedades del acceso directo para habilitarlo), de esa manera si actualiza notepad ++ actualizará tanto su no elevado como su atajos elevados.
Scott Chamberlain
y, como superuser.com/a/1462628/193963, ponga ambos accesos directos al menú de envío de shell
Bernhard
19

Descubrí que buscar el programa editor (por ejemplo, Notepad ++) en el menú Inicio y luego escribir Ctrl+ Shift+ le Enterpermite ejecutar el programa como administrador.

Entonces debería poder abrir y editar el archivo que requiere privilegios elevados.

elolos
fuente
3
Sin embargo, esa no es realmente una respuesta a la pregunta, ya que pregunta cómo abrir un archivo para editarlo con privilegios elevados.
Der Hochstapler
Tienes razón, abres el archivo desde el editor de esta manera y no con doble clic.
elolos
12

Como una mejora con respecto a la respuesta de @ Askeli , primero puede hacer una copia del ejecutable notepad ++ (asígnele un nombre similar a NotepadUAC). Luego configure el modo de compatibilidad en las propiedades de su copia para requerir el modo de administrador como lo sugiere Askeli. Ahora también debería poder configurar sus archivos .config para que se abran usando la copia en lugar del original.

La ventaja aquí es que no verá el aviso de UAC al abrir archivos con el archivo original (predeterminado) Notepad ++ .exe. La desventaja es que esta copia no necesariamente se mantendrá actualizada de la misma manera que la original, y eventualmente podría causar problemas con las versiones .dll o config no coincidentes. Pero siempre es bastante fácil desinstalar / reinstalar si eso sucede.

Joel Coehoorn
fuente
La sugerencia de @ akseli funciona, sin embargo, todavía veo el aviso de UAC. De todos modos, puedo vivir con eso.
AngryHacker
10

Mi solución fue anclar Notepad ++ a la barra de tareas. Cuando lo necesito para editar archivos del sistema, hago clic derecho en él, en "Notepad ++" y en "Ejecutar como administrador".

Las otras soluciones que modifican el acceso directo o hacen copias de él están bien si está editando archivos del sistema todo el tiempo. Uso Notepad ++ diariamente pero no me meto con archivos protegidos todos los días.

Marlon
fuente
6

Esto no estaba disponible cuando se publicó la pregunta original en 2010, pero a partir de 2012, la mejor respuesta (al menos según lo considero):

Instale nppSaveAsAdmin:

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

Este complemento le permite guardar cualquier archivo como administrador. Simplemente presione "Guardar" en Notepad ++ y si no tiene permiso para cambiar este archivo como usuario, Notepad ++ lo guardará como administrador. Windows XP, Windows Vista, Windows 7, Windows 8 son compatibles.

El complemento "Guardar como administrador" está disponible para una instalación rápida y fácil desde el Administrador de complementos de Notepad ++. (Complementos / Administrador de complementos / Mostrar administrador de complementos / Disponible. Marque "Guardar como administrador", haga clic en "Instalar").

Notepad ++ continuará ejecutándose como de costumbre, y sin necesidad de ejecutarse con tokens UAC administrativos completos. Sin embargo, si Notepad ++ ve que está intentando guardar un archivo al que de otro modo no se le permitiría acceder, se bifurcará a NppAdminAccess.exe (que muestra un mensaje UAC). Simplemente haga clic en "Sí", y su archivo se guardará con privilegios administrativos.

ziesemer
fuente
2
  1. Haga una copia del archivo .exe de su editor de texto en la misma carpeta de archivos de programa y agregue "Admin" o similar al nombre.
  2. Haga clic derecho en el nuevo exe -> Propiedades -> Compatibilidad -> Nivel de privilegio -> Marque "Ejecutar este programa como administrador"
  3. Cree un acceso directo a este exe en su escritorio / barra de tareas / menú de inicio
  4. Arrastre el archivo txt que desea editar como Administrador (o acceso directo a uno) en este acceso directo

Es la forma más fácil / flexible que he encontrado para hacer esto cuando tengo que editar el archivo hosts para el desarrollo web. Por supuesto, si solo desea abrir todos los archivos de una extensión como administrador, según la sugerencia de Joel, puede usar "abrir con ..." -> "Elegir programa predeterminado" en la copia que creó.

Puntilla
fuente
1

Desinstale los complementos (excepto el administrador de complementos). Esto solucionó el problema para mí. Puede instalar un complemento a la vez para ver qué complemento (s) causa problemas.

usuario estudiante notepadpp
fuente
1

La siguiente solución realmente no permite el escenario de doble clic, pero le da el poder de elección (y técnicamente también son dos clics):

Puede agregar un elemento de menú 'Ejecutar como administrador' al menú contextual del shell por tipo de archivo (o más bien por programa). Consulte este artículo para obtener detalles sobre la modificación del registro.

ctusch
fuente
1
@Ramhound ¿Le importaría revisar el artículo vinculado y repensar su voto negativo? ¿O, alternativamente, señala a qué respuesta te refieres? La respuesta de akseli siempre activará UAC. La respuesta de Joel Coehoorn necesitaba una copia del archivo .exe (que no se actualizará automáticamente, como mencionó). Además, siempre activará UAC para el tipo de archivo específico. La respuesta de Marlon solo inicia el programa como administrador, aún necesita abrir el archivo manualmente en Notepad ++. Y la respuesta del usuario de notepadpp studend está fuera de tema AFAICT.
ctusch
1

La mejor manera es configurar Notepad ++ para que se ejecute como administrador. El problema con eso es que rompe la opción de clic derecho. Así que hice un reemplazo a la opción de clic derecho que elimina la anterior. La mejor parte de mi solución es que lo agregué a la configuración del Directorio en el Registro. Entonces, ahora puede hacer clic derecho en una carpeta y elegir Editar con Notepad ++ y se abrirán todos los archivos en Notepad ++ :). Hago mucha programación VBScript. Eso me facilita editar todos mis archivos haciendo cambios globales cuando se me ocurre un nuevo método para hacer algo o cambiar un objeto.

Mi VBScript realiza una copia de seguridad de las claves del registro antes de cambiarlas. No configura Notepad ++ como administrador, por lo que debe hacerlo haciendo clic derecho en el ejecutable de Notepad ++ y cambiándolo para que se ejecute como administrador. Estoy empezando a investigar sobre cómo hacer que esto se ejecute como administrador. Cuando se me ocurra eso, editaré mi publicación para que te dé la opción de editar como Administrador o editar normalmente.

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

Otra solución es abrir el "Menú de inicio", buscar la aplicación Bloc de notas y hacer clic derecho. Luego haga clic en "Ejecutar como administrador".

Ahora puede explorar el sistema de archivos (a través de "Bloc de notas / Archivo / Abrir ...") para el archivo que desea editar.

Jérôme
fuente
0

solo un método simple y efectivo:

  1. crear un acceso directo en el escritorio (c: \ archivos de programa \ notepad ++ \ notpad ++. exe -> clic derecho -> sendto -> escritorio)
  2. cree una copia de ese acceso directo y agregue _ADMIN al acceso directo
  3. haga clic derecho en el acceso directo _ADMIN - propiedades - acceso directo - botón avanzado - marque "ejecutar como administrador"
  4. abra un explorador de archivos y escriba "shell: sendto"
  5. arrastre y suelte ambos accesos directos a la carpeta abierta

ahora tiene notepad ++ y notepad ++ _ ADMIN en su lista "SendTo" para cualquier archivo.

Shell contextmenu

Bernhard
fuente