Saya selalu bekerja pada akun non-administrator di komputer Windows saya. Terkadang saya perlu menginstal program yang memerlukan akses administrator. Karena saya kebanyakan menggunakan command prompt Windows, apakah ada perintah Windows untuk meningkatkan hak istimewa, mirip dengan perintah terminal Linux sudo
?
windows
command-line
privileges
ukanth
sumber
sumber
doskey sudo= runas /user:Administrator "cmd /k cd \"%cd%\" & $*"
wsudo
, sebuahsudo
alat -seperti untuk Windows tersedia sebagai paket Cokelat.Jawaban:
The runas perintah.
Lari saja:
untuk memulai shell perintah sebagai administrator
sumber
/noprofile
.Runas
hanya menjalankan perintah di bawah set kredensial yang berbeda. Meskipun kredensial Anda memiliki izin admin, itu tidak berarti semua proses di bawah kredensial Anda dijalankan sebagai admin.Saya menemukan elevate hari ini yang "mengeksekusi perintah dengan elevasi hak istimewa UAC. Ini berguna untuk bekerja di dalam command prompt atau dengan file batch." Ini tidak sama dengan
sudo
, itu mengubah pengguna yang mengeksekusi ke Administrator, tetapi sintaksnya jauh lebih mudah digunakan daripadarunas
, dan itu dapat menyimpan direktori saat ini, memungkinkan penggunaan jalur relatif.Tujuan Elevate bukan untuk mengatasi atau memintas UAC (Kontrol Akun Pengguna), tetapi untuk bekerja dengannya. Selama UAC diaktifkan ada memiliki menjadi beberapa jenis yang cepat pada beberapa titik dalam proses. Jika Anda harus membuang prompt, Anda harus menonaktifkan UAC .
Titik nyeri yang meningkat mereda adalah meningkatkan proses tertentu dari kulit yang tidak istimewa, dan kemudian melanjutkan seperti biasa. Tanpa ini, Anda perlu memulai prompt perintah istimewa dengan klik kanan> "Run as Administrator" , yang tidak dapat dengan mudah dituliskan, sebelum mencoba perintah istimewa.
sumber
%wheel ALL=(ALL) NOPASSWD: ALL
pada sudo.@elevate %*
=> untung!Anda dapat menggunakan perintah runas yang agak mirip, atau Anda dapat memeriksa sudo untuk proyek Windows di SourceForge yang menambahkan perintah sudo.
Perbedaannya halus:
Katakanlah Anda memiliki dua pengguna. Bob adalah pengguna normal dan James adalah administrator.
Jika Anda masuk sebagai Bob dan menggunakan "runas james acommand" perintah dijalankan seolah-olah dijalankan oleh James, sehingga ia mengakses pengaturan pengguna James dan setiap perubahan pengguna masuk ke folder James My Documents & settings, dll. Jadi jika Anda menginstal aplikasi, katakanlah, itu akan diinstal sebagai James, bukan sebagai Bob.
Jika di sisi lain Bob melakukan "sudo acommand" perintah masih dijalankan sebagai Bob, tetapi dengan izin yang ditinggikan - seperti halnya perintah sudo Linux. Untuk mencegah pengguna agar tidak bisa menggunakan sudo, Anda harus mendefinisikan grup pengguna sudoers yang berisi daftar pengguna normal yang memiliki izin untuk meningkatkan menggunakan sudo. Pengguna masih harus memberikan kredensial sebelum peningkatan.
Kadang-kadang perbedaannya tidak penting, kadang-kadang, dan saya menemukan bahwa kedua perintah dapat bermanfaat.
sumber
~/.themes
maka aplikasi sudo-ed tidak akan dapat mengakses tema itu, karena itu tidak ada/home/root/.themes
, dan akan menggunakan tema gtk jelek yang asli.Anda juga bisa menggunakan Script Elevation PowerToys .
sumber
Jika Anda siap untuk beralih ke konsol alternatif, ada ConEmu (saya penulisnya). Salah satu fiturnya - kemampuan untuk menjalankan tab yang ditinggikan dan tidak ditinggikan di satu jendela ConEmu. Tab juga dapat dimulai dengan kredensial yang berbeda.
Untuk kenyamanan pengguna, ada batch-file csudo.cmd (yang dapat dengan mudah diadopsi ke bash). Baca deskripsi lengkap di wiki proyek . Singkatnya, ketika Anda menjalankan beberapa perintah dari tab non-elevated yang ada, misalnya
ConEmu akan mulai
dism
di konsol / tab baru yang ditinggikan (dengan prompt UAC sebelumnya di Vista atau kotak Login di XP).Secara default
csudo
mulai konsol baru dalam split (dapat diubah melalui pengeditancsudo.cmd
konten).Dan tentu saja Anda dapat mengubah nama menjadi
sudo.cmd
jika Anda sukasudo
kata "klasik" .sumber
press enter or esc to exit
pesan.sudo
perintah selesai. Anda salah jalan.Metode cepat:
Tiga langkah untuk menambahkan sudo.
Buka PowerShell.
Salin skrip berikut (Ctrl + C) dan tempel di PowerShell (Alt + Space + E + P):
Ini akan secara permanen mengaktifkan
sudo
perintah di PowerShell.Pemakaian:
Contoh:
Metode panjang untuk belajar:
Catatan: Saya menggabungkan skrip dari kedua artikel untuk membuat skrip yang disebutkan di atas. Alih-alih secara manual menempelkan skrip di notepad saya menambahkan
Out-File
pernyataan untuk menyimpanps1
dan$profile
file dari skrip.Tip: Jika Anda bukan penggemar popup UAC (seperti saya), simpan yang berikut ini di file * .reg dan jalankan:
sumber
. : File C:\Users\User\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 cannot be loaded because running scripts is disabled on this system.
set-executionpolicy remotesigned
. Pilihan lain selainremotesigned
dijelaskan dalam dokumen resmi .powershell -c start -verb runas program.exe
fungsionalitas. Perhatikan juga Anda tidak dapat meninggikan seperti ini dengan cmd prompt (secara native). Powershell adalah opsi asli terbaik.Jika Anda melakukan ini pada Windows, maka selain perintah Run As seperti yang disebutkan dalam beberapa jawaban lain, ada juga cara untuk melakukan ini dengan mouse.
Jika Anda menahan Shifttombol saat mengklik kanan pada sebagian besar file yang dapat dieksekusi di Windows, Anda akan melihat beberapa opsi lebih lanjut. Salah satunya adalah "
Run As...
" pilihan (saya pikir ini disebut "Run As Administrator
" dari Vista dan seterusnya).Anda juga dapat mengunduh versi RunA yang lebih maju dari Microsoft, yang disebut ShellRUNA , ini memiliki peningkatan atas perintah RunA bawaan , baik dalam command line dan mode grafis, termasuk membiarkan Anda menyimpan kredensial akun
sumber
Ada paket cokelat untuknya dengan nama sudo yang nyaman . Anda dapat menginstal paket dengan chocolatey menggunakan perintah ini:
Kemudian di shell Windows / MS apa pun yang harus Anda gunakan, Anda dapat menggunakan
sudo
seperti yang diharapkan.sumber
Surun adalah aplikasi open-source gratis yang memungkinkan program tertentu berjalan dengan hak administratif, tanpa memberikan kata sandi tanpa mengubah registri pengguna atau memodifikasi variabel lingkungan.
Ketika saya menggunakan Windows XP aplikasi ini banyak membantu saya. Beta bekerja di bawah Windows 7.
sumber
Seperti yang mungkin telah Anda temukan, runas akan memungkinkan Anda berjalan sebagai pengguna lain tetapi tidak dapat melakukan elevasi dan tidak melewati direktori saat ini, variabel lingkungan atau baris perintah yang panjang.
Hamilton C shell memecahkannya dengan su dan sudo asli. su memungkinkan Anda menjalankan perintah sebagai pengguna lain; sudo (sebenarnya alias untuk su) memungkinkan Anda menjalankan perintah yang ditinggikan. Anda juga dapat melakukan keduanya, menjalankan peningkatan sebagai pengguna yang berbeda. Direktori saat ini, variabel lingkungan dan baris perintah panjang dilewatkan melalui jabat tangan memori bersama antara su yang berjalan dalam konteks pemanggil dan salinan dirinya yang berjalan sebagai selingan dengan kredensial baru yang kemudian memulai anak. Pengungkapan penuh: Saya penulis.
sumber
sudo
Pengganti yang berfungsi untukmintty
terminal Cygwin adalah menempatkan skrip berikut di PATH pengguna:Bagi saya ini adalah satu-satunya pengganti yang layak untuk meningkatkan hak istimewa program seperti
vim
ataucygrunsrv
saat bekerja di terminal pada Windows.sumber
Skrip ini berfungsi:
Simpan sebagai
sudo.cmd
lalu tambahkan ke PATH AndaCatatan:
runas
sarana dalam konteks ini "Jalankan sebagai administrator" dan bukan "Jalankan sebagai pengguna lain"Diambil dari sini dan sedikit diedit untuk menghapus header cscript.exe dari output
sumber
Solusi paling sederhana dalam pandangan saya adalah untuk memanfaatkan PowerShell untuk melakukan pekerjaan, yang portabel dan akan meminta pengguna menggunakan UAC.
Anda bisa menjalankan ini di shell apa saja (cmd atau PowerShell)
sumber
Skrip vbs berikut membantu saya. Saya memakainya
C:\Windows\System32
Contoh digunakan pada prompt perintah
sudo net start service
sumber