Pertanyaan Apakah ada perintah 'sudo' untuk Windows?


Saya selalu bekerja pada akun non-administrator di komputer Windows saya. Terkadang saya perlu menginstal program yang membutuhkan akses administrator. Karena saya kebanyakan menggunakan command prompt Windows, apakah ada perintah Windows untuk meningkatkan privileges, mirip dengan perintah terminal Linux sudo?


414
2017-09-17 09:24


asal


Saya percaya istilah yang Anda cari adalah akses "tinggi". Meskipun kredensial Anda memiliki izin admin, proses di bawah kredensial Anda tidak memiliki izin admin sampai Anda "sudo" perintah. Di Windows, mereka menyebutnya "meninggikan". - surfasb
Cukup gunakan su dan perintah Anda. Ini membuka contoh baru dari PowerShell yang berjalan sebagai admin. - IGRACH
@IGRACH bukan di PowerShell saya ... - jiggunjer


Jawaban:


Itu runas perintah.

runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program

Lari saja:

runas /noprofile /user:Administrator cmd 

untuk memulai shell perintah sebagai administrator


254
2017-09-17 09:29



Anda mungkin menemukan Anda ingin profil dimuat (mis. Termasuk variabel lingkungan) untuk penggunaan yang diperpanjang. Dalam hal mana menjatuhkan /noprofile. - Richard
Ini tidak berhasil untukku. Setelah saya mengetik kata sandi saya, command prompt ditutup. - Jonas
bukankah ini menanyakan kata sandi Administrator? sudo meminta anda kata sandi! - n611x007
Sayangnya, ini benar-benar ketinggalan zaman. Runas hanya menjalankan perintah di bawah kumpulan kredensial yang berbeda. Meskipun kredensial Anda memiliki izin admin, itu tidak berarti semua proses di bawah kredensial Anda berjalan sebagai admin. - surfasb
+1 untuk "kedaluwarsa" karena runas tidak dapat melewati UAC. Sebagai gantinya, tekan tombol Windows, ketik cmd, dan tekan Ctrl + Shift + Enter. - mellow-yellow


saya menemukan mengangkat hari ini yang mana "mengeksekusi perintah dengan elevasi hak istimewa UAC. Ini berguna untuk bekerja di dalam perintah perintah atau dengan file batch." Ini tidak sama dengan sudo, mengubah pengguna eksekusi menjadi Administrator, tetapi sintaksnya jauh lebih mudah digunakan daripada runas, dan dapat menyimpan direktori saat ini, memungkinkan penggunaan jalur relatif.

Synopsis:
  elevate [(-c | -k) [-n] [-u]] [-w] command

Options:
  -c  Launches a terminating command processor; equivalent to "cmd /c command".
  -k  Launches a persistent command processor; equivalent to "cmd /k command".
  -n  When using -c or -k, do not pushd the current directory before execution.
  -u  When using -c or -k, use Unicode; equivalent to "cmd /u".
  -w  Waits for termination; equivalent to "start /wait command".

Tujuan Elevate bukan untuk bekerja di sekitar atau memotong UAC (Kontrol Akun Pengguna), tetapi untuk bekerja dengannya. Selama UAC diaktifkan di sana punya menjadi semacam prompt di beberapa titik dalam proses. Jika Anda perlu menyingkirkan dorongan sama sekali, Anda harus melakukannya nonaktifkan UAC.

Mengurangi titik nyeri meningkatkan proses tertentu dari shell non-istimewa, dan kemudian melakukan seperti biasa. Tanpa ini, Anda perlu memulai prompt perintah istimewa dengan klik kanan> "Run as Administrator", yang tidak dapat dengan mudah ditulis, sebelum mencoba perintah istimewa.


112
2018-04-12 06:42



Ini sempurna dengan "Tinggikan tanpa disuruh" di secpol.msc. Bersama-sama, mereka melakukan hal yang sama %wheel ALL=(ALL) NOPASSWD: ALL di sudo. - sayap
@sayap, hanya untuk memperjelas, maksud Anda ini: ss64.com/nt/syntax-uac.html? - matt wilkie
Satu-satunya masalah yang saya temukan dengan elevate (v1.3.0) adalah bahwa ia tidak mengembalikan kode kesalahan dari program yang dinaikkan. - Ken
Sudo.bat: @elevate %* => untung! - Joe DF
Akan menyenangkan untuk menyebutkan bahwa itu adalah utilitas eksternal, kehilangan OOTB. - Hi-Angel


Anda dapat menggunakan runas perintah yang agak mirip, atau Anda dapat memeriksa sudo untuk Windows proyek berakhir pada SourceForge yang menambahkan perintah sudo.

Perbedaannya halus:

Katakanlah Anda memiliki dua pengguna. Bob adalah pengguna normal dan James adalah administrator.

Jika Anda login sebagai Bob dan menggunakan "runas james acommand" perintah dijalankan seolah-olah dijalankan oleh James, sehingga mengakses pengaturan pengguna James dan setiap perubahan pengguna masuk ke James Dokumen-dokumen saya & pengaturan folder, dll. Jadi jika Anda menginstal aplikasi, katakan, itu akan dipasang sebagai James, bukan sebagai Bob.

Jika di sisi lain Bob melakukan "sudo acommand" perintahnya tetap dijalankan sebagai Bob, tetapi dengan izin tinggi - seperti perintah sudo Linux. Untuk mencegah pengguna dari dapat sudo Anda harus mendefinisikan kelompok pengguna sudoers yang berisi daftar pengguna normal yang memiliki izin untuk mengangkat menggunakan sudo. Pengguna masih harus memberikan kredensial sebelum elevasi.

Terkadang perbedaan itu tidak penting, kadang-kadang begitu, dan saya menemukan bahwa kedua perintah itu dapat berguna.


66
2017-09-17 09:28



Apakah kamu yakin? Ketika saya menjalankan sudo di ubuntu, jika tema saya saat ini ~/.themes maka aplikasi sudo-ed tidak akan dapat mengakses tema itu, karena tidak ada /home/root/.themes, dan akan menggunakan tema gtk jelek default. - hasen
@hasen j - masalah Anda hanya karena ~ / .tema mengevaluasi sebelum perintah dijalankan (dan dengan demikian sebelum beralih ke root). - Jared
Solusi lain, kecuali dihosting di GitHub, adalah windosu: github.com/tehsenaus/windosu Saya baru saja menemukannya, dan tampaknya berfungsi dengan baik. Hal favorit adalah sangat mudah dipasang. Cukup "npm install -g windosu". - Venryx


Anda juga bisa menggunakan Ketinggian Skrip PowerToys.


39
2017-09-17 13:11



Luar biasa - persis apa yang saya cari. Saya tidak ingin menjalankan sebagai perintah memiliki pengguna yang berbeda, hanya untuk menjalankannya dengan hak tinggi. - orip
Persis solusi yang tepat untuk masalah ini! Siapa yang mau Runas dengan sintaksnya yang berantakan? - Stabledog
Saya sering berharap perintah meninggikan dibangun di jendela. Ini alat yang fantastis. - nhinkle♦
sekarang ada sebuah Koleksi Elevation PowerToys oleh penulis yang sama dari mana Menciptakan Naskah yang Mengangkat Diri Sendiri sangat relevan. - matt wilkie
@barlop tentu saja tidak. Itu akan mengalahkan tujuan UAC. - nhinkle♦


Jika Anda siap beralih ke konsol alternatif, ada ConEmu (Saya penulisnya). Salah satu fiturnya - kemampuan untuk menjalankan tab yang ditinggikan maupun yang tidak ditinggikan di satu jendela ConEmu. Tab dapat dimulai dengan kredensial yang berbeda juga.

Untuk kenyamanan pengguna, ada file batch csudo.cmd (yang mungkin mudah diadopsi untuk bash). Baca deskripsi lengkap di wiki proyek. Singkatnya, ketika Anda menjalankan beberapa perintah dari tab non-elevated yang ada, misalnya

csudo dism /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess

ConEmu akan dimulai dism di konsol / tab baru yang ditinggikan (dengan perintah UAC sebelumnya di Vista atau kotak Masuk di XP).

Secara default csudo memulai konsol baru di split (mungkin perubahan melalui pengeditan csudo.cmd isi).

Dan tentu saja Anda dapat mengganti namanya menjadi sudo.cmd jika Anda suka "klasik" sudo kata.

sudo in ConEmu/Windows


25
2017-10-26 07:52



csudo sejak dulu termasuk dalam distribusi ConEmu. Tidak diperlukan tautan sama sekali. - Maximus
Masalahnya di sini adalah tab konsol baru menjadi tidak dapat digunakan setelah perintah sudo'd. Jadi Anda tidak dapat terus bekerja di tab yang ditinggikan, cukup dapatkan press enter or esc to exit pesan. - jiggunjer
Tentu saja kamu tidak bisa. Bahkan pada Unix Anda kembali ke terminal non-tinggi setelah sudo perintah sudah selesai! Kamu salah jalan. - Maximus
1) jika Anda akan membuka jendela atau tab baru Anda mungkin juga menyimpannya, biarkan pengguna pilih jika mereka ingin melanjutkan. 2) Pada ubuntu saya, saya tidak perlu sudo setiap kali, elevasi berlangsung beberapa menit, saya pikir. 3) aplikasi ini memiliki satu juta pilihan, tetapi tidak ada untuk ini? Mungkin aku manja. - jiggunjer


Metode cepat:

Tiga langkah untuk menambahkan sudo.

  1. Buka PowerShell.

  2. Salin skrip berikut (Ctrl + C) dan tempelkan di PowerShell (Alt + Space + E + P):

$script_path="$HOME\Documents\Scripts"; if (!(test-path $script_path)) {New-Item -ItemType directory $script_path} if (!(test-path $profile)) { new-item -path $profile -itemtype file -force }". $script_path\sudo.ps1" | Out-File $profile -append; "function sudo(){if (`$args.Length -eq 1){start-process `$args[0] -verb `"runAs`"} if (`$args.Length -gt 1){start-process `$args[0] -ArgumentList `$args[1..`$args.Length] -verb `"runAs`"}}" | Out-File $script_path\sudo.ps1; powershell
  1. Memukul Memasukkan.

Ini akan secara permanen aktif sudo perintah di PowerShell.

Pemakaian:

sudo <process-name> [param1 [param2 [param3]]]

Contoh:

sudo explorer
sudo notepad
sudo powershell
sudo cmd
sudo taskmgr
sudo tasklist
sudo taskkill /IM Skype.exe /PID 8496

Metode panjang untuk belajar:

Catatan: Saya mencampur skrip dari kedua artikel untuk membuat skrip yang disebutkan sebelumnya. Bukan secara manual menempelkan skrip di notepad saya menambahkan Out-File pernyataan untuk disimpan ps1 dan $profile file dari skrip.

Tip: Jika Anda bukan penggemar besar popup UAC (seperti saya), simpan yang berikut di file * .reg dan jalankan:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"ConsentPromptBehaviorAdmin"=dword:00000000

23
2017-08-28 10:36



Saya suka solusi powershell untuk pertanyaan ini. Ini harus menjadi cara termudah untuk mengangkat sesuatu. File .bat yang ada dapat dengan mudah dikonversi ke POSH - Mitchell Skurnik
Dapatkan kesalahan ini di windows 10: . : File C:\Users\User\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 cannot be loaded because running scripts is disabled on this system. - sowrov
@sowrov, lihat [artikel ini] (www.faqforge.com/windows/windows-powershell-running-scripts-is-disabled-on-this-system/). Secara default skrip PowerShell dinonaktifkan pada setiap instalasi Windows. Anda harus mengaktifkannya dengan perintah ini set-executionpolicy remotesigned. Pilihan lain selain itu remotesigned dijelaskan dalam dokumen resmi. - vulcan raven
Pembaca mencatat skrip ps ini adalah pembungkus untuk powershell -c start -verb runas program.exe fungsionalitas. Juga perhatikan Anda tidak bisa diangkat seperti ini dengan prompt cmd (aslinya). Powershell adalah opsi asli terbaik. - jiggunjer


Jika Anda melakukan ini pada Windows, maka selain perintah Run As seperti yang disebutkan dalam beberapa jawaban lainnya, ada juga cara untuk melakukan ini dengan mouse.

Jika Anda menekan tombol Bergeser Ketika Anda mengklik kanan pada sebagian besar file yang dapat dieksekusi di Windows, Anda akan melihat beberapa opsi lanjutan lainnya. Salah satunya adalah "Run As..."opsi (saya pikir itu disebut"Run As Administrator"dari Vista dan seterusnya).

Anda juga dapat mengunduh versi RunAs yang lebih canggih dari Microsoft, yang disebut ShellRunAs, ini memiliki penyempurnaan atas perintah Runas built-in, baik di command line dan mode grafis, termasuk membiarkan Anda menyimpan kredensial akun


20
2017-09-17 11:22





Surun adalah aplikasi gratis, open-source yang memungkinkan program tertentu berjalan dengan hak administratif, tanpa memberikan kata sandi tanpa mengubah registri pengguna atau mengubah variabel lingkungan.

Ketika saya menggunakan Windows XP, aplikasi ini sangat membantu saya. Beta bekerja di bawah Windows 7.


3
2017-11-17 15:24



Surun melakukan pekerjaan hebat. Namun kadang-kadang di bawah Windows 8 dan 8.1 defaultnya tidak ideal. Karena ini menggantikan menjalankan Windows sebagai fungsi, Anda tidak dapat memulai command prompt dengan klik kanan pada layar mulai. - Wolf