Comment exécuter la commande suivante dans Windows:
$ sudo django-admin.py startproject NEW
?
Comment exécuter la commande suivante dans Windows:
$ sudo django-admin.py startproject NEW
?
Réponses:
Il n'y a pas de sudo
commande sous Windows. L'équivalent le plus proche est «exécuter en tant qu'administrateur».
Vous pouvez le faire à l'aide de la runas
commande avec un niveau de confiance administrateur ou en cliquant avec le bouton droit sur le programme dans l'interface utilisateur et en choisissant «exécuter en tant qu'administrateur».
gsudo
( stackoverflow.com/a/58753166/97471 ). C'est un sudo pour Windows avec *nix sudo
une expérience utilisateur: permettant d'exécuter la commande dans la console actuelle et le cache des informations d'identification (un seul popup UAC).
Ouvrez le bloc-notes et collez ce code:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c cd /d %CD% && %*'"
@echo on
Ensuite, enregistrez le fichier sous sudo.cmd
. Copiez ce fichier et collez-le dans C:\Windows\System32
ou ajoutez le chemin où se sudo.cmd
trouve votre variable d'environnement PATH.
Lorsque vous ouvrez l'invite de commande, vous pouvez maintenant exécuter quelque chose comme sudo start .
.
Si vous souhaitez que la fenêtre d'invite de commande d'administration reste ouverte lorsque vous exécutez la commande, modifiez le code dans le bloc-notes comme suit:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
@echo on
Explication:
powershell -Command
exécute une commande PowerShell.
Start-Process
est une commande PowerShell qui démarre un processus, dans ce cas, une invite de commande.
-Verb RunAs
exécute la commande en tant qu'administrateur.
-Argument-List
exécute la commande avec des arguments.
Nos arguments sont '/c cd /d %CD% && %*'
. %*
signifie tous les arguments, donc si vous le faisiez sudo foo bar
, il s'exécuterait dans l'invite de commande foo bar
car les paramètres sont foo et bar, et %*
retourne foo bar
. cd /d %CD%
est une commande pour aller dans le répertoire courant. Cela garantira que lorsque vous ouvrez la fenêtre élevée, le répertoire sera le même que la fenêtre normale. les &&
moyens qui , si la première commande est réussie, exécuter le deuxième commande.
Le /c
est un paramètre cmd pour fermer la fenêtre une fois la commande terminée, et le /k
est un paramètre cmd pour garder la fenêtre ouverte.
Crédit à Adam Plocher pour le séjour dans le code du répertoire courant.
C:\Windows\System32
.
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
echo
lignes un et trois en précédant @
la ligne PowerShell ?
Toutes les réponses expliquent comment élever votre commande dans un nouvel hôte de console.
Ce qui m'a amusé, c'est qu'aucun de ces outils ne se comporte comme *nix sudo
, permettant d'exécuter la commande à l'intérieur de la console actuelle .
Alors, j'ai écrit: gsudo
Code source https://github.com/gerardog/gsudo
Par scoop
scoop install gsudo
Ou via Chocolatey
choco install gsudo
Installation manuelle:
J'ai créé wsudo
un sudo
outil CLI de type open source pour Windows pour exécuter des programmes ou des commandes avec une élévation à droite, dans le contexte du répertoire actuel . Il est disponible en emballage chocolaté .
Je l'utilise beaucoup pour des choses comme la configuration des agents de build, des tâches d'administration sfc /scannow
, dism /online /cleanup-image /restorehealth
ou simplement pour installer / mettre à jour mes packages Chocolatey locaux. À utiliser à vos risques et périls.
choco install wsudo
Chocolatey doit être déjà installé.
wsudo
est un sudo
outil de type Linux permettant à Windows d'appeler un programme avec des droits élevés (en tant qu'administrateur) à partir d'une invite de commande shell non-admin et en conservant son répertoire actuel.
Cette implémentation ne dépend pas de l'ancien Windows Script Host ( CScript
). Au lieu de cela, il utilise un script d'assistance PowerShell 5.1 qui appelle l' "Start-Process -Wait -Verb runAs ..."
applet de commande. Votre système a probablement déjà installé PowerShell 5.x, sinon il vous sera proposé de l'installer en tant que dépendance.
wsudo
exécute un programme ou une commande en ligne avec des droits élevés dans le répertoire actuel. Exemples:
wsudo .\myAdminScript.bat
wsudox "del C:\Windows\Temp\*.* && pause"
wasudo cup all -y
wasudox start notepad C:\Windows\System32\drivers\etc\hosts
Pour plus de détails, visitez la repro GitHub .
wasudo
vous a facilité la tâche. Je vis moi-même principalement dans le terminal de console intégré VSCode, donc je viens de taper wasudo
là :) La prochaine amélioration serait d'hériter des variables d'environnement .
runas
commande oblige les utilisateurs à saisir le mot de passe. Si vous ne souhaitez pas taper de mot de passe et que vous souhaitez simplement cliquer sur la boîte de dialogue UAC, utilisez Start-Process -Verb runas
PowerShell au lieu de runas
commande.
Vous ne le feriez normalement pas, puisque vous ne l'exécuteriez pas sous * nix de toute façon. Faites le développement dans un répertoire utilisateur, puis déployez-le dans les répertoires système.
sous Windows, vous pouvez utiliser la commande runas. Pour les utilisateurs de Linux, il existe des alternatives pour sudo dans Windows, vous pouvez vérifier ceci
http://helpdeskgeek.com/free-tools-review/5-windows-alternatives-linux-sudo-command/
Vous pouvez utiliser la commande runas - http://technet.microsoft.com/en-us/library/bb490994.aspx ou sudowin - http://sourceforge.net/projects/sudowin/
Il y a en quelque sorte. J'ai créé Sudo pour Windows en 2007? 08? Voici le document de sécurité que j'ai écrit à ce sujet - https://www.sans.org/reading-room/whitepapers/bestprac/sudo-windows-sudowin-1726 . À peu près sûr que http://sudowin.sf.net fonctionne toujours aussi.
Le script vbs suivant permet de lancer une commande donnée avec des arguments avec élévation et imite le comportement de la commande sudo unix originale pour un ensemble limité de cas d'utilisation (il ne mettra pas en cache les informations d'identification ni ne permet d'exécuter réellement des commandes avec des informations d'identification différentes). Je l'ai mis C:\Windows\System32
.
Set objArgs = WScript.Arguments
exe = objArgs(0)
args = ""
IF objArgs.Count >= 2 Then
args = args & objArgs(1)
End If
For it = 2 to objArgs.Count - 1
args = args & " " & objArgs(it)
Next
Set objShell = CreateObject( "WScript.Shell")
windir=objShell.ExpandEnvironmentStrings("%WINDIR%")
Set objShellApp = CreateObject("Shell.Application")
objShellApp.ShellExecute exe, args, "", "runas", 1
set objShellApp = nothing
Exemple d'utilisation sur une invite de commande sudo net start service
Je pense que j'ai essayé les étapes ci-dessous après avoir fait des recherches et j'ai réussi
1.Installez scoop à l'aide de PowerShell 3 (iex (nouvel objet net.webclient) .downloadstring (' https://get.scoop.sh ')) 2. do scoop install --global sudo 3. assurez-vous que les chemins (C: \ Users \\ scoop \ shims & C: \ ProgramData \ scoop \ shims) ajouté dans la variable de chemin d'environnement.
Il n'y a pas de commande sudo dans le cas de windows et il n'est pas non plus nécessaire de mettre $. Pour installer Angular CLI via l'invite de commande node.js dans Windows, je viens d'écrire npm install -g @ angular / cli , puis j'ai appuyé sur Entrée. Cela a bien fonctionné.
Dans Windows Powershell, vous pouvez utiliser la commande Start-Process avec une option -Verb RunAs
pour démarrer et un processus élevé. Voici mon exemple de fonction sudo:
function sudo {
Start-Process @args -verb runas
}
Ex: ouvrir le fichier d'hôtes en tant qu'administrateur dans le bloc-notes
sudo notepad C:\Windows\System32\drivers\etc\hosts
L'utilisation de la sudo
commande pour les utilisateurs de fenêtres vous donne les suggestions suivantes:
Tout d'abord, installez l' scoop
outil de gestion des packages et exécutez les commandes suivantes:
Ensuite, utilisez scoop
pour installer la sudo
commande:
Enfin, vous pouvez exécuter la commande avec sudo
:
Je suis heureux de vous aider.
Pour créer une commande sudo, suivez les étapes: -
J'espère que ceci vous aidera
Pour simplement exécuter une commande en tant qu'administrateur dans un Powershell non élevé, vous pouvez utiliser Start-Process
directement, avec les bonnes options, en particulier -Verb runas
.
C'est beaucoup plus compliqué que sudo
, en particulier parce que vous ne pouvez pas simplement réutiliser la commande précédente avec une option supplémentaire. Vous devez spécifier les arguments de votre commande séparément.
Voici un exemple, en utilisant la commande route pour changer la passerelle:
Cela échoue car nous ne sommes pas dans un PS élevé:
> route change 0.0.0.0 mask 0.0.0.0 192.168.1.3
The requested operation requires elevation.
Cela fonctionne après avoir accepté l'UAC:
> Start-Process route -ArgumentList "change 0.0.0.0 mask 0.0.0.0 192.168.1.3" -Verb runas
Ou pour une commande qui nécessite cmd.exe
:
> Start-Process cmd -ArgumentList "/c other_command arguments ..." -Verb runas