Pada sistem * nix, Anda bisa mendapatkan shell root seperti ini:
$ su # or 'sudo -s'
#
Shell root muncul di dalam terminal yang sama.
Saya mencoba untuk menemukan sesuatu yang melakukan elevasi di tempat yang sama pada Windows Command Prompt. Dengan kata lain, seharusnya tidak memunculkan jendela baru atau menampilkan permintaan UAC. Sejauh ini saya sudah dapat membuat tugas terjadwal yang melewati UAC, tetapi jendela Command Prompt yang ditinggikan tidak muncul di tempatnya.
Apakah ada perintah serupa untuk Windows yang melakukan elevasi di tempat tanpa menelurkan jendela baru?
windows
command-line
uac
pengguna2064000
sumber
sumber
sudo
kadang-kadang akan meminta kata sandi, tetapi melakukannya dengan antarmuka teks. Saya agak bertanya-tanya bagaimana server Nano (yang saya tidak percaya bahkan menawarkan GUI untuk Remote Desktop secara default) menanganinya.Jawaban:
TL; DR - Satu-satunya pilihan adalah menelurkan proses lain. (A baru
cmd.exe
.) Dalam kasus Command Prompt, memulai instance baru dengan token akses yang memiliki izin lebih tinggi akan selalu menghasilkan jendela baru yang dibuat.Tidak mungkin untuk memberikan izin tambahan ke proses yang sudah berjalan .
Saat pengguna dengan hak administratif mencatat ke mesin Windows dengan Kontrol Akun Pengguna (UAC) diaktifkan, dua token akses terpisah dibuat :
Pada saat suatu proses (misalnya
CMD.EXE
) dibuat, ia diberikan salah satu dari dua token akses ini . Jika proses dijalankan "ditinggikan" sebagai Administrator, token akses tanpa filter digunakan. Jika proses tidak diberikan hak admin, token pengguna standar yang difilter digunakan.Setelah proses dibuat, tidak mungkin untuk mengganti token aksesnya . 1 Dalam Keamanan Aplikasi MSDN ini untuk utas Desktop Windows , poster yang mengidentifikasi dirinya sebagai anggota Tim Kernel Windows menyatakan:
Catatan: Kontrol Akun Pengguna diperkenalkan dengan peluncuran Windows Vista .
Jawaban Pengguna Super ini mengutip dua sumber tambahan yang mengkonfirmasi hal yang sama:
Posting blog devzest.com Pemrograman Privilege yang Ditinggikan / UAC :
Artikel techtarget.com Cara meningkatkan hak istimewa program dengan benar menggunakan UAC Vista :
Oleh karena itu tidak mungkin untuk meningkatkan Command Prompt atau proses lainnya di tempat. Satu-satunya pilihan adalah menelurkan proses lain dengan token akses baru (yang dapat menjadi contoh lain dari proses asli jika diinginkan). Dalam kasus Command Prompt, memulai instance baru dengan token akses yang memiliki izin lebih tinggi akan selalu menghasilkan jendela baru yang dibuat, dan jika UAC prompt diaktifkan pada sistem, mereka akan dipicu juga.
1 Anda dapat menyesuaikan hak istimewa dalam token akses yang ada dengan fungsi AdjustTokenPrivileges , tetapi menurut MSDN :
sumber
Meskipun saya adalah pengguna yang antusias
TCC-LE
, ada solusi yang tidak memerlukan program baru: -cmd
sebagai administrator.%SystemRoot%\system32\
- jika tidak, dicd
sana.copy cmd.exe cmdadmin.exe
(atau nama apa pun yang Anda pilih, sepertisu.exe
).cmdadmin.exe
.Sekarang
cmdadmin
adalah milik Andasu
atausudo
: Anda dapat memulainya tanpa parameter untuk memberi Anda shell dengan hak administratif, atau Anda dapat menjalankannya dengan/c
menjalankan satu perintah dalam mode ini. Tergantung pada kebijakan Anda, Anda mungkin atau mungkin tidak diminta untuk konfirmasi.Perhatikan bahwa ini akan selalu membuka jendela baru (seperti halnya solusi TCC
start /elevated ...
): untuk aplikasi GUI ini diharapkan, tetapi untuk program baris perintah, Anda mungkin ingin menggunakan/k
alih-alih/c
, untuk memberi Anda kesempatan untuk melihat output ; atau Anda dapat menjalankan melalui file batch (sudo.cmd
mungkin?) yang menyatukan& pause
hingga akhir string Anda berjalan.Dalam kedua kasus itu tidak persis sama dengan
su
atausudo
, tapi itu yang paling dekat Anda akan dapatkan. Dengan mengatur tata letak windows secara manual, jendela baru dapat dibuat langsung di bawah dan berbatasan dengan aslinya.sumber
sudo
, dengan peringatan masih harus berurusan dengan jendela baru / proses yang melahirkan. Meskipun mungkin bukan ide terbaik dari sudut pandang keamanan, menonaktifkan semua permintaan UAC akan menghilangkan keharusan untuk menanggapi permintaan UAC ketika proses yang ditinggikan dimulai.mklink cmdadmin.exe cmd.exe
Ada cara yang agak tidak nyaman:
Ada cara yang lebih baik tetapi Microsoft menutupnya. Tentu saja, Anda selalu dapat menyingsingkan lengan baju dan menulis skrip Anda sendiri yang setara
sudo
dengan kode sumber yang baru saja saya berikan kepada Anda.Penghujatan! Bakar dia di tiang! ;) Lelucon, tidak. Tidak ada. Itu akan menjadi bug dan kerentanan keamanan. Microsoft membuat upaya eksplisit untuk memastikan bahwa proses peningkatan dan standar memiliki sedikit kesamaan.
Anak-anak cerdas yang memikirkan dua ujung belakang (satu standar dan satu tinggi) dan satu ujung depan grafis untuk keduanya, harus membaca tentang Sesi 0 Isolasi .
sumber
Tidak ada perintah seperti itu. Meskipun saya belum membuktikannya, saya percaya itu karena saya telah melihat banyak cara untuk menggunakan perangkat lunak / kode tambahan untuk mengatasi masalah ini.
Lupakan. Benar-benar melupakannya. Itu bertentangan dengan desain UAC. Jika Anda bisa mengelolanya, Anda melanggar proses keamanan mendasar. Harapkan solusi Anda rusak oleh tambalan setelah Microsoft mengetahui, dan memperbaiki, proses apa pun yang mungkin Anda lakukan untuk mengatasi hal ini.
Solusi untuk menghindari permintaan UAC adalah memiliki elevasi tinggi untuk memulai. UAC seharusnya tidak mengganggu Anda jika Anda cukup berwenang. Jika Anda mulai dengan ketinggian yang lebih rendah (yang sering direkomendasikan untuk manfaat keamanan) dan kemudian mencoba melakukan sesuatu yang membutuhkan ketinggian yang lebih tinggi, maka harapkan interaksi UAC.
sumber
elevate cmd
untuk membuka jendela command prompt baru dengan prompt UAC (situs ini juga memiliki perintah menu konteks!). Atau, tentu saja, Anda cukup Ctrl + Shift + Klik ikon taskbar dari jendela prompt perintah yang ada untuk melakukan hal yang sama - itulah yang paling sering saya lakukan. (Yang saya tahu bukan apa yang diminta OP, tapi apa yang diminta OP diblokir oleh desain.)Apa yang Anda inginkan tidak mungkin di Windows, karena tidak mendukung konsep ini. Anda harus memulai proses baru dengan izin yang lebih tinggi .
Saya menggunakan nircmd untuk meningkatkan proses dari commandline. Perintah Anda adalah
nircmdc elevate cmd
sumber
Saya melihat pertanyaan ini dan memberikan solusi sederhana. Ini adalah utilitas kecil yang disebut
rsudo
, yang menjalankan perintah yang ditingkatkan dari jendela CMD biasa.Catatan: Prompt UAC akan muncul. Menyembunyikan ini tidak mungkin, itulah cara UAC dirancang.
Unduh[Unduh tidak berfungsi, akan segera diperbarui]Catatan: Perintah dijalankan di jendela baru. Jika Anda ingin melihat output, jalankan
rsudo.exe "pause && [command]"
sumber
rsudo.exe "[command] && pause"
?pause
dijalankan terlebih dahuluYang ini aneh.
Anda dapat mencoba melakukan ssh ke komputer Anda sendiri yang akan menggunakan terminal yang sama, tetapi sebenarnya akan menjadi yang sama sekali berbeda.
Ini akan berhasil, tetapi mungkin itu bukan yang Anda inginkan.
Orang lain mungkin merasa berguna.
sumber
Coba JPSOFT Take Command command prompt TCC / LE. Muncul dalam versi 32 dan 64-bit dan gratis kecuali Anda menginginkan lebih banyak fungsi.
Buka https://jpsoft.com/ dan klik pada Unduhan dan pilih yang Anda inginkan.
TCC / LE memiliki START / ELEVATED, yang memulai program dengan hak admin penuh. (Hanya Windows Vista atau yang lebih baru.)
sumber