Điều này hoạt động với tôi trên tất cả các nền tảng, bao gồm cả Windows 10. Nhu cầu của tôi rất đơn giản, có lẽ bạn có thể điều chỉnh cách tiếp cận nếu bạn cần nguồn điện .
Tôi đã đưa ra một tập lệnh nhỏ có tên, sudo.cmd
được đặt tên cho lệnh sudo Linux. Nó hoạt động đủ tốt nó nghĩ. Tôi đã phác thảo các yêu cầu, các bước để làm theo và kịch bản ở gần cuối với một ví dụ. Đầu tiên một lời cảnh báo.
CẢNH BÁO : Lệnh chạy trong thư mục Hệ thống theo mặc định. Bạn sẽ muốncd
đến một nơi an toàn đầu tiên.
yêu cầu :
- Chạy lệnh với Administrator một đặc quyền từ windows .CMD
hoặc cmd-shell.
- yêu cầu kiểm tra đặc quyền Windows bình thường trên lệnh
- Nói cách khác, lệnh sẽ KHÔNG hoạt động trừ khi tôi đã đăng nhập bằng tài khoản đặc quyền.
- Thực thi lệnh với sự cho phép của Quản trị viên và tiếp tục khi được gọi bên trong một tập lệnh. Vì vậy, chờ lệnh hoàn thành.
- Hãy đơn giản để nó luôn hoạt động
- Không cần nhập mật khẩu mỗi lần, nếu tôi đã đăng nhập.
- Một phương pháp tốt hơn sẽ là nếu tôi có thể nhập mật khẩu một lần cũng như
sudo
lệnh thực sự trên Linux.
giải pháp :
- Tạo một kịch bản lệnh để thực thi tất cả các đối số được thông qua,
sudo.cmd
- Tạo một lối tắt Windows cho tập lệnh lệnh nó :
sudo.lnk
.
- Đặt các phím
sudo
tắt trong cửa sổ PATH của bạn để nó có thể được nhìn thấy.
- Chỉnh sửa các thuộc tính cắt ngắn, làm cho
Start in:
đường dẫn trống.
- Nhấp vào nút [
Advanced
] - Kiểm traRun as Administrator
- Cho phép cắt ngắn trong đường dẫn windows của bạn, sử dụng biến môi trường PATHEXT, viz.
d:> echo %PATHEXT%
.lnk;.EXE;.CMD;.BAT;.COM
Khi bạn gõ sudo dir
vào dòng lệnh, Windows sẽ hiển thị
User Account Control
Do you want to allow this app to make changes to this device?
[YES] [NO]
Kiểm soát truy cập bật lên. Nếu bạn nhấp vào "[ NO
]" sẽ không có gì xảy ra. Windows sẽ hiển thị Access is denied.
thông báo "".
Khi bạn nhấp vào "[ YES
]" thì lệnh thư mục sẽ chạy ở đặc quyền nâng cao. Tất nhiên bạn có thể muốn một cái gì đó thú vị hơn như dừng hoặc truy vấn trên một dịch vụ:
sudo sc query SDRSVC
SDRSVC là tên dịch vụ của "Dịch vụ sao lưu Windows", phần này hiển thị như sau trong một cửa sổ Cmd riêng:
[sudo]
administrator
---------------
sc query SDRSVC
SERVICE_NAME: SDRSVC
TYPE : 10 WIN32_OWN_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
[done]
Press any key to continue . . .
Bản sudo.cmd
thân kịch bản rất cơ bản. Như tôi đã nói nhu cầu của tôi rất đơn giản. Tôi chỉ muốn dừng và bắt đầu dịch vụ trong khi tôi triển khai mã để thử nghiệm.
sudo.cmd
:
@echo off
@rem sudo.cmd
cd /d %temp%
@echo.
@echo. administrator
@echo. ---------------
cd
@echo.
@rem _________________________________________________
@rem -- Print usage . . .
@if [""] ==["%~1"] goto USAGE
@if /i ["--HELP"]==["%~1"] goto USAGE
@rem _________________________________________________
@rem
@echo. %*
@rem
%*
@rem
set EXIT_STATUS=%ERRORLEVEL%
@rem -- -- -- -- --
@echo.
@echo. [done]
@rem ______________________________________________________
:Exit
@echo.
@pause
exit /b %EXIT_STATUS%
@rem ______________________________________________________
:USAGE
@echo.
@echo ^Usage:
@echo. sudo ^<complete command line^>
@echo.
@echo. Attempts to rune the: ^<complete command line^>
@echo. under Administrator priviliges. Relies on Windows
@echo. prompt for elevated privileges.
@rem ______________________________________________________
@goto Exit
Các pause
lệnh chờ đợi để bạn có thể xem lại kết quả. Nếu bạn lấy pause
ra, cửa sổ quản trị sẽ đóng và bạn không biết lệnh có hoạt động hay không. Các ERRORLEVEL
lệnh từ được trả lại là tốt.