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.cmddinamai 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 ingincdke 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
sudoperintah 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
sudopintas 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 dirpada 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.cmdScript 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 pauseperintah menunggu Anda untuk meninjau hasil. Jika Anda mengambil pausejendela administrasi ditutup dan Anda tidak tahu apakah perintah itu berfungsi atau tidak. Dari ERRORLEVELperintah dikembalikan juga.