Bagaimana saya bisa selalu menjalankan command prompt sebagai administrator?

104

Sebagai pengembang, saya sering perlu membuka command prompt untuk berbagai keperluan. Sebagai contoh, saya gunakan iisresetuntuk me-restart server web lokal saya.

Saya biasanya membuka jendela perintah dengan satu dari dua cara:

  1. Tekan Win, ketik "cmd" dan tekanEnter
  2. Saat berada di Explorer, tahan Shiftdan klik kanan pada folder, dan pilih "Buka jendela perintah di sini"

Namun, ketika saya membuka jendela perintah dengan salah satu cara ini, saya tidak memiliki hak administrator penuh yang saya rasa saya berhak.

Saya seorang administrator, tetapi cmd.exe tidak tahu itu

Untuk menjalankan aplikasi khusus administrator, saya harus membuka baris perintah dengan cara yang relatif melelahkan ini:

  1. Tekan Win, ketik "cmd"
  2. Tunggu hingga menu terisi
  3. Angkat tangan dari keyboard dan letakkan di mouse
  4. Klik kanan item menu "cmd.exe"
  5. Pilih "Jalankan sebagai administrator"

Ini tidak dapat diterima karena beberapa alasan:

  • Jendela selalu terbuka di C: \ windows \ system32, daripada Usersdirektori saya (seperti dalam teknik yang disetujui 1) atau folder yang saya inginkan (seperti dalam teknik yang disetujui 2). Jadi saya sering harus mengubah direktori untuk mencapai tujuan yang saya inginkan.
  • Proses ini beberapa milidetik lebih lambat daripada salah satu metode pilihan saya. Dilakukan beberapa kali sehari, setiap hari selama sisa karir saya, itu menambahkan hingga sekitar sepuluh hari waktu yang dihabiskan untuk mengklik dan menunggu dan perubahan direktori.
  • Sebagai seorang programmer, melakukan tugas robot yang tidak berguna menyebabkan saya sangat menderita secara emosional.
  • Sebagai seorang programmer, mengangkat tangan adalah tugas berat yang menyebabkan saya sakit fisik hebat.

Itulah sebabnya saya mencari solusi satu-dan-dilakukan yang akan membiarkan teknik disetujui 1 & 2 meminta perintah administrator terbuka.

Banyak program yang memungkinkan Anda mengubah tingkat privilege default secara permanen dari menu Properties. Command Prompt bukan salah satu dari program tersebut.

masukkan deskripsi gambar di sini

Bagaimana cara membuat jendela perintah dijalankan sebagai administrator secara default (bahkan ketika menggunakan opsi menu konteks "Buka perintah jendela di sini")?

Kevin
sumber
Mengapa tidak mengubah UAC menjadi tinggi saja?
surfasb
Saya tidak melihat opsi "meninggikan saja" pada slider UAC saya. Apakah Anda merujuk sesuatu selain jendela Pengaturan Kontrol Akun Pengguna?
Kevin
6
Saya pikir ini Hammer Time ...
ThunderToes

Jawaban:

88

Untuk menjawab bagian pertama dari pertanyaan Anda, ketika Anda menekan tombol Windows dan mengetik "CMD" Anda dapat menekan Ctrl+ Shift+ Enteruntuk membuka sebagai administrator.

Untuk menjawab bagian kedua dari pertanyaan Anda, rekatkan yang berikut ke dalam catatan dan simpan dengan ekstensi ".reg":

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Open Command Window Here as Administrator"

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""

Kemudian jalankan file tersebut. Ini akan menggabungkan perubahan ke dalam registri dan menambahkan opsi ke menu konteks Anda. (Tidak perlu tombol shift.)

Jesse
sumber
7
Catatan; Anda masih harus menerima prompt UAC dalam kedua kasus.
Synetech
1
Suntingan registri tidak berfungsi di windows 8.
Biker John
Patch registri berfungsi untuk Server 2012 R2
fiat
Itu tidak bekerja untuk saya di Windows 7
Hello Universe
1
Jika Anda tidak melihat perintah setelah menjalankan file reg, keluar dari Windows dan masuk kembali.
trebormf
38

Banyak program yang memungkinkan Anda mengubah tingkat privilege default secara permanen dari menu Properties. Command Prompt bukan salah satu dari program tersebut.

The Kompatibilitas tab benar-benar dinonaktifkan untuk semua executable Windows:

masukkan deskripsi gambar di sini

Untuk mengatur hak admin untuk executable Windows, Anda perlu membuat pintasan dan menggunakan tab PintasanAdvanced(item prompt perintah di menu Mulai sudah merupakan pintasan):

masukkan deskripsi gambar di sini

Jendela selalu terbuka di C: \ windows \ system32, daripada direktori Users saya (seperti dalam teknik 1 yang disetujui) atau folder yang ingin saya masuki (seperti dalam teknik 2 yang disetujui). Jadi saya sering harus mengubah direktori untuk mencapai tujuan yang saya inginkan.

Itu normal dan masuk akal karena jika Anda membuka command-prompt admin, Anda mungkin melakukan beberapa tindakan sistem yang memerlukan hak admin daripada tindakan pengguna yang sudah Anda miliki izinnya.

Anda dapat mengatur direktori default secara global dengan menambahkan / mengedit Autorunentri registri (bahkan tidak harus menjadi string yang dapat diperluas untuk menggunakan variabel lingkungan):

REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"Autorun"="cd /d \"%userprofile%\""

Sekarang, setiap kali Anda membuka prompt perintah menggunakan metode apa pun akan secara otomatis default (baik, secara teknis mengubah direktori ) ke direktori profil pengguna Anda.

Lebih baik lagi, Anda dapat menambahkan perintah lain untuk dijalankan secara otomatis setiap kali Anda membuka command-prompt menggunakan &operator (misalnya, cd /d %userprofile% & cls & dir). Selain itu, Anda dapat mengatur nilai yang sama di kunci yang sama di bawah HKLMcabang untuk mengaturnya untuk semua pengguna.


Perhatikan bahwa Anda masih harus menerima prompt UAC. Sayangnya tidak ada (saat ini?) Tidak ada cara untuk membuat "daftar putih" UAC dari program tepercaya sehingga command-prompt dapat dijalankan sebagai admin tanpa harus menerima prompt. Ini membuat Anda dengan (a) beberapa opsi.

  • Anda dapat mematikan atau mematikan UAC sama sekali ( useraccountcontrolsettings.exe)
  • Anda dapat menggunakan program privilege-elevation seperti Elevator alias Elevate Me atau Elevation PowerToy
  • Buat tugas terjadwal yang ditinggikan , masukkan kredensial (sekali) untuknya, dan kemudian buat pintasan ke tugas tersebut

Dalam kasus pertama, Anda sama sekali menghindari UAC sementara di dua yang terakhir, Anda hanya memasukkan kredensial satu kali saat membuat pintasan.

Synetech
sumber
Ada masalah dengan pengaturan direktori saat ini melalui autorun. Dengan nilai yang ditetapkan, cd /d "%userprofile%"autoruns tidak hanya ketika membuka jendela konsol baru, tetapi juga setiap kali thread eksekusi baru dipanggil. Ini dapat menyebabkan masalah, misalnya, dengan for /floop. Coba ini di prompt cmd: cd "\Program Files"lalu for /f "delims=" %I in ('cmd /c cd') do @echo %I. Anda akan melihat bahwa for /floop berpikir direktori kerjanya saat ini adalah $ home, bukan Program Files. Lebih aman untuk memodifikasi cmdpintasan dan menetapkan target sebagai "%comspec%" /k cd /d "%userprofile%".
rojo
Jika Anda ingin mempertahankan versi Windows dan info hak cipta saat membuka jendela konsol baru, tetapkan target pintasan ke%comspec% /c cd /d "%USERPROFILE%" & %comspec%
rojo
+1 untuk jawaban pengeditan non-registri. Jawaban lain mungkin baik-baik saja pada tahun 2012, tetapi saya tidak ingin mencobanya pada Windows 10 hari ini.
Alan
19

Solusi yang saya gunakan adalah membuka command prompt dengan membuka menu start, mengetik 'cmd' dan menekan Ctrl+ Shift+ Enter. Ini akan menyebabkan program yang dipilih diluncurkan sebagai administrator.

Dracs
sumber
1
Apakah ada alternatif yang tidak memerlukan "pencarian"? (karena dari apa yang saya tahu mengetik barang di dalam kotak sebenarnya mencari)
Pacerier
Hanya cara lain yang saya tahu adalah jawaban Luke, nonaktifkan UAC. Pencarian untuk cmd cukup cepat, bahkan tidak dapat menekan Ctrl + Shift + Enter sebelum menemukannya.
Dracs
Saya melakukan itu sepanjang waktu di komputer pelanggan. Ia menemukan CMD sangat cepat
Kanada Luke
Apakah ini akan memuatnya sebagai Administrator?
barlop
@barlop Ya, hotkey itu (Ctrl + Shift + Enter) akan meluncurkan program yang disorot di menu Start sebagai administrator.
Dracs
12

Untuk menjalankan otomatis CMDsebagai admin setiap kali diklik (tanpa harus mengklik kanan atau membuat pintasan tambahan), ada perbaikan yang mudah untuk ini:

  1. Di Penyunting Registri , navigasikan ke:
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

    • Jika tidak ada Layersfolder , Anda harus membuatnya dan menamainya:
      Klik kanan AppCompatFlagsfolder tersebut pilih NewKey
  2. Klik kanan Layers, pilih NewString Value. Setel nama nilai string baru Anda ke path lengkap ke ( CMD.EXE) prompt perintah (yaitu C:\Windows\System32\cmd.exe)

  3. Klik dua kali nilai string baru untuk memodifikasinya, dan atur "Nilai data" menjadi RUNASADMIN.

Saya memiliki gangguan yang sama, dan ini berhasil untuk saya.

Biru
sumber
11

Jika Anda ingin CMD.exe selalu dijalankan sebagai administrator, cukup tambahkan kode reg di bawah ini ke Registry Anda:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Windows\\System32\\cmd.exe"="~ RUNASADMIN"
"C:\\Windows\\SysWOW64\\cmd.exe"="~ RUNASADMIN"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Windows\\System32\\cmd.exe"="~ RUNASADMIN"
"C:\\Windows\\SysWOW64\\cmd.exe"="~ RUNASADMIN"
M Sasan MH
sumber
2
Ini bekerja untuk saya di Windows 8.1. Sekarang saya tekan saja Windows-R, cmd, Enter. Ini juga berfungsi untuk membuka jendela perintah dari File Explorer melalui Shift-RightClick> Buka jendela perintah di sini.
Troy Gizzi
1
Jika ini berhasil, ini adalah jawaban yang benar, meskipun versi yang jauh lebih lama diterima.
Xodarap777
Ini juga berfungsi untuk Windows 10. Masukkan konten ke dalam notepad, simpan dengan ekstensi .reg dan jalankan
Chris Halcrow
Tidak bekerja untuk saya. Bagian HKLM bahkan tidak mendaftar, untuk beberapa alasan. Debat apakah ini masih berfungsi: superuser.com/questions/961573/… , dengan alternatif.
Ray Woodcock
4

Ada beberapa alat yang saya gunakan yang merupakan solusi lain (selain apa yang disebutkan Jesse).

Kembali ketika Vista pertama kali keluar, Microsoft keluar dengan " meninggikan " powerToy yang cukup berguna dan melakukan pekerjaan dan masih, saya percaya (belum diuji) bekerja untuk Windows 7. Masukkan ke lingkungan jalur Anda dan Anda bisa menjalankan "elevate iisreset" dari prompt perintah normal (atau bahkan "elevate cmd" dari awal / jalankan atau buat pintasan)

Rex
sumber
Berikut ini tautan langsung ke unduhan.
ashleedawg
4

Cara termudah untuk melewati semua kesedihan UAC dll adalah dengan mengatur entri Jadwal Tugas untuk menjalankan cmd.exe menggunakan hak istimewa tertinggi. Jangan membuat acara Pemicu untuk itu dan pastikan bahwa kotak centang Izinkan Tugas Dijalankan Dipilih pada tab Pengaturan. Juga di tab Pengaturan pastikan bahwa drop-down "Jika Tugas Sudah Berjalan, Maka Aturan Berikut Berlaku" drop-down diatur ke Jangan Mulai Mesin Virtual Baru.

Kemudian buat pintasan untuk ini di desktop Anda dan jalankan dari sana, atau melalui hotkey pintasan atau pin pintasan ke bilah tugas.

Saya telah melakukannya di sistem Windows 7 saya dan berfungsi dengan baik.

Peter Wills
sumber
1
Ups, saya lupa menentukan satu hal penting. Berikut adalah jalur target untuk pintasan ke Tugas. C: \ Windows \ System32 \ schtasks.exe / run / TN "command prompt tanpa UAC". Teks di dalam tanda kutip adalah apa pun yang Anda beri nama Tugas saat Anda membuat Tugas.
Peter Wills
jangan lampirkan id email Anda di jawaban Anda
BlueBerry - Vignesh4303
2

Cukup salin & tempel cmd.exe dan beri nama "cmda.exe" di folder \ system32 \ (337 KB bahkan bukan masalah besar ...). Opsi "jalankan sebagai administrator" di properti cmda.exe tidak lagi berwarna abu-abu dan Anda dapat mengaturnya agar selalu dijalankan sebagai admin. Anda sekarang akan memiliki dua prompt perintah: yang pertama adalah perintah biasa, perintah kedua memiliki (a) hak istimewa dmin. Mengetik "cmda" di Winbilah pencarian sama mudahnya dengan "cmd"!

Untuk cmd dalam menu konteks dengan hak istimewa admin, pastikan Anda sudah memiliki cmda.exe di tempat, tambahkan ini ke file .reg baru & luncurkan

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmda]
@="Open command window here (Administrator)"
"HasLUAShield"=""
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmda\Command]
@="cmda.exe /s /k pushd \"%V\""

Anda akan melihat dua baris yang sama di menu konteks (bergeser); satu Prompt Perintah yang tidak ditinggikan dan satu lagi dengan "(Administrator)" ditambahkan.

Itu dia...

Ikana
sumber
1

Buat pintasan ke cmd.exe, klik kanan dan pilih properti, pada tab Shortcut pilih Advanced, centang Run as Administrator.

WinOutreach2
sumber
1

Saya pikir cara termudah untuk selalu menjalankan cmd sebagai admin adalah membuat file .reg dengan kode di bawah ini:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
@="C:\\Windows\\System32\\cmd.exe"="RUNASADMIN"

Rekatkan itu di notepad atau apalah dan simpan sebagai file .reg. Catatan: Ini membuat command prompt dijalankan sebagai admin untuk semua pengguna. Untuk selalu berjalan sebagai admin hanya pada pengguna Anda, ubah HKEY_LOCAL_MACHINE menjadi HKEY_CURRENT_USER

pengguna281995
sumber
1

Semua berkat Jesse Brohinsky

Versi yang lebih ditingkatkan. Ini juga termasuk direktori latar belakang yang memungkinkan Anda untuk membuka dari dalam folder juga. Juga untuk itu Anda dapat membuka commandpromt sebagai bukan admin.

Anda juga dapat menonaktifkan AdminApprovalMode. Dengan cara ini Anda tidak perlu menjalankan sebagai admin ketika Anda adalah admin. http://helpdeskgeek.com/windows-7/turn-off-admin-approval-mode-in-windows-7/

Windows Registry Editor Version 5.00
;write minus before to unreg example: [-HKEY_CLASSES_ROOT\Directory\shell\cmdhere]

[HKEY_CLASSES_ROOT\Directory\shell\cmdhere]
@="Open Command Window Here"

[HKEY_CLASSES_ROOT\Directory\shell\cmdhere\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmdhere]
@="Open Command Window Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmdhere\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Open Command Window Here as Administrator"

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas]
@="Open Command Window Here as Administrator"

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""
ColacX
sumber
0

Satu-satunya cara lain, selain dari apa yang disebutkan Dracs, adalah menonaktifkan UAC sepenuhnya

Luke Kanada
sumber
0

Berikut ini berfungsi untuk saya

@echo off
:: BatchGotAdmin
:-------------------------------------
REM  --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    pushd "%CD%"
    CD /D "%~dp0"
:--------------------------------------

Anda akan mendapatkan prompt uac yang sama yang mengkonfirmasi ke runas admin .. menemukannya beberapa waktu lalu @ stackexchange

sudhi
sumber