Jak uruchomiłbym następujące polecenie w systemie Windows:
$ sudo django-admin.py startproject NEW
?
Jak uruchomiłbym następujące polecenie w systemie Windows:
$ sudo django-admin.py startproject NEW
?
Odpowiedzi:
W sudosystemie Windows nie ma polecenia. Najbliższy odpowiednik to „Uruchom jako administrator”.
Możesz to zrobić za pomocą runaspolecenia z poziomem zaufania administratora lub klikając program prawym przyciskiem myszy w interfejsie użytkownika i wybierając opcję „Uruchom jako administrator”.
gsudo( stackoverflow.com/a/58753166/97471 ). Jest to sudo dla okien z *nix sudodoświadczeniem użytkownika: Zezwalanie na wykonanie polecenia w bieżącej konsoli i pamięć podręczna poświadczeń (tylko jedno wyskakujące okienko UAC).
Otwórz notatnik i wklej ten kod:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c cd /d %CD% && %*'"
@echo on
Następnie zapisz plik jako sudo.cmd. Skopiuj ten plik i wklej go w miejscu C:\Windows\System32lub dodaj ścieżkę sudo.cmddo zmiennej środowiskowej PATH.
Po otwarciu wiersza polecenia możesz teraz uruchomić coś takiego sudo start ..
Jeśli chcesz, aby okno wiersza polecenia administratora pozostało otwarte po uruchomieniu polecenia, zmień kod w notatniku na ten:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
@echo on
Wyjaśnienie:
powershell -Command uruchamia polecenie PowerShell.
Start-Process to polecenie PowerShell, które uruchamia proces, w tym przypadku wiersz polecenia.
-Verb RunAs uruchamia polecenie jako admin.
-Argument-List uruchamia polecenie z argumentami.
Nasze argumenty są '/c cd /d %CD% && %*'. %*oznacza wszystkie argumenty, więc jeśli tak sudo foo bar, to uruchomiłoby się w wierszu poleceń, foo barponieważ parametry to foo i bar, i %*zwraca foo bar. cd /d %CD%to polecenie przejścia do bieżącego katalogu. Zapewni to, że po otwarciu okna z podwyższonym poziomem uprawnień katalog będzie taki sam, jak normalne okno. to &&oznacza, że jeśli pierwsze polecenie zakończy się powodzeniem, należy uruchomić drugą komendę.
Jest /cto parametr cmd do zamykania okna po zakończeniu polecenia, a /kto parametr cmd do utrzymywania otwartego okna.
Kredyt dla Adama Plocher do pobytu w bieżącym Kod klasyfikacji.
C:\Windows\System32.
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
echowiersza pierwszego i trzeciego, poprzedzając @wiersz PowerShell?
Wszystkie odpowiedzi wyjaśniają, jak zwiększyć swoje polecenie w nowym hoście konsoli.
To, co mnie rozbawiło, to to, że żadne z tych narzędzi nie zachowuje się jak *nix sudo, pozwalając na wykonanie polecenia wewnątrz bieżącej konsoli.
Tak więc napisałem: gsudo
Kod źródłowy https://github.com/gerardog/gsudo
Przez czerpak
scoop install gsudo
Albo przez Chocolatey
choco install gsudo
Instalacja ręczna:

Stworzyłem narzędzie CLI wsudoo otwartym kodzie źródłowym sudodla systemu Windows do uruchamiania programów lub poleceń z podwyższonymi uprawnieniami, w kontekście bieżącego katalogu . Jest dostępny w opakowaniu Chocolatey .
Używam go często do rzeczy takich jak konfigurowanie agentów kompilacji, czynności administracyjne sfc /scannow, dism /online /cleanup-image /restorehealthlub po prostu do instalowania / aktualizowania moich lokalnych pakietów Chocolatey. Używaj na własne ryzyko.
choco install wsudo
Chocolatey musi być już zainstalowane.
wsudoto sudopodobne do Linuksa narzędzie dla systemu Windows do wywoływania programu z podwyższonymi uprawnieniami (jako Administrator) z wiersza poleceń powłoki innej niż administrator i utrzymywania jego bieżącego katalogu.
Ta implementacja nie zależy od starszego hosta skryptów systemu Windows ( CScript). Zamiast tego używa pomocniczego skryptu programu PowerShell 5.1, który wywołuje polecenia "Start-Process -Wait -Verb runAs ..."cmdlet. Twój system najprawdopodobniej ma już zainstalowany program PowerShell 5.x, w przeciwnym razie zostaniesz zaoferowany do zainstalowania go jako zależności.
wsudouruchamia program lub polecenie wbudowane z podwyższonymi uprawnieniami w bieżącym katalogu. Przykłady:
wsudo .\myAdminScript.bat
wsudox "del C:\Windows\Temp\*.* && pause"
wasudo cup all -y
wasudox start notepad C:\Windows\System32\drivers\etc\hosts
Aby uzyskać więcej informacji, odwiedź repro GitHub .
wasudoże ci to ułatwiło. Sam przeważnie mieszkam w zintegrowanym terminalu konsoli VSCode, więc po prostu wasudotam piszę :) Następnym ulepszeniem byłoby dziedziczenie zmiennych środowiskowych .
runaspolecenie wymaga od użytkowników wpisania hasła. Jeśli nie chcesz wpisywać hasła i chcesz po prostu kliknąć okno dialogowe UAC, użyj Start-Process -Verb runasw PowerShell zamiast runaspolecenia.
Normalnie byś tego nie zrobił, ponieważ i tak nie uruchomiłbyś go pod * nix. Wykonuj programowanie w katalogu użytkownika, a następnie wdrażaj w katalogach systemowych.
w systemie Windows możesz użyć polecenia runas. Dla użytkowników Linuksa istnieje kilka alternatyw dla sudo w systemie Windows, możesz to sprawdzić
http://helpdeskgeek.com/free-tools-review/5-windows-alternatives-linux-sudo-command/
W pewnym sensie jest. Stworzyłem Sudo dla Windows w 2007 roku? 08? Oto dokument zabezpieczający, który o tym napisałem - https://www.sans.org/reading-room/whitepapers/bestprac/sudo-windows-sudowin-1726 . Jestem całkiem pewien, że http://sudowin.sf.net nadal działa.
Możesz użyć polecenia runas - http://technet.microsoft.com/en-us/library/bb490994.aspx lub sudowin - http://sourceforge.net/projects/sudowin/
Poniższy skrypt vbs pozwala na uruchomienie danej komendy z argumentami z podniesieniem poziomu i naśladuje zachowanie oryginalnej komendy sudo unixa dla ograniczonego zbioru użytych przypadków (nie będzie buforował poświadczeń ani nie pozwala na prawdziwe wykonywanie komend z różnymi poświadczeniami). Założyłem to 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
Przykładowe użycie w wierszu polecenia sudo net start service
Myślę, że po przeprowadzeniu pewnych badań wypróbowałem poniższe kroki i udało mi się
1.Zainstaluj scoop za pomocą programu PowerShell 3 (iex (new-object net.webclient) .downloadstring (' https://get.scoop.sh ')) 2. wykonaj instalację scoop --global sudo 3. upewnij się, że ścieżki (C: \ Users \\ scoop \ shims & C: \ ProgramData \ scoop \ shims) dodane w zmiennej ścieżki środowiskowej.
W przypadku okien nie ma polecenia sudo, a także nie ma potrzeby umieszczania znaku $. Aby zainstalować Angular CLI za pomocą wiersza poleceń node.js w systemie Windows, po prostu napisałem npm install -g @ angular / cli, a następnie nacisnąłem Enter. Działało dobrze.
W Windows Powershell możesz użyć polecenia Start-Process z opcją -Verb RunAsuruchomienia i podwyższonego poziomu procesu. Oto przykład mojej funkcji sudo:
function sudo {
Start-Process @args -verb runas
}
Np .: Otwórz plik hostów jako Administrator w notatniku
sudo notepad C:\Windows\System32\drivers\etc\hosts
Bardzo się cieszę mogąc Ci pomóc.
Aby wykonać polecenie sudo, wykonaj następujące czynności: -
Mam nadzieję, że to ci pomoże
Aby po prostu uruchomić polecenie jako administrator w Powershell bez podwyższonych uprawnień, możesz użyć Start-Processbezpośrednio, szczególnie z odpowiednimi opcjami -Verb runas.
Jest to o wiele bardziej zawiłe niż sudo, zwłaszcza że nie można po prostu ponownie użyć poprzedniego polecenia z dodatkową opcją. Musisz osobno określić argumenty polecenia.
Oto przykład użycia polecenia route do zmiany bramy:
To się nie udaje, ponieważ nie jesteśmy w podwyższonym PS:
> route change 0.0.0.0 mask 0.0.0.0 192.168.1.3
The requested operation requires elevation.
Działa to po zaakceptowaniu UAC:
> Start-Process route -ArgumentList "change 0.0.0.0 mask 0.0.0.0 192.168.1.3" -Verb runas
Lub dla polecenia, które wymaga cmd.exe:
> Start-Process cmd -ArgumentList "/c other_command arguments ..." -Verb runas