2012-07-25 13:57:17 +0000 2012-07-25 13:57:17 +0000
106
106
Advertisement

Comment puis-je toujours exécuter l'invite de commande en tant qu'administrateur ?

Advertisement

En tant que développeur, j'ai souvent besoin d'ouvrir une invite de commande pour diverses raisons. 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 façons suivantes :

  1. appuyez sur Win, tapez “cmd” et appuyez sur Entrée
  2. Dans l'explorateur, maintenez la touche Maj et cliquez avec le bouton droit sur un dossier, puis choisissez “Ouvrir la fenêtre de commande ici”

Cependant, lorsque j'ouvre la fenêtre de commande de l'une de ces façons, je n'ai pas tous les privilèges d'administrateur auxquels je pense avoir droit.

Pour exécuter des applications réservées aux administrateurs, je dois ouvrir la ligne de commande de cette manière relativement laborieuse :

  1. Appuyez sur “Win”, tapez “cmd”
  2. Attendez que le menu se remplisse
  3. Soulevez la main du clavier et mettez-la sur la souris
  4. Faites un clic droit sur l'élément de menu “cmd.exe”
  5. Choisissez “Exécuter en tant qu'administrateur”

Ceci est inacceptable pour plusieurs raisons :

  • La fenêtre s'ouvre toujours dans C:\windows\system32, plutôt que dans mon répertoire Users (comme dans la technique approuvée 1) ou le dossier dans lequel je veux être (comme dans la technique approuvée 2). Je dois donc souvent changer de répertoire pour arriver là où je veux aller.
  • Ce processus est plus lent de plusieurs millisecondes que l'une ou l'autre de mes méthodes préférées. Effectué plusieurs fois par jour, chaque jour pendant le reste de ma carrière, il représente une dizaine de jours de temps perdu à cliquer et attendre et à changer de répertoire.
  • En tant que programmeur, l'exécution d'une tâche robotique inutile me cause une grande douleur émotionnelle.
  • En tant que programmeur, lever la main est une tâche pénible qui me cause une grande douleur physique.

C'est pourquoi je suis à la recherche d'une solution unique qui permette aux techniques 1 et 2 approuvées d'ouvrir les invites de commande de l'administrateur.

De nombreux programmes vous permettent de modifier de façon permanente leur niveau de privilège par défaut dans le menu Propriétés. L'invite de commande n'est pas l'un de ces programmes.

**Comment puis-je faire pour que la fenêtre de commande s'exécute par défaut en tant qu'administrateur (même en utilisant l'option de menu contextuel “Ouvrir la fenêtre de commande ici”) ?

Advertisement

Réponses (13)

88
88
88
2012-07-25 14:12:02 +0000

Pour répondre à la première partie de votre question, lorsque vous appuyez sur la touche Windows et que vous tapez “CMD”, vous pouvez appuyer sur Ctrl + Shift + Entrée pour ouvrir en tant qu'administrateur.

Pour répondre à la deuxième partie de votre question, collez ce qui suit dans le bloc-notes et enregistrez-le avec une 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 exécutez le fichier. Il fusionnera les modifications dans le registre et ajoutera l'option à vos menus contextuels. (Pas besoin de la touche shift).

38
38
38
2012-07-25 14:56:43 +0000

De nombreux programmes vous permettent de modifier de façon permanente leur niveau de privilège par défaut à partir du menu Propriétés. L'invite de commande n'est pas un de ces programmes.

L'onglet Compatibilité est complètement désactivé pour tous les exécutables de Windows :

REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"Autorun"="cd /d \"%userprofile%\""

Pour définir les privilèges d'administration des exécutables Windows, vous devez créer un raccourci et utiliser Shortcut tab→Advanced (l'élément d'invite de commande dans le 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 Users (comme dans la technique approuvée 1) ou le dossier dans lequel je veux être (comme dans la technique approuvée 2). Je dois donc 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 d'administration, vous faites probablement des actions système pour lesquelles vous avez besoin de privilèges d'administrateur au lieu d'actions utilisateur pour lesquelles vous avez déjà des autorisations de toute façon.

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 les variables d'environnement) :

Maintenant, chaque fois que vous ouvrez une invite de commande en utilisant n'importe quelle méthode, le répertoire par défaut sera automatiquement (enfin, techniquement changer-répertoire) celui de votre profil utilisateur.

Mieux encore, vous pouvez ajouter d'autres commandes à exécuter automatiquement chaque fois que vous ouvrez une invite de commande en utilisant 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 fixer pour tous les utilisateurs.

Notez que vous devrez toujours accepter l'invite de l'UAC. Malheureusement, il n'y a (actuellement ?) aucun moyen de créer une “liste blanche” UAC de programmes de confiance afin que l'invite de commande puisse être exécutée en tant qu'administrateur sans avoir à accepter l'invite. Il vous reste donc (a) quelques options.

  • Vous pouvez désactiver l'UAC ou le désactiver complètement (useraccountcontrolsettings.exe)
  • Vous pouvez utiliser un programme d'élévation de privilèges comme Elevator alias Elevate Me ou le Elevation PowerToy
  • Créer une tâche programmée programmée , entrez les informations d'identification (une seule fois) pour cette tâche, puis créez un raccourci vers la tâche

Dans le premier cas, vous évitez complètement l'UAC alors que dans les deux derniers, vous n'entrez vos informations d'identification qu'une seule fois lors de la création du raccourci.

20
Advertisement
20
20
2011-11-13 07:15:41 +0000

La solution que j'utilise consiste à ouvrir l'invite de commande en ouvrant le menu de démarrage, en tapant “cmd” et en appuyant sur Ctrl+Maj+Entrée. Le programme sélectionné sera alors lancé en tant qu'administrateur.

12
12
12
2013-03-10 22:08:33 +0000

Pour exécuter automatiquement CMD en tant qu'administrateur à chaque fois que l'on clique dessus (sans avoir à faire un clic droit ou à créer des raccourcis supplémentaires), il existe une solution simple : Dans l’ Éditeur de registre , naviguez jusqu'à
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

  1. Cliquez avec le bouton droit de la souris sur Layers, sélectionnez NouveauValeur de la chaîne. Définissez le nom de votre nouvelle valeur de chaîne sur le chemin complet vers (CMD.EXE) l'invite de commande (c'est-à-dire C:\Windows\System32\cmd.exe)

  2. Double-cliquez sur la nouvelle valeur de la chaîne pour la modifier, et réglez le “Value data” à RUNASADMIN.

J'ai eu le même ennui, et cela a fonctionné pour moi.

11
Advertisement
11
11
2014-01-04 17:10:28 +0000

Si vous souhaitez que CMD.exe soit toujours exécuté en tant qu'administrateur, il vous suffit d'ajouter le code reg suivant à 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"
```.
4
4
4
2012-07-25 14:31:14 +0000

J'ai utilisé quelques outils qui étaient d'autres solutions de contournement (en plus de ce que Jesse a mentionné).

Lorsque Vista est sorti pour la première fois, Microsoft a sorti un PowerToy elevate “ qui était très utile et qui a fait le travail et qui, je crois (n'a pas été testé) fonctionne toujours pour Windows 7. Déposez-le dans votre environnement de travail et vous pourrez exécuter "elevate iisreset” à partir d'une invite de commande normale (ou même “elevate cmd” à partir du démarrage/exécution ou de la création d'un raccourci)

4
Advertisement
4
4
2013-09-25 01:03:59 +0000

Le moyen le plus simple de contourner toute la difficulté de l'UAC etc. est de configurer une entrée de calendrier des tâches pour exécuter cmd.exe en utilisant les privilèges les plus élevés. Ne créez pas d'événement Trigger pour cette entrée et assurez-vous que la case Allow Task To Be Run On Demand est cochée dans l'onglet Settings. Dans l'onglet Paramètres, assurez-vous également que le menu déroulant “Si la tâche est déjà en cours d'exécution, alors la règle suivante s'applique” est réglé sur Ne pas démarrer une nouvelle instance.

Créez ensuite un raccourci vers cette instance sur votre bureau et exécutez-la à partir de là, ou via un raccourci clavier ou épinglez le raccourci sur la barre des tâches.

Je l'ai fait sur mon système Windows 7 et cela fonctionne parfaitement.

2
2
2
2013-09-23 10:28:31 +0000

Il suffit de copier-coller cmd.exe et de le renommer en “cmda.exe” dans le dossier \system32\ (337 KB, ce 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 régler pour qu'elle soit toujours exécutée en tant qu'administrateur. Vous aurez maintenant deux invites de commande : la première est régulière, la seconde a un privilège (a)dmin. Il est aussi facile de taper “cmda” dans la barre de recherche de Win que vous le faites avec “cmd” !

Pour le cmd dans le menu contextuel avec le privilège admin, assurez-vous que vous avez déjà cmda.exe en place, ajoutez-le dans le 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 lignes identiques dans le menu contextuel (shift) ; une Invite de commande non levée et une autre avec “(Administrateur)” ajouté.

C'est tout…

1
Advertisement
1
1
2013-12-15 03:45:32 +0000

Je pense que la façon la 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"

Coller cela dans le bloc-notes ou quelque chose comme ça et enregistrer en tant que fichier .reg. Note : Ceci fait en sorte que l'invite de commande s'exécute en tant qu'administrateur pour tous les utilisateurs. Pour toujours exécuter la commande en tant qu'administrateur uniquement pour votre utilisateur, il suffit de remplacer HKEY_LOCAL_MACHINE par HKEY_CURRENT_USER

1
1
1
2012-07-25 16:59:21 +0000

Créez un raccourci vers cmd.exe, faites un clic droit et sélectionnez les propriétés, dans l'onglet Raccourci, sélectionnez Avancé, cochez Exécuter en tant qu'administrateur.

1
Advertisement
1
1
2015-01-15 09:26:51 +0000

Tout cela grâce à Jesse Brohinsky

Une version plus améliorée. Elle inclut également le répertoire background qui permet d'ouvrircmd de l'intérieur du dossier. De plus, vous pouvez ouvrir le commandpromt en tant que non admin.

Vous pouvez également désactiver le AdminApprovalMode. De cette façon, vous n'avez pas besoin de vous exécuter 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\""
0
0
0
2014-09-23 08:41:15 +0000

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 prompt uac confirmant à runas admin… trouvé il y a quelque temps @ stackexchange

0
Advertisement
0
0
2011-11-13 08:30:56 +0000

Le seul autre moyen, autre que ce que Dracs a mentionné, est de désactiver complètement l'UAC

Advertisement
Advertisement