Existe-t-il un moyen d'exécuter un programme ou une commande avec des droits élevés lorsque je suis déjà en ligne de commande non élevée?
Exactement la même action que lorsque je clique sur le raccourci du programme et que je sélectionne Exécuter en tant qu’administrateur .
La commande runas n'est probablement pas une solution - elle demande un mot de passe, mais je veux juste la boîte de dialogue UAC .
windows
administrator
privileges
Lukas Cenovsky
la source
la source
Il existe un moyen de faire cela dans PowerShell:
la source
powershell -Command "Start-Process 'C:\program.exe' -Verb runAs"
powershell -Command "Start-Process 'gvim' 'c:\windows\system32\drivers\etc\hosts' -Verb runAs"
. Merci!$p = Start-Process powershell -Verb runAs -ArgumentList "-Command ``"& { ``$Host.SetShouldExit(123) }``"" -PassThru; $p.ExitCode
En vous appuyant sur la réponse de Rustam , vous pouvez:
su.bat
fichier de commandes quelque part dans votre% PATH% par défaut, avec la ligne suivante:@powershell start -verb runas %*
function su {start -verb runas @args}
Maintenant, vous pouvez émettre
su <command> [parameters]
dans l'un ou l'autre shell!la source
RunAdmin est un petit utilitaire (150 Ko) qui vous permet d’exécuter un programme en ligne de commande avec des droits élevés (il indiquera le contrôle de compte d'utilisateur). Et en face de Hidden Start, c’est gratuit.
la source
Cela fonctionne pour moi sur toutes les plateformes, y compris Windows 10. Mes besoins sont simples, vous pouvez peut-être adapter l'approche si vous avez besoin d' énergie .
Je suis venu avec un petit script nommé,
sudo.cmd
nommé pour la commande Linux sudo. Cela fonctionne assez bien, il pense. J'ai décrit les exigences, les étapes à suivre et le script est près du bas avec un exemple. D'abord un mot d'avertissement.AVERTISSEMENT : la commande est exécutée par défaut dans le répertoire système Windows. Vous voudrez aller
cd
dans un endroit sûr en premier.exigences :
ou du cmd-shell.
sudo
commande sous Linux.solution :
sudo.cmd
sudo.lnk
.sudo
raccourci dans votre fenêtre PATH afin qu'il puisse être vu.Start in:
videz le chemin.Advanced
bouton [ ] - VérifierRun as Administrator
Lorsque vous tapez
sudo dir
sur la ligne de commande, Windows affiche leContrôle d'accès pop-up. Si vous cliquez sur "[
NO
]" rien ne se passera. Windows affichera un "Access is denied.
" message.Lorsque vous cliquez sur "[
YES
]", la commande de répertoire s'exécute avec un privilège élevé. Bien sûr, vous voulez probablement quelque chose de plus intéressant, comme un arrêt ou une requête sur un service:SDRSVC est le nom du service "Service de sauvegarde Windows". Ce qui suit apparaît dans une fenêtre de commande séparée:
Le
sudo.cmd
script lui-même est très basique. Comme je l'ai dit, mes besoins sont simples. Je souhaite simplement arrêter et démarrer des services pendant le déploiement du code à des fins de test.sudo.cmd
:La
pause
commande attend que vous examiniez les résultats. Si vous supprimezpause
, la fenêtre d’administration se ferme et vous ne savez pas si la commande a fonctionné ou non. Le àERRORLEVEL
partir de la commande est également renvoyé.la source
Cela fonctionne pour Windows 10, n'a pas été testé avec d'autres versions de Windows.
Un exemple pour ouvrir le bloc-notes avec les droits d'administrateur de cmd.exe qui démarre PowerShell et qui demande les autorisations élevées.
Cela vous donnera une boîte de dialogue UAC (si elle est activée) avec [Oui] [Non], ou vous demandera le mot de passe de l'administrateur.
Un autre exemple pour ouvrir le fichier hosts avec notepad serait:
Plus d'informations: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/start-process?view=powershell-6
la source
-ArgumentList
paramètre, pas simplement des paramètres supplémentaires pour démarrer processus.Jetez un coup d'oeil à Start ++ - il a cette fonctionnalité avec beaucoup d'autres choses utiles. Pour exécuter avec l'invite UAC, utilisez simplement
sudo
le nom de votre programme sur la ligne de commande, comme indiqué ci-dessous:Voici quelques autres fonctionnalités (vous pouvez également ajouter les vôtres):
la source
Vous pouvez définir
__COMPAT_LAYER=RunAsAdmin
. Ensuite, les commandes seront exécutées dans une classe élevée séparéecmd
.Exemple
.bat
:Toutes les options du mode de compatibilité sont répertoriées dans la boîte à outils MS Application Compatibility Toolkit.
la source
;
comme séparateur de commentaires. "Les fichiers de traitement par lots ne reconnaissent pas le point-virgule et génèrent généralement un message d'erreur concernant une commande incorrecte."