Ok, la raison pour laquelle cela ne fonctionne pas est le modèle de sécurité dans Windows Vista et plus récent. Un compte dans le groupe d'administrateurs exécute toujours tout ce qui n'est pas explicitement élevé en tant qu'utilisateur limité. L'exception est le Administrator
compte, qui exécute tout élevé. Pour cette raison, il est généralement considéré comme mauvais à utiliser comme compte de connexion et est normalement désactivé.
Vous pouvez l'activer, puis l' runas
invoquer en tant que compte. Cela introduit quelques problèmes - vous exécutez maintenant avec l'environnement d'un utilisateur différent, qui pourrait avoir des variables d'environnement différentes définies. 1
La meilleure façon de le faire serait en fait de devenir votre utilisateur actuel via UAC. Malheureusement, l'invite de commande standard n'inclut pas cette capacité - mais les programmes tiers et les PowerShell et WSHell (VBScript) intégrés peuvent le faire.
Empruntant à mon autre réponse , vous pouvez invoquer la commande PowerShell directement avec powershell -c
:
powershell -c start -verb runas notepad C:\Windows\System32\drivers\etc\hosts
qui dit essentiellement à PowerShell d'exécuter ce qui suit (a un start
alias Start-Process
):
Start-Process -Verb "runas" notepad C:\Windows\System32\drivers\etc\hosts
L'astuce consiste ici à passer le verbe runas
, déclenchant l'UAC.
Ni Start-Process -Verb runas
la cmd standard runas
ne transmettra le répertoire de travail actuel , utilisez donc toujours le chemin d'accès complet dans toutes les commandes que vous élevez de cette manière.
Notez également que certains arguments comme -c
peuvent entrer en conflit avec des Start-Process
arguments, donc le moyen le plus sûr est:
powershell "-c start -verb runas commandname -argumentlist 'arg1 arg2'"
1 Remarque: cela ne s'applique qu'aux variables d'environnement de l' utilisateur . Les variables d'environnement que vous définissez dans un processus parent ne sont pas transmises par UAC ! Cela s'applique également à runas
, et c'est encore pire là-bas, car vous n'obtiendrez même pas les bons utilisateurs.
-c
. (donc-c "start
au lieu de"-c start
)Vous n'avez probablement pas encore activé le compte administrateur.
Voici les instructions pour activer le compte administrateur .
Vous trouverez également plus d'informations sur les runas sur le site Microsoft.
la source
net user administrator /active:yes
Une chose que vous pouvez essayer est d'ouvrir l'invite de commande en tant qu'administrateur et d'exécuter le bloc-notes par là. Tapez simplement
Notepad
. Après avoir fait cela, vous pouvez cliquer sur le fichier, puis l'ouvrir et naviguer jusqu'au fichier hosts et l'ouvrir. Enfin, vous pouvez simplement enregistrer comme d'habitude.la source