web-dev-qa-db-fra.com

Comment ouvrir un fichier pour le modifier en mode Administrateur?

J'ai des fichiers .config configurés pour s'ouvrir dans Notepad ++. Les fichiers que je modifie se trouvent généralement dans des emplacements protégés (par exemple, c:\windows \, ​​c:\fichiers de programme, etc.), nécessitant ainsi un accès administrateur.

J'aimerais pouvoir double-cliquer sur un fichier .config et faire ouvrir Notepad ++ avec les privilèges d'administrateur. C'est bien si l'invite UAC apparaît.

Y-a-t-il un moyen de faire ça?

49
AngryHacker

La meilleure façon de procéder consiste à accéder directement au dossier dans lequel Notepad ++ est installé (Program Files pour Windows 32 bits et Program Files (x 86) pour Windows 64 bits). Recherchez l’exécutable de Notepad ++, cliquez dessus, puis sélectionnez Compatibilité, et en bas, cochez la case Exécuter en tant qu’administrateur.

Votre application apparaîtra toujours avec un avertissement UAC, mais vous aurez toujours la possibilité d’éditer en tant qu’administrateur.

Bonne chance!

53
akseli

J'ai trouvé cette recherche du programme d'édition (par exemple, Notepad ++) dans le menu Démarrer, puis en tapant Ctrl+Shift+Enter vous permet d'exécuter le programme en tant qu'administrateur.

Vous devriez alors pouvoir ouvrir et éditer le fichier qui requiert des privilèges élevés.

19
elolos

Comme une amélioration par rapport à @ Askeli , vous pouvez d’abord faire une copie du bloc-notes exécutable notepad ++ (nommez-le comme NotepadUAC). Ensuite, définissez le mode de compatibilité dans les propriétés de votre copie pour exiger le mode administrateur, comme suggéré par Askeli. Maintenant, vous devriez également pouvoir configurer vos fichiers .config pour qu'ils s'ouvrent en utilisant la copie plutôt que l'original.

L'avantage ici est que vous ne verrez pas l'invite UAC lors de l'ouverture de fichiers avec le fichier Notepad ++ .exe d'origine (par défaut). L'inconvénient est que cette copie ne va pas nécessairement se tenir à jour de la même manière que l'original et pourrait éventuellement poser problème avec des versions .dll ou config incompatibles. Mais il est toujours assez facile de désinstaller/réinstaller si cela se produit.

12
Joel Coehoorn

Ma solution consistait à épingler Notepad ++ dans la barre des tâches. Lorsque j'en ai besoin pour éditer les fichiers système, je clique dessus avec le bouton droit de la souris, clique sur "Notepad ++", puis sur "Exécuter en tant qu'administrateur".

Les autres solutions de modification du raccourci ou de copie de celui-ci conviennent si vous modifiez constamment des fichiers système. J'utilise Notepad ++ quotidiennement, mais je ne plaisante pas avec les fichiers protégés tous les jours.

10
Marlon

Ce n'était pas disponible lorsque la question initiale a été publiée en 2010, mais à partir de 2012 - le meilleure réponse (du moins telle que je la considère):

Installez nppSaveAsAdmin:

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

Ce plugin vous permet de sauvegarder n’importe quel fichier en tant qu’administrateur. Appuyez simplement sur "Enregistrer" dans Notepad ++ et si vous n'êtes pas autorisé à modifier ce fichier en tant qu'utilisateur, Notepad ++ l'enregistre en tant qu'administrateur. Windows XP, Windows Vista, Windows 7 et Windows 8 sont pris en charge.

Le plug-in "Enregistrer en tant qu'administrateur" est disponible pour une installation rapide et facile à partir du Notepad ++ Plugin Manager. (Plugins/Gestionnaire de plugins/Afficher le gestionnaire de plugins/Disponible. Cochez "Enregistrer en tant qu'administrateur", cliquez sur "Installer".)

Notepad ++ continuera à fonctionner comme d'habitude, et sans avoir besoin de s'exécuter avec des jetons UAC administratifs complets. Toutefois, si Notepad ++ constate que vous essayez de sauvegarder un fichier auquel vous ne pouvez accéder autrement, il se transformera en NppAdminAccess.exe (affichant une invite UAC). Cliquez simplement sur "Oui" et votre fichier sera sauvegardé avec les privilèges d'administrateur.

6
ziesemer
  1. Faites une copie du fichier .exe de votre éditeur de texte dans le même dossier de fichiers de programme et ajoutez «Admin» ou similaire au nom.
  2. Faites un clic droit sur le nouvel exe -> Propriétés -> Compatibilité -> Niveau de privilège -> Vérifier "Exécuter ce programme en tant qu'administrateur"
  3. Créez un raccourci vers cet exe sur votre bureau/barre de tâches/menu de démarrage
  4. Faites glisser un fichier txt que vous souhaitez modifier en tant qu'administrateur (ou un raccourci vers un) dans ce raccourci

C’est la manière la plus simple et la plus souple que j’ai trouvée de le faire lorsque je dois éditer le fichier hosts pour le développement Web. Bien sûr, si vous voulez seulement ouvrir tous les fichiers d'une extension en tant qu'administrateur, selon la suggestion de Joel, vous pouvez simplement utiliser les options "Ouvrir avec ..." -> "Choisir le programme par défaut" sur la copie que vous avez créée.

2
Brad

Le meilleur moyen consiste à configurer Notepad ++ pour qu'il s'exécute en tant qu'administrateur. Le problème, c’est qu’il casse l’option clic droit. J'ai donc fait un remplacement à l'option clic droit qui supprime l'ancien. La partie sympa de mon correctif est que je l’ajoute au paramètre Répertoire du registre. Alors maintenant, vous pouvez cliquer avec le bouton droit de la souris sur un dossier et choisir Éditer avec Notepad ++ pour ouvrir tous les fichiers de Notepad ++ :). Je fais beaucoup de programmation VBScript. Cela me permet de modifier facilement tous mes fichiers en effectuant des modifications globales lorsque je propose une nouvelle méthode pour modifier ou modifier un objet.

Mon VBScript sauvegarde les clés de registre avant de les modifier. Notepad ++ n'est pas défini en tant qu'administrateur. Vous devez le faire en cliquant avec le bouton droit de la souris sur l'exécutable de Notepad ++ et en le modifiant pour qu'il s'exécute en tant qu'administrateur. Je commence à chercher comment en faire une course en tant qu'administrateur. Quand j'arrive à cela, je vais éditer mon message pour que vous puissiez le modifier en tant qu'administrateur ou normalement.

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

Désinstallez les plugins (sauf le gestionnaire de plugins). Cela a résolu le problème pour moi. Vous pouvez installer un plugin à la fois pour voir quel plugin pose des problèmes.

1

La solution suivante ne permet pas vraiment le scénario du double clic, mais elle vous donne le pouvoir de choisir (et techniquement, c'est aussi deux clics):

Vous pouvez ajouter un élément de menu "Exécuter en tant qu'administrateur" au menu contextuel du shell en fonction du type de fichier (ou plutôt du programme). Voir cet article pour plus de détails sur le registre Tweak.

1
ctusch

Une autre solution consiste à ouvrir le "Menu Démarrer", à rechercher l'application Notepad et à cliquer dessus avec le bouton droit de la souris. Cliquez ensuite sur "Exécuter en tant qu'administrateur".

Vous pouvez maintenant parcourir le système de fichiers (via "Bloc-notes/Fichier/Ouvrir ...") pour trouver le fichier que vous souhaitez modifier.

0
Jérôme