Wie würde ich den folgenden Befehl in Windows ausführen:
$ sudo django-admin.py startproject NEW
?
Wie würde ich den folgenden Befehl in Windows ausführen:
$ sudo django-admin.py startproject NEW
?
Antworten:
sudoIn Windows gibt es keinen Befehl. Das nächste Äquivalent ist "Als Administrator ausführen".
Sie können dies mit dem runasBefehl mit einer Administrator-Vertrauensstufe tun oder indem Sie mit der rechten Maustaste auf das Programm in der Benutzeroberfläche klicken und "Als Administrator ausführen" auswählen .
gsudo( stackoverflow.com/a/58753166/97471 ). Es ist ein Sudo für Windows mit *nix sudoBenutzererfahrung: Ermöglichen der Ausführung des Befehls in der aktuellen Konsole und im Cache für Anmeldeinformationen (nur ein UAC-Popup).
Öffnen Sie den Editor und fügen Sie diesen Code ein:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c cd /d %CD% && %*'"
@echo on
Speichern Sie dann die Datei als sudo.cmd. Kopieren Sie diese Datei und fügen Sie sie unter C:\Windows\System32oder fügen Sie den Pfad sudo.cmdzu Ihrer PATH-Umgebungsvariablen hinzu.
Wenn Sie die Eingabeaufforderung öffnen, können Sie jetzt so etwas wie ausführen sudo start ..
Wenn das Eingabeaufforderungsfenster des Administrators beim Ausführen des Befehls geöffnet bleiben soll, ändern Sie den Code im Editor wie folgt:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
@echo on
Erläuterung:
powershell -Command führt einen Powershell-Befehl aus.
Start-Process ist ein Powershell-Befehl, der einen Prozess startet, in diesem Fall die Eingabeaufforderung.
-Verb RunAs führt den Befehl als admin aus.
-Argument-List führt den Befehl mit Argumenten aus.
Unsere Argumente sind '/c cd /d %CD% && %*'. %*bedeutet alle Argumente. Wenn Sie dies tun sudo foo bar, wird es in der Eingabeaufforderung ausgeführt, foo barda die Parameter foo und bar sind, und wird %*zurückgegeben foo bar.cd /d %CD%ist ein Befehl, um zum aktuellen Verzeichnis zu wechseln. Dadurch wird sichergestellt, dass beim Öffnen des erhöhten Fensters das Verzeichnis mit dem normalen Fenster identisch ist. Dies &&bedeutet, dass Sie den zweiten Befehl ausführen, wenn der erste Befehl erfolgreich ist.
Das /c ist ein cmd Parameter zum Schließen des Fensters nach dem Befehl beendet ist , und die/k ist ein cmd Parameter für das Halten Sie das Fenster geöffnet.
Dank an Adam Plocher für den Verbleib im aktuellen Verzeichniscode.
C:\Windows\System32.
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
echoZeilen eins und drei überspringen, indem Sie @der Powershell-Zeile voranstellen?
Alle Antworten erklären, wie Sie Ihren Befehl in einem neuen erhöhen können Konsolenhost .
Was mich amüsierte, war, dass sich keines dieser Tools so verhält *nix sudo, dass der Befehl in der aktuellen Konsole ausgeführt werden kann.
Also schrieb ich: gsudo
Quellcode https://github.com/gerardog/gsudo
Über Schaufel
scoop install gsudo
Oder über Chocolatey
choco install gsudo
Manuelle Installation:

Ich habe wsudoein Open-Source- sudoähnliches CLI-Tool für Windows erstellt, mit dem Programme oder Befehle mit erhöhtem Recht im Kontext des aktuellen Verzeichnisses ausgeführt werden können . Es ist als Schokoladenpaket erhältlich .
Ich benutze es viel für Sachen wie die Konfiguration Build - Agenten, admin Dinge wie sfc /scannow, dism /online /cleanup-image /restorehealthoder einfach für die Installation / Aktualisierung meiner lokalen Chocolatey Pakete. Benutzung auf eigene Gefahr.
choco install wsudo
Chocolatey muss bereits installiert sein.
wsudoist ein Linux- sudoähnliches Tool für Windows, mit dem ein Programm mit erhöhten Rechten (als Administrator) über eine Nicht-Administrator-Shell-Eingabeaufforderung aufgerufen und das aktuelle Verzeichnis beibehalten werden kann.
Diese Implementierung hängt nicht vom alten Windows Script Host ( CScript) ab. Stattdessen wird ein Hilfsskript für PowerShell 5.1 verwendet, das aufgerufen wird"Start-Process -Wait -Verb runAs ..." Hilfsskript für Cmdlet . Auf Ihrem System ist PowerShell 5.x höchstwahrscheinlich bereits installiert, andernfalls wird Ihnen angeboten, es als Abhängigkeit zu installieren.
wsudoführt ein Programm oder einen Inline-Befehl mit erhöhten Rechten im aktuellen Verzeichnis aus. Beispiele:
wsudo .\myAdminScript.bat
wsudox "del C:\Windows\Temp\*.* && pause"
wasudo cup all -y
wasudox start notepad C:\Windows\System32\drivers\etc\hosts
Weitere Informationen finden Sie im GitHub-Repro .
wasudo, dass ich es dir leichter gemacht habe. Ich selbst lebe hauptsächlich im integrierten VSCode-Konsolenterminal, also tippe ich einfach wasudodort :) Die nächste Verbesserung wäre, die Umgebungsvariablen zu erben .
runasBefehl erfordert, dass die Benutzer Passwort eingeben. Wenn Sie kein Kennwort eingeben und nur auf das Dialogfeld "Benutzerkontensteuerung" klicken möchten, verwenden Sie Start-Process -Verb runasin PowerShell anstelle des runasBefehls.
Normalerweise würden Sie dies nicht tun, da Sie es unabhängig davon nicht unter * nix ausführen würden. Führen Sie die Entwicklung in einem Benutzerverzeichnis durch und stellen Sie sie anschließend in Systemverzeichnissen bereit.
Unter Windows können Sie den Befehl runas verwenden. Für Linux-Benutzer gibt es einige Alternativen für sudo in Windows. Sie können dies überprüfen
http://helpdeskgeek.com/free-tools-review/5-windows-alternatives-linux-sudo-command/
Sie können den Befehl runas verwenden - http://technet.microsoft.com/en-us/library/bb490994.aspx oder sudowin - http://sourceforge.net/projects/sudowin/
Da ist irgendwie. Ich habe Sudo für Windows 2007 erstellt. 08? Hier ist das Sicherheitspapier, das ich darüber geschrieben habe - https://www.sans.org/reading-room/whitepapers/bestprac/sudo-windows-sudowin-1726 . Ziemlich sicher, dass http://sudowin.sf.net auch noch funktioniert.
Das folgende vbs-Skript ermöglicht das Starten eines bestimmten Befehls mit Argumenten mit Elevation und ahmt das Verhalten des ursprünglichen Unix-Sudo-Befehls für eine begrenzte Anzahl verwendeter Fälle nach (es werden weder Anmeldeinformationen zwischengespeichert noch Befehle mit unterschiedlichen Anmeldeinformationen wirklich ausgeführt). Ich ziehe es an 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
Beispiel für die Verwendung an einer Eingabeaufforderung sudo net start service
Ich glaube, ich habe nach einigen Recherchen die folgenden Schritte ausprobiert und war erfolgreich
1.Installieren Sie scoop mit Powershell 3 (iex (neues Objekt net.webclient) .downloadstring (' https://get.scoop.sh ')). 2. Installieren Sie scoop --global sudo. 3. Stellen Sie sicher, dass die Pfade (C: \ Users \\ scoop \ shims & C: \ ProgramData \ scoop \ shims) in Umgebungspfadvariable hinzugefügt.
Bei Windows gibt es keinen sudo-Befehl und es ist auch nicht erforderlich, $ einzugeben. Für die Installation von Angular CLI über die Eingabeaufforderung node.js in Windows habe ich einfach npm install -g @ angle / cli geschrieben und dann die Eingabetaste gedrückt. Es hat gut funktioniert.
In Windows Powershell können Sie den Befehl Start-Process mit der Option -Verb RunAszum Starten und Erhöhen des Prozesses verwenden. Hier ist mein Beispiel für eine Sudo-Funktion:
function sudo {
Start-Process @args -verb runas
}
Beispiel: Öffnen Sie die Hosts-Datei als Admin im Editor
sudo notepad C:\Windows\System32\drivers\etc\hosts
Verwendung der sudo Befehl für Fensterbenutzer verwenden, erhalten Sie die folgenden Vorschläge:
Installieren Sie zunächst das scoopPaketverwaltungstool und führen Sie die folgenden Befehle aus:

Verwenden Sie dann scoop, um den sudoBefehl zu installieren :

Schließlich können Sie den Befehl ausführen mit sudo:

Ich bin froh dir zu helfen.
Gehen Sie folgendermaßen vor, um einen Sudo-Befehl auszuführen: -
Hoffe das wird dir helfen
Um einen Befehl nur als Administrator in einer nicht erhöhten Powershell auszuführen, können Sie ihn Start-Processdirekt verwenden, insbesondere mit den richtigen Optionen -Verb runas.
Es ist viel komplizierter als sudo, insbesondere weil Sie den vorherigen Befehl nicht einfach mit einer zusätzlichen Option wiederverwenden können. Sie müssen die Argumente für Ihren Befehl separat angeben.
Hier ist ein Beispiel für die Verwendung des Befehls route zum Ändern des Gateways:
Dies schlägt fehl, weil wir uns nicht in einem erhöhten PS befinden:
> route change 0.0.0.0 mask 0.0.0.0 192.168.1.3
The requested operation requires elevation.
Dies funktioniert nach dem Akzeptieren der Benutzerkontensteuerung:
> Start-Process route -ArgumentList "change 0.0.0.0 mask 0.0.0.0 192.168.1.3" -Verb runas
Oder für einen Befehl, der Folgendes erfordert cmd.exe:
> Start-Process cmd -ArgumentList "/c other_command arguments ..." -Verb runas