Làm cách nào để chạy lệnh sau trong windows:
$ sudo django-admin.py startproject NEW
?
Làm cách nào để chạy lệnh sau trong windows:
$ sudo django-admin.py startproject NEW
?
Câu trả lời:
Không có sudo
lệnh nào trong Windows. Tương đương gần nhất là "chạy với tư cách quản trị viên."
Bạn có thể thực hiện việc này bằng runas
lệnh với cấp độ tin cậy của quản trị viên hoặc bằng cách nhấp chuột phải vào chương trình trong giao diện người dùng và chọn "chạy với tư cách quản trị viên".
gsudo
( stackoverflow.com/a/58753166/97471 ). Đó là một ưu điểm cho các cửa sổ có *nix sudo
trải nghiệm người dùng: Cho phép thực thi lệnh bên trong bảng điều khiển hiện tại và bộ nhớ cache thông tin xác thực (chỉ một cửa sổ bật lên UAC).
Mở notepad và dán mã này:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c cd /d %CD% && %*'"
@echo on
Sau đó, lưu tệp dưới dạng sudo.cmd
. Sao chép tệp này và dán vào C:\Windows\System32
hoặc thêm đường dẫn sudo.cmd
vào Biến Môi trường PATH của bạn.
Khi bạn mở dấu nhắc lệnh, bây giờ bạn có thể chạy một cái gì đó như sudo start .
.
Nếu bạn muốn cửa sổ nhắc lệnh quản trị luôn mở khi bạn chạy lệnh, hãy thay đổi mã trong notepad thành sau:
@echo off
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
@echo on
Giải trình:
powershell -Command
chạy lệnh powershell.
Start-Process
là một lệnh powershell bắt đầu một quá trình, trong trường hợp này là dấu nhắc lệnh.
-Verb RunAs
chạy lệnh với tư cách quản trị viên.
-Argument-List
chạy lệnh với các đối số.
Lập luận của chúng tôi là '/c cd /d %CD% && %*'
. %*
có nghĩa là tất cả các đối số, vì vậy nếu bạn làm vậy sudo foo bar
, nó sẽ chạy trong dấu nhắc lệnh foo bar
vì các tham số là foo và bar, và %*
trả về foo bar
. cd /d %CD%
là một lệnh để đi đến thư mục hiện tại. Điều này sẽ đảm bảo rằng khi bạn mở cửa sổ nâng lên, thư mục sẽ giống như cửa sổ bình thường. các &&
phương tiện rằng nếu lệnh đầu tiên thành công, hãy chạy lệnh thứ hai.
Đây /c
là tham số cmd để đóng cửa sổ sau khi lệnh kết thúc và /k
là tham số cmd để giữ cửa sổ mở.
Tín dụng cho Adam Plocher cho việc lưu lại mã thư mục hiện tại.
C:\Windows\System32
.
powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/k cd /d %CD% && %*'"
echo
dòng một và dòng ba bằng cách viết trước @
dòng powershell được không?
Tất cả các câu trả lời giải thích cách nâng cao lệnh của bạn trong máy chủ bảng điều khiển mới .
Điều khiến tôi thích thú là không có công cụ nào trong số đó hoạt động giống như vậy *nix sudo
, cho phép thực thi lệnh bên trong bảng điều khiển hiện tại .
Vì vậy, tôi đã viết: gsudo
Mã nguồn https://github.com/gerardog/gsudo
Qua tin sốt dẻo
scoop install gsudo
Hoặc qua Chocolatey
choco install gsudo
Cài đặt thủ công:
Tôi đã tạo wsudo
, một sudo
công cụ CLI giống mã nguồn mở dành cho Windows để chạy các chương trình hoặc lệnh với quyền nâng cao, trong ngữ cảnh của thư mục hiện tại . Nó có sẵn dưới dạng gói Chocolatey .
Tôi sử dụng nó rất nhiều cho những thứ như cấu hình các đại lý xây dựng, mọi thứ quản trị như sfc /scannow
, dism /online /cleanup-image /restorehealth
hoặc đơn giản là để cài đặt / cập nhật các gói Chocolatey địa phương của tôi. Sử dụng có nguy cơ của riêng bạn.
choco install wsudo
Chocolatey phải được cài đặt.
wsudo
là một sudo
công cụ giống Linux dành cho Windows để gọi một chương trình có quyền nâng cao (với tư cách là Quản trị viên) từ dấu nhắc lệnh shell không phải quản trị viên và giữ thư mục hiện tại của nó.
Việc triển khai này không phụ thuộc vào Windows Script Host ( CScript
) cũ. Thay vào đó, nó sử dụng tập lệnh PowerShell 5.1 trợ giúp gọi "Start-Process -Wait -Verb runAs ..."
lệnh ghép ngắn. Hệ thống của bạn rất có thể đã được cài đặt PowerShell 5.x, nếu không, bạn sẽ được đề nghị cài đặt nó như một phần phụ thuộc.
wsudo
chạy một chương trình hoặc một lệnh nội tuyến với các quyền nâng cao trong thư mục hiện tại. Ví dụ:
wsudo .\myAdminScript.bat
wsudox "del C:\Windows\Temp\*.* && pause"
wasudo cup all -y
wasudox start notepad C:\Windows\System32\drivers\etc\hosts
Để biết thêm chi tiết, hãy truy cập repro GitHub .
wasudo
đã giúp bạn dễ dàng hơn. Bản thân tôi chủ yếu sống trong thiết bị đầu cuối bảng điều khiển tích hợp VSCode, vì vậy tôi chỉ cần gõ vào wasudo
đó :) Cải tiến tiếp theo sẽ là kế thừa các vars môi trường .
runas
lệnh yêu cầu người dùng nhập mật khẩu. Nếu bạn không muốn nhập mật khẩu và chỉ muốn nhấp vào hộp thoại UAC, hãy sử dụng Start-Process -Verb runas
trong PowerShell thay vì runas
lệnh.
Bạn thường sẽ không làm như vậy, vì bạn sẽ không chạy nó dưới * nix bất kể. Thực hiện phát triển trong một thư mục người dùng và triển khai sau đó đến các thư mục hệ thống.
trong Windows, bạn có thể sử dụng lệnh runas. Đối với người dùng linux, có một số lựa chọn thay thế cho sudo trong windows, bạn có thể kiểm tra điều này
http://helpdeskgeek.com/free-tools-review/5-windows-alternatives-linux-sudo-command/
Bạn có thể sử dụng lệnh runas - http://technet.microsoft.com/en-us/library/bb490994.aspx hoặc sudowin - http://sourceforge.net/projects/sudowin/
Có loại là. Tôi đã tạo Sudo cho Windows vào năm 2007? 08? Đây là tài liệu bảo mật mà tôi đã viết về nó - https://www.sans.org/reading-room/whitepapers/bestprac/sudo-windows-sudowin-1726 . Khá chắc chắn http://sudowin.sf.net vẫn hoạt động.
Tập lệnh vbs sau đây cho phép khởi chạy một lệnh nhất định với các đối số có độ cao và bắt chước hành vi của lệnh unix sudo ban đầu cho một số trường hợp được sử dụng hạn chế (nó sẽ không lưu thông tin đăng nhập vào bộ nhớ cache cũng như không cho phép thực thi các lệnh với các thông tin đăng nhập khác nhau). Tôi mặc nó vào 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
Ví dụ sử dụng trên dấu nhắc lệnh sudo net start service
Tôi nghĩ rằng tôi đã thử các bước dưới đây sau khi thực hiện một số nghiên cứu và đã thành công
1. cài đặt bản tin bằng cách sử dụng powershell 3 (iex (new-object net.webclient) .downloadstring (' https://get.scoop.sh ')) 2. thực hiện cài đặt bản tin --global sudo 3. đảm bảo đường dẫn (C: \ Users \\ muỗng \ shims & C: \ ProgramData \ muỗng \ shims) được thêm vào biến đường dẫn môi trường.
Không có lệnh sudo trong trường hợp cửa sổ và cũng không cần đặt bất kỳ $ nào. Để cài đặt Angular CLI thông qua dấu nhắc lệnh node.js trong windows, tôi chỉ cần viết npm install -g @ angle / cli và sau đó nhấn Enter. Nó hoạt động tốt.
Trong Windows Powershell, bạn có thể sử dụng lệnh Start-Process với tùy chọn -Verb RunAs
để bắt đầu và quá trình nâng cao. Đây là ví dụ về hàm sudo của tôi:
function sudo {
Start-Process @args -verb runas
}
Ví dụ: Mở tệp máy chủ lưu trữ dưới dạng Quản trị viên trong notepad
sudo notepad C:\Windows\System32\drivers\etc\hosts
Tôi vui để giúp bạn.
Để tạo một lệnh sudo, hãy làm theo các bước: -
Hy vọng điều này sẽ giúp bạn
Để chỉ chạy một lệnh với tư cách là quản trị viên trong Powershell không nâng cao, bạn có thể sử dụng Start-Process
trực tiếp với các tùy chọn phù hợp, đặc biệt -Verb runas
.
Nó phức tạp hơn nhiều so với sudo
, đặc biệt là vì bạn không thể chỉ sử dụng lại lệnh trước đó với một tùy chọn bổ sung. Bạn cần chỉ định riêng các đối số cho lệnh của mình.
Đây là một ví dụ, sử dụng lệnh route để thay đổi cổng vào:
Điều này không thành công vì chúng tôi không ở trong một PS nâng cao:
> route change 0.0.0.0 mask 0.0.0.0 192.168.1.3
The requested operation requires elevation.
Điều này hoạt động sau khi chấp nhận UAC:
> Start-Process route -ArgumentList "change 0.0.0.0 mask 0.0.0.0 192.168.1.3" -Verb runas
Hoặc đối với một lệnh yêu cầu cmd.exe
:
> Start-Process cmd -ArgumentList "/c other_command arguments ..." -Verb runas