Windows'ta aşağıdaki komutu nasıl çalıştırırım:
$ sudo django-admin.py startproject NEW
?
Windows'ta aşağıdaki komutu nasıl çalıştırırım:
$ sudo django-admin.py startproject NEW
?
Yanıtlar:
sudo
Windows'ta komut yoktur . En yakın eşdeğeri "yönetici olarak çalıştır" dır.
Bunu, runas
bir yönetici güven düzeyine sahip komutu kullanarak veya kullanıcı arabiriminde programı sağ tıklayıp "yönetici olarak çalıştır" ı seçerek yapabilirsiniz .
gsudo
( stackoverflow.com/a/58753166/97471 ). *nix sudo
Kullanıcı deneyimine sahip pencereler için bir sudo : Mevcut konsol ve kimlik bilgileri önbelleği içindeki komutu yürütmeye izin verme (yalnızca bir UAC açılır penceresi ).
Not defterini açın ve bu kodu yapıştırın:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c cd /d %CD% && %*'"
@echo on
Ardından dosyayı olarak kaydedin sudo.cmd
. Bu dosyayı kopyalayın ve PATH Ortam Değişkeninizin C:\Windows\System32
olduğu yere yapıştırın veya yolu ekleyin sudo.cmd
.
Komut istemini açtığınızda, şimdi gibi bir şey çalıştırabilirsiniz sudo start .
.
Yönetici komut istemi penceresinin komutu çalıştırdığınızda açık kalmasını istiyorsanız, not defterindeki kodu şu şekilde değiştirin:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
@echo on
Açıklama:
powershell -Command
powershell komutunu çalıştırır.
Start-Process
bir işlemi, bu durumda komut istemini başlatan bir powershell komutudur.
-Verb RunAs
komutu yönetici olarak çalıştırır.
-Argument-List
komutu bağımsız değişkenlerle çalıştırır.
Bizim argümanlarımız '/c cd /d %CD% && %*'
. %*
tüm argümanlar anlamına gelir, yani eğer yaparsanız sudo foo bar
, komut isteminde çalışır foo bar
çünkü parametreler foo ve bar'dır ve %*
döner foo bar
. cd /d %CD%
geçerli dizine gitmek için bir komuttur. Bu, yükseltilmiş pencereyi açtığınızda dizinin normal pencere ile aynı olmasını sağlayacaktır. bu &&
, ilk komut başarılı olursa ikinci komutu çalıştırmanız anlamına gelir.
/c
Komut tamamlandıktan sonra pencereyi kapatmak için bir cmd parametredir ve /k
penceresini açık tutmak için bir cmd parametredir.
Mevcut dizin kodunda kalması için Adam Plocher'a kredi .
C:\Windows\System32
.
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
echo
Powershell @
hattının başına ekleyerek birinci ve üçüncü satırları atlayamaz mısınız?
Tüm yanıtlar, yeni bir konsol ana bilgisayarında komutunuzu nasıl yükselteceğinizi açıklar .
Beni eğlendiren şey, bu araçların hiçbirinin aynı şekilde davranmaması *nix sudo
ve komutun mevcut konsol içinde yürütülmesine izin vermesiydi.
Ben de şunu yazdım: gsudo
Kaynak Kodu https://github.com/gerardog/gsudo
Kepçe ile
scoop install gsudo
Veya Chocolatey aracılığıyla
choco install gsudo
Manuel kurulum:
Oluşturduğum wsudo
, açık kaynak sudo
, doğru yükselmiş Windows programlarını veya komutları çalıştırmak için CLI aracı benzeri geçerli dizinde bağlamında . Chocolatey paketi olarak mevcuttur .
Ben yapı maddeleri, yönetici gibi şeyler yapılandırılması gibi şeyler için bu çok kullanmak sfc /scannow
, dism /online /cleanup-image /restorehealth
ya da sadece / yükleme benim yerel chocolatey paketleri güncellemek için. Kendi sorumluluğunuzdadır kullanın.
choco install wsudo
Chocolatey önceden yüklenmiş olmalıdır.
wsudo
sudo
Windows için, yönetici olmayan bir kabuk komut isteminden yükseltilmiş haklara sahip bir programı (Yönetici olarak) çağıran ve geçerli dizinini koruyan Linux benzeri bir araçtır.
Bu uygulama eski Windows Komut Dosyası Ana Bilgisayarına ( CScript
) bağlı değildir . Bunun yerine, "Start-Process -Wait -Verb runAs ..."
cmdlet'i çağıran yardımcı bir PowerShell 5.1 komut dosyası kullanır . Sisteminizde büyük olasılıkla PowerShell 5.x yüklüdür, aksi takdirde onu bağımlılık olarak yüklemeniz teklif edilir.
wsudo
geçerli dizinde yükseltilmiş haklara sahip bir program veya satır içi komut çalıştırır. Örnekler:
wsudo .\myAdminScript.bat
wsudox "del C:\Windows\Temp\*.* && pause"
wasudo cup all -y
wasudox start notepad C:\Windows\System32\drivers\etc\hosts
Daha fazla ayrıntı için GitHub deposunu ziyaret edin .
wasudo
Bunu senin için kolaylaştırdığına sevindim . Ben çoğunlukla VSCode entegre konsol terminalinde yaşıyorum, bu yüzden sadece wasudo
oraya yazıyorum :) Bir sonraki gelişme, ortam değişkenlerini devralmak olacaktır .
runas
komutu, kullanıcıların şifre yazmasını gerektirir. Parola yazmak istemiyorsanız ve yalnızca UAC iletişim kutusuna tıklamak istiyorsanız Start-Process -Verb runas
, runas
command yerine PowerShell'de kullanın .
Normalde yapmazsınız, çünkü ne olursa olsun * nix altında çalıştırmazsınız. Bir kullanıcı dizininde geliştirme yapın ve daha sonra sistem dizinlerine dağıtın.
Windows'ta runas komutunu kullanabilirsiniz. Linux kullanıcıları için, pencerelerde sudo için bazı alternatifler var, bunu kontrol edebilirsiniz.
http://helpdeskgeek.com/free-tools-review/5-windows-alternatives-linux-sudo-command/
Bir çeşit var. Windows için Sudo'yu 2007'de mi yarattım? 08? İşte onun hakkında yazdığım güvenlik kağıdı - https://www.sans.org/reading-room/whitepapers/bestprac/sudo-windows-sudowin-1726 . Kesinlikle http://sudowin.sf.net hala çalışıyor.
Runas komutunu kullanabilirsiniz - http://technet.microsoft.com/en-us/library/bb490994.aspx veya sudowin - http://sourceforge.net/projects/sudowin/
Aşağıdaki vbs betiği, belirli bir komutu yükseltmeli argümanlarla başlatmaya izin verir ve sınırlı sayıda kullanılmış durum için orijinal unix sudo komutunun davranışını taklit eder (kimlik bilgilerini önbelleğe almaz veya farklı kimlik bilgileriyle komutları gerçekten yürütmeye izin vermez). Ben taktım 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
Komut isteminde örnek kullanım sudo net start service
Sanırım biraz araştırma yaptıktan sonra aşağıdaki adımları denedim ve başarılı oldum
1. powershell 3 (iex (new-object net.webclient) .downloadstring (' https://get.scoop.sh ')) kullanarak scoop kurun 2. scoop install --global sudo 3. yollardan emin olun (C: \ Users \\ scoop \ shims & C: \ ProgramData \ scoop \ shims) çevresel yol değişkenine eklendi.
Windows durumunda sudo komutu yoktur ve ayrıca $ koymaya gerek yoktur. Windows'ta node.js komut istemi aracılığıyla Angular CLI kurmak için npm install -g @ angular / cli yazdım ve ardından Enter tuşuna bastım . İyi çalıştı.
Windows Powershell'de, -Verb RunAs
işlemi başlatma ve yükseltme seçeneği ile İşlemi Başlat komutunu kullanabilirsiniz . İşte sudo işlevi örneğim:
function sudo {
Start-Process @args -verb runas
}
Ör: Ana bilgisayarlar dosyasını not defterinde Yönetici olarak açın
sudo notepad C:\Windows\System32\drivers\etc\hosts
Sana yardım etmekten memnunum
Bir sudo komutu oluşturmak için aşağıdaki adımları izleyin: -
Umarım bu sana yardımcı olur
Yükseltilmemiş bir Powershell'de yönetici olarak bir komutu çalıştırmak için Start-Process
, özellikle doğru seçeneklerle doğrudan kullanabilirsiniz -Verb runas
.
Bundan çok daha kıvrımlıdır sudo
, özellikle de önceki komutu ek bir seçenekle yeniden kullanamazsınız. Komutunuza argümanları ayrı ayrı belirtmeniz gerekir.
Ağ geçidini değiştirmek için route komutunun kullanıldığı bir örnek:
Bu başarısız olur çünkü yükseltilmiş bir PS'de değiliz:
> route change 0.0.0.0 mask 0.0.0.0 192.168.1.3
The requested operation requires elevation.
Bu, UAC'yi kabul ettikten sonra çalışır:
> Start-Process route -ArgumentList "change 0.0.0.0 mask 0.0.0.0 192.168.1.3" -Verb runas
Veya gerektiren bir komut için cmd.exe
:
> Start-Process cmd -ArgumentList "/c other_command arguments ..." -Verb runas