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 l'accès "élevé". Même si vos informations d'identification ont l'autorisation d'administrateur, les processus sous vos informations d'identification n'ont pas les autorisations d'administrateur tant que vous ne "sudo" pas la commande. Sous Windows, ils appellent cela "élever".

8 votes

@IGRACH pas sur mon powershell...

2 votes

Je utilise ce 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 a quelques fonctionnalités exceptionnelles :

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

  • Gère de manière fiable tous les scénarios pour être utilisé dans les scripts. (Codes de sortie, redirection/capture StdIn/Out/Err)

  • Prise en charge de Cmd/PowerShell/PowerShell Core

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

gsudo demo

Utilisation

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

gsudo [options] {commande} [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 revient immédiatement).
  • -w | --wait Force l'attente que le processus se termine (et retourne le code de sortie).
  • -s | --system Exécute 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 vérifiez la documentation et la dernière version

0 votes

Cela semble génial, mais est-ce que cela dépend de la fenêtre graphique de contrôle de compte d'utilisateur (UAC) ? Je me connecte via SSH et j'aimerais 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'administration, sans demander de mot de passe et 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 un excellent travail. Cependant, parfois sous Windows 8 et 8.1, ses paramètres par défaut ne sont pas idéaux. Étant donné qu'il remplace la fonction d'exécution de Windows, vous ne pouvez pas ouvrir une invite de commandes en cliquant avec le bouton droit de la souris sur l'écran de démarrage.

0 votes

C'est la meilleure réponse et elle devrait être acceptée. La plupart des autres réponses concernent l'élévation d'un compte utilisateur en tant qu'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 effectuer d'élévation et il ne transmet pas les répertoires actuels, les variables d'environnement ou les longues lignes de commande.

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 élevée. Vous pouvez également faire les deux, en exécutant une commande élevée en tant qu'un utilisateur différent. Les répertoires actuels, les variables d'environnement et les longues lignes de commande 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 comme une interlude avec les nouvelles informations d'identification démarrant ensuite le processus enfant. Mention spéciale : Je suis l'auteur.

3voto

twall Points 271

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

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

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

3voto

ypid Points 343

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

choco install -y sudo

Ensuite, dans n'importe quelle shell Windows/MS que vous utilisez, vous pouvez utiliser sudo comme prévu.

0 votes

Il s'agit de l'élévation d'un compte utilisateur dans 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