494 votes

Y a-t-il une commande 'sudo' pour Windows?

Je travaille toujours sur un compte non-administrateur sur mon ordinateur Windows. Parfois, j'ai besoin d'installer des programmes qui nécessitent un accès administrateur. Comme j'utilise principalement l'invite de commandes Windows, y a-t-il une commande Windows pour augmenter les privilèges, similaire à la commande terminal Linux sudo?

8 votes

Je crois que le terme que vous recherchez est "accès élevé". Même si vos informations d'identification ont la permission d'administrateur, les processus sous vos informations d'identification n'ont pas les autorisations d'administrateur tant que vous n'avez pas "sudo" la commande. Sous Windows, on appelle cela "élever".

8 votes

@IGRACH pas sur mon powershell...

2 votes

Je utilise cette doskey sudo= runas /user:Administrator "cmd /k cd \"%cd%\" & $*"

6voto

Gerardo Grignoli Points 296

J'ai écrit gsudo, un sudo pour Windows qui ressemble à *nix sudo et qui possède quelques fonctionnalités redoutables :

  • Exécuter dans la console actuelle (attachée) sans casser l'auto-complétion par la touche Tab. Ou ajouter -n pour lancer dans une nouvelle fenêtre.

  • Gère de manière fiable tous les scénarios pour être utilisé dans les scripts. (ExitCodes, Redirection/Capture StdIn/Out/Err)

  • Prise en charge de Cmd/PowerShell/PowerShell Core

  • Cache des informations d'identification : Si gsudo est invoqué plusieurs fois en quelques minutes, il n'affiche la boîte de dialogue UAC qu'une seule fois.

gsudo demo

Utilisation

gsudo Ouvre un shell élevé dans la console actuelle.

gsudo [options] {command} [arguments] Exécute la commande spécifiée avec des autorisations élevées.

Options les plus pertinentes [options]:

  • -n | --new Démarre la commande dans une nouvelle console avec des droits élevés (et retourne immédiatement).
  • -w | --wait Force l'attente de la fin du processus (et renvoie le code de sortie).
  • -s | --system Exécuter en tant que compte système local ("NT AUTHORITY\SYSTEM").

Installation

  • En utilisant Scoop : scoop install gsudo
  • En utilisant Chocolatey : choco install gsudo
  • En utilisant Winget : winget install gsudo
  • Ou consultez la documentation et la dernière version

0 votes

Cela semble génial, mais est-ce que cela dépend du prompt graphique de l'UAC ? Je me connecte via SSH et je veux quelque chose qui fonctionne uniquement en mode ligne de commande.

0 votes

Oui. Au moins une fenêtre contextuelle UAC s'affichera.

4voto

diimdeep Points 792

Surun est une application gratuite et open-source qui permet à certains programmes de s'exécuter avec des droits d'administrateur, sans fournir de mot de passe sans modifier le registre de l'utilisateur ou les variables d'environnement.

Lorsque j'utilisais Windows XP, cette application m'a beaucoup aidé. Beta fonctionne sous Windows 7.

0 votes

Surun fait du bon travail. Cependant, parfois sous Windows 8 et 8.1, ses paramètres par défaut ne sont pas idéaux. Parce qu'il remplace la fonction d'exécution de Windows, vous ne pouvez pas démarrer une invite de commandes en cliquant avec le bouton droit sur l'écran de démarrage.

0 votes

Ceci est la meilleure réponse et devrait être celle acceptée. La plupart des autres réponses concernent l'élévation d'un compte utilisateur en Administrateurs : pas sudo.

3voto

Nicole Hamilton Points 9675

Comme vous l'avez probablement découvert, runas vous permet d'exécuter en tant qu'un autre utilisateur mais il ne peut pas faire d'élévation et il ne transmet pas les répertoires actuels, les variables d'environnement ou les lignes de commande longues.

Hamilton C shell résout cela avec un véritable su et sudo. su vous permet d'exécuter une commande en tant qu'un autre utilisateur; sudo (en fait un alias de su) vous permet d'exécuter une commande en tant qu'administrateur. Vous pouvez également faire les deux, en exécutant une commande en tant qu'administrateur en utilisant un utilisateur différent. Les répertoires actuels, les variables d'environnement et les lignes de commande longues sont transmis par le biais d'une poignée de main en mémoire partagée entre su s'exécutant dans le contexte de l'appelant et une copie de lui-même s'exécutant en interlude avec les nouvelles informations d'identification qui démarre ensuite le processus enfant. Divulgation complète : je suis l'auteur.

3voto

twall Points 271

La solution la plus simple à mon avis est d'utiliser PowerShell pour faire le travail, ce qui est portable et demandera à l'utilisateur en utilisant l'UAC.

Vous pouvez simplement exécuter ceci dans n'importe quelle interface (cmd ou powershell)

powershell Start-Process -verb runAs chemin-vers-votre.exe "-tous -les -args -dans -guillemets"

3voto

ypid Points 343

Il existe un paquet chocolatey pour cela avec le nom pratique sudo. Vous pouvez installer le paquet avec chocolatey en utilisant cette commande :

choco install -y sudo

Ensuite, dans n'importe quelle fenêtre de commandes Windows/MS que vous utilisez, vous pouvez utiliser sudo comme prévu.

0 votes

Il s'agit de l'élévation du compte utilisateur en Administrateurs; sudo est une autre chose.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X