Ini bekerja untuk saya di semua platform, termasuk Windows 10. Kebutuhan saya sederhana, mungkin Anda dapat menyesuaikan pendekatan jika Anda membutuhkan daya .
Saya datang dengan skrip kecil bernama, sudo.cmd
dinamai untuk perintah sudo Linux. Itu bekerja dengan cukup baik menurutnya. Saya telah menguraikan persyaratan, langkah-langkah yang harus diikuti dan skrip berada di dekat bagian bawah dengan sebuah contoh. Pertama, kata peringatan.
PERINGATAN : Perintah ini berjalan di direktori Sistem windows secara default. Anda akan ingincd
ke tempat yang aman dulu.
persyaratan :
- Jalankan perintah dengan Administrator privilege dari windows .CMD
atau cmd-shell.
- memerlukan pemeriksaan hak Windows normal pada perintah
- Dengan kata lain perintah TIDAK akan berfungsi kecuali saya sudah masuk dengan akun istimewa.
- Jalankan perintah dengan izin Admin dan lanjutkan ketika dipanggil di dalam skrip. Jadi tunggu perintahnya selesai.
- Sederhana saja agar selalu berhasil
- Tidak perlu memasukkan kata sandi setiap kali, jika saya sudah masuk.
- Metode yang lebih baik adalah jika saya dapat memasukkan kata sandi seperti halnya
sudo
perintah sebenarnya di Linux.
solusi :
- Buat skrip perintah untuk mengeksekusi semua argumen yang diteruskan,
sudo.cmd
- Membuat Windows pintas untuk perintah nama script itu:
sudo.lnk
.
- Letakkan jalan
sudo
pintas di PATH windows Anda sehingga bisa dilihat.
- Edit properti
Start in:
jalan pintas, buat jalur kosong.
- Klik tombol [
Advanced
] - CentangRun as Administrator
- Aktifkan pintasan di jalur windows Anda, gunakan variabel lingkungan PATHEXT, yaitu.
d:> echo %PATHEXT%
.lnk;.EXE;.CMD;.BAT;.COM
Saat Anda mengetik sudo dir
pada baris perintah, Windows akan menampilkan
User Account Control
Do you want to allow this app to make changes to this device?
[YES] [NO]
Munculan kontrol akses. Jika Anda mengklik "[ NO
]" tidak akan terjadi apa-apa. Windows akan menampilkan pesan " Access is denied.
".
Ketika Anda mengklik "[ YES
]" maka perintah direktori dijalankan pada hak istimewa yang ditinggikan. Tentu saja Anda mungkin menginginkan sesuatu yang lebih menarik seperti berhenti atau meminta layanan:
sudo sc query SDRSVC
SDRSVC adalah nama layanan untuk "Layanan Pencadangan Windows", ini menunjukkan yang berikut di jendela Cmd terpisah:
[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 . . .
The sudo.cmd
Script itu sendiri sangat dasar. Seperti yang saya katakan, kebutuhan saya sederhana. Saya hanya ingin berhenti dan memulai layanan sementara saya menggunakan kode untuk pengujian.
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
The pause
perintah menunggu Anda untuk meninjau hasil. Jika Anda mengambil pause
jendela administrasi ditutup dan Anda tidak tahu apakah perintah itu berfungsi atau tidak. Dari ERRORLEVEL
perintah dikembalikan juga.