En tant que développeur, j'ai souvent besoin d'ouvrir une invite de commande à diverses fins. Par exemple, j'utilise iisreset
pour redémarrer mon serveur Web local.
J'ouvre généralement la fenêtre de commande de l'une des deux manières suivantes:
Toutefois, lorsque j'ouvre la fenêtre de commande de l'une ou l'autre de ces manières, je ne dispose pas des privilèges d'administrateur complets auxquels je pense avoir le droit.
Pour exécuter des applications réservées aux administrateurs, je dois ouvrir la ligne de commande de cette manière relativement laborieuse:
Ceci est inacceptable pour plusieurs raisons:
Users
(comme dans la technique approuvée 1) ou dans le dossier dans lequel je veux être (comme dans la technique approuvée 2). Donc, je dois souvent changer de répertoire pour arriver là où je veux aller.C'est pourquoi je recherche une solution unique permettant aux techniques approuvées d'ouvrir les invites de commande administrateur.
De nombreux programmes vous permettent de modifier définitivement leur niveau de privilège par défaut à partir du menu Propriétés. Invite de commandes n'est pas l'un de ces programmes.
Comment faire que la fenêtre de commande soit exécutée en tant qu'administrateur par défaut (même si vous utilisez l'option du menu contextuel "Ouvrir la fenêtre de commande ici")?
Pour répondre à la première partie de votre question, lorsque vous appuyez sur la touche Windows et tapez "CMD", vous pouvez appuyer sur Ctrl + Shift + Enter ouvrir en tant qu'administrateur.
Pour répondre à la deuxième partie de votre question, collez le texte suivant dans le bloc-notes et enregistrez-le avec l'extension ".reg":
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Shell\runas]
@="Open Command Window Here as Administrator"
[HKEY_CLASSES_ROOT\Directory\Shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""
Puis lancez le fichier. Il va fusionner les modifications dans le registre et ajouter l'option à vos menus contextuels. (Pas de touche shift nécessaire.)
De nombreux programmes vous permettent de modifier définitivement leur niveau de privilège par défaut à partir du menu Propriétés. Invite de commandes n'est pas l'un de ces programmes.
L’onglet Compatibilité _ est complètement désactivé pour tout des exécutables Windows:
Pour définir les privilèges d'administrateur pour les exécutables Windows, vous devez créer un raccourci et utiliser Raccourci tab → Advanced
(l'élément d'invite de commande du menu Démarrer est déjà un raccourci):
La fenêtre s’ouvre toujours dans C:\windows\system32, plutôt que dans mon répertoire Utilisateurs (comme dans la technique approuvée 1) ou dans le dossier dans lequel je veux être (comme dans la technique approuvée 2). Donc, je dois souvent changer de répertoire pour arriver là où je veux aller.
C’est normal et logique puisque si vous ouvrez une invite de commande admin, vous effectuez probablement certaines actions système pour lesquelles vous avez besoin de privilèges d’administrateur au lieu d’actions d’utilisateur pour lesquelles vous disposez déjà d’autorisations.
Vous pouvez définir le répertoire par défaut globalement en ajoutant/modifiant l'entrée de registre Autorun
(il n'est même pas nécessaire que ce soit une chaîne extensible pour utiliser des variables d'environnement):
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"Autorun"="cd /d \"%userprofile%\""
Désormais, chaque fois que vous ouvrez une invite de commande quelle que soit la méthode utilisée, le système (par défaut, techniquement répertoire de modifications) sera automatiquement remplacé par défaut dans votre répertoire de profil utilisateur.
Mieux encore, vous pouvez ajouter d'autres commandes à exécuter automatiquement chaque fois que vous ouvrez une invite de commande à l'aide de l'opérateur &
(par exemple, cd /d %userprofile% & cls & dir
). En outre, vous pouvez définir la même valeur dans la même clé sous la branche HKLM
pour la définir pour tous les utilisateurs.
Notez que vous devrez toujours accepter l'invite UAC. Malheureusement, il n’existe (actuellement?) Aucun moyen de créer une «liste blanche» de programmes de confiance UAC afin que l’invite de commande puisse être exécutée en tant qu’administrateur sans avoir à accepter l’invite. Cela vous laisse avec quelques options.
useraccountcontrolsettings.exe
)Dans le premier cas, vous évitez complètement le contrôle de compte d'utilisateur alors que dans les deux derniers cas, vous ne saisissez vos informations d'identification qu'une seule fois lors de la création du raccourci.
La solution que j’utilise consiste à ouvrir la commande Invite en ouvrant le menu Démarrer, en tapant 'cmd' et en appuyant sur Ctrl+Shift+Enter. Le programme sélectionné sera alors lancé en tant qu'administrateur.
Pour exécuter automatiquement CMD
en tant qu'administrateur chaque fois que vous cliquez simplement dessus (sans avoir à cliquer avec le bouton droit de la souris ni à créer de raccourcis supplémentaires), il existe une solution simple à cela:
Dans le Éditeur du registre , accédez à:HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
Layers
, vous devrez en créer un et le nommer:AppCompatFlags
name__, sélectionnez New → KeyFaites un clic droit Layers
name__, sélectionnez New → String Value. Définissez le nom de votre nouvelle valeur de chaîne sur le chemin d'accès complet à la commande (CMD.EXE
) Prompt (c'est-à-dire C:\Windows\System32\cmd.exe
).
Double-cliquez sur la nouvelle valeur de chaîne pour la modifier et définissez le "Données de la valeur" sur RUNASADMIN
name__.
J'ai eu la même contrariété, et cela a fonctionné pour moi.
Si vous voulez que CMD.exe soit toujours exécuté en tant qu'administrateur, ajoutez simplement le code reg ci-dessous à votre registre:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Windows\\System32\\cmd.exe"="~ RUNASADMIN"
"C:\\Windows\\SysWOW64\\cmd.exe"="~ RUNASADMIN"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Windows\\System32\\cmd.exe"="~ RUNASADMIN"
"C:\\Windows\\SysWOW64\\cmd.exe"="~ RUNASADMIN"
Il y a quelques outils que j'ai utilisés qui étaient d'autres solutions de contournement (en plus de ce que Jesse a mentionné).
À l'époque de la première utilisation de Vista, Microsoft proposait un powerToy " elevate " qui était très utile et qui remplissait parfaitement son rôle. Néanmoins, je pense que (non testé) fonctionne pour Windows 7. Placez-le dans votre environnement de chemin et vous pouvez exécuter "elevate iisreset" à partir d'une invite de commande normale (ou même "elevate cmd" depuis le début/l'exécution ou créer un raccourci)
Le moyen le plus simple de contourner les difficultés rencontrées par le contrôle de compte d'utilisateur, etc. consiste à configurer une entrée de planification de tâches pour exécuter cmd.exe avec les privilèges les plus élevés. Ne créez pas d’événement déclencheur et assurez-vous que la case à cocher Autoriser la tâche à être exécutée à la demande est activée dans l’onglet Paramètres. Dans l'onglet Paramètres, assurez-vous également que la liste déroulante "Si la tâche est déjà en cours d'exécution, la règle suivante qui s'applique" est définie sur Ne pas démarrer une nouvelle instance.
Créez ensuite un raccourci vers celui-ci sur votre bureau et lancez-le à partir de là, ou via un raccourci clavier ou épinglez le raccourci dans la barre des tâches.
Je l'ai fait sur mon système Windows 7 et cela fonctionne parfaitement.
Copiez et collez simplement cmd.exe et renommez-le sous le nom "cmda.exe" dans le dossier\system32\(337 ko n’est même pas un gros problème ...). L'option "Exécuter en tant qu'administrateur" dans les propriétés de cmda.exe ne sera plus grisée et vous pouvez la configurer pour qu'elle soit toujours exécutée en tant qu'administrateur. Vous avez maintenant deux invites de commande: la première est régulière, la deuxième dispose d'un privilège (a) dmin. Il est aussi facile de taper "cmda" dans Win barre de recherche comme vous le faites avec "cmd"!
Pour le menu contextuel de cmd avec les privilèges d’administrateur, assurez-vous que cmda.exe est déjà en place, ajoutez-le dans un nouveau fichier .reg et lancez-le.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\Shell\cmda]
@="Open command window here (Administrator)"
"HasLUAShield"=""
"Extended"=""
[HKEY_CLASSES_ROOT\Directory\Background\Shell\cmda\Command]
@="cmda.exe /s /k pushd \"%V\""
Vous verrez deux mêmes lignes dans le menu contextuel (shift); une invite de commande non surélevée et une autre avec "(administrateur)" ajouté dans.
C'est tout...
Tout cela grâce à Jesse Brohinsky
Une version plus améliorée. Cela inclut également le répertoire d'arrière-plan qui vous permet également d'ouvrir à partir du dossier. Aussi, pour le plaisir, vous pouvez ouvrir le commandpromt en tant que non administrateur.
Vous pouvez également désactiver AdminApprovalMode. De cette façon, vous n'avez pas besoin de vous lancer en tant qu'administrateur lorsque vous êtes administrateur. http://helpdeskgeek.com/windows-7/turn-off-admin-approval-mode-in-windows-7/
Windows Registry Editor Version 5.00
;write minus before to unreg example: [-HKEY_CLASSES_ROOT\Directory\Shell\cmdhere]
[HKEY_CLASSES_ROOT\Directory\Shell\cmdhere]
@="Open Command Window Here"
[HKEY_CLASSES_ROOT\Directory\Shell\cmdhere\command]
@="cmd.exe /s /k pushd \"%V\""
[HKEY_CLASSES_ROOT\Directory\Background\Shell\cmdhere]
@="Open Command Window Here"
[HKEY_CLASSES_ROOT\Directory\Background\Shell\cmdhere\command]
@="cmd.exe /s /k pushd \"%V\""
[HKEY_CLASSES_ROOT\Directory\Shell\runas]
@="Open Command Window Here as Administrator"
[HKEY_CLASSES_ROOT\Directory\Shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""
[HKEY_CLASSES_ROOT\Directory\Background\Shell\runas]
@="Open Command Window Here as Administrator"
[HKEY_CLASSES_ROOT\Directory\Background\Shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""
Créez un raccourci vers cmd.exe, cliquez avec le bouton droit de la souris et sélectionnez des propriétés. Dans l'onglet Raccourci, sélectionnez Avancé, cochez la case Exécuter en tant qu'administrateur.
Je pense que le moyen le plus simple de toujours exécuter cmd en tant qu'administrateur est de créer le fichier .reg avec le code ci-dessous:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
@="C:\\Windows\\System32\\cmd.exe"="RUNASADMIN"
Collez-le dans le bloc-notes ou quelque chose et enregistrez-le en tant que fichier .reg. Remarque: La commande Invite de commande est exécutée en tant qu'administrateur pour tous les utilisateurs. Pour toujours fonctionner en tant qu'administrateur uniquement sur votre utilisateur, il suffit de remplacer HKEY_LOCAL_MACHINE par HKEY_CURRENT_USER.
Le seul autre moyen, mis à part ce que Dracs a mentionné, est de désactiver complètement le contrôle de compte d'utilisateur.
Ce qui suit fonctionne pour moi
@echo off
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
:--------------------------------------
vous obtiendrez le même message uac confirmant que vous avez runas admin .. l’a trouvé il y a quelque temps @ stackexchange