Komut istemini her zaman yönetici olarak nasıl çalıştırabilirim?


103

Bir geliştirici olarak, genellikle çeşitli amaçlar için bir komut istemi açma ihtiyacım var. Örneğin, iisresetyerel web sunucumu yeniden başlatmak için kullanıyorum .

Genelde komut penceresini iki yoldan biriyle açarım:

  1. Basın Win, "cmd" yazın ve basınEnter
  2. Explorer’dayken Shiftbir klasörü basılı tutun ve "Burada komut penceresini aç" ı seçin.

Ancak, komut penceresini bu yollardan biriyle açtığımda, hakkım olduğunu hissettiğim tam yönetici ayrıcalıklarına sahip değilim.

Yöneticiyim ama cmd.exe bunu bilmiyor

Yalnızca yönetici uygulamalarını çalıştırmak için komut satırını nispeten zahmetli bir şekilde açmam gerekir:

  1. Basın Win, "cmd" yazın
  2. Menünün dolmasını bekleyin
  3. Elinizi klavyeden kaldırın ve fareye koyun
  4. "Cmd.exe" menü öğesini sağ tıklayın
  5. "Yönetici olarak çalıştır" ı seçin

Bu, birkaç nedenden dolayı kabul edilemez:

  • Pencere, dizimden Users(onaylanan teknikte olduğu gibi) veya içinde olmak istediğim klasörden (onaylanan teknikte 2) olduğu gibi daima C: \ windows \ system32'de açılır . Bu yüzden sık sık gitmek istediğim yere ulaşmak için dizinleri değiştirmem gerekiyor.
  • Bu işlem benim tercih ettiğim yöntemlerden iki milisaniyeden daha yavaş. Günde birkaç kez, kariyerimin geri kalanında her gün, tıklama ve bekletme ve dizini değiştirmek için harcanan yaklaşık on güne kadar zaman harcanmaktadır.
  • Bir programcı olarak, anlamsız bir robotik görev yapmak bana büyük bir duygusal acı verir.
  • Bir programcı olarak elimi kaldırmak, bana büyük fiziksel acı çeken yorucu bir iştir.

Bu yüzden onaylanmış tekniklerin 1 ve 2 numaralı yönetici komut istemlerini açmasına izin verecek bir ve bir arada çözüm arıyorum.

Birçok program, varsayılan ayrıcalık seviyesini Özellikler menüsünden kalıcı olarak değiştirmenize izin verir. Komut İstemi bu programlardan biri değil.

görüntü tanımını buraya girin

Komut penceresini varsayılan olarak yönetici olarak nasıl çalıştırabilirim ("Burada komut penceresini aç" bağlam menüsü seçeneğini kullanırken bile)?


Neden sadece UAC'yi sadece yükseltmek için değiştirmiyorsunuz?
surfasb

UAC kaydırıcımda "yalnızca yükselt" seçeneği görmüyorum. Kullanıcı Hesabı Kontrol Ayarları penceresinden başka bir şeyden mi bahsediyorsunuz?
Kevin

6
Sanırım Çekiç Zamanı ...
ThunderToes 23:14

Yanıtlar:


88

Sorunuzun ilk bölümünü cevaplamak için, Windows tuşuna bastığınızda ve "CMD" yazdığınızda , yönetici olarak açmak için Ctrl+ Shift+ tuşlarına basabilirsiniz Enter.

Sorunuzun ikinci bölümünü yanıtlamak için, aşağıdakileri not defterine yapıştırın ve ".reg" uzantısıyla kaydedin:

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\""

Ardından dosyayı çalıştırın. Değişiklikleri kayıt defterinde birleştirir ve seçeneği bağlam menülerinize ekler. (Kaydırma anahtarı gerekmez.)


7
Not; Her iki durumda da UAC istemini kabul etmeniz gerekir.
Synetech

1
Kayıt defteri düzenleme, Windows 8'de çalışmıyor.
Biker John 11

Kayıt defteri yaması Server 2012 R2 için çalışır
fiat

Windows 7'de benim için işe yaramadı
Merhaba Evren

1
Reg dosyasını çalıştırdıktan sonra komutu göremiyorsanız, Windows'dan çıkın ve tekrar oturum açın.
trebormf

38

Birçok program, varsayılan ayrıcalık seviyesini Özellikler menüsünden kalıcı olarak değiştirmenize izin verir. Komut İstemi bu programlardan biri değil.

Uyumluluk sekmesi tamamen için devre dışı tüm Windows' yürütülebilir:

görüntü tanımını buraya girin

Windows yürütülebilir dosyaları için yönetici ayrıcalıklarını ayarlamak için, bir kısayol oluşturmanız ve Kısayol sekmesini kullanmanız gerekir → Advanced(Başlat menüsündeki komut istemi öğesi zaten kısayoldur):

görüntü tanımını buraya girin

Pencere, her zaman C: \ windows \ system32'de, Kullanıcılar dizinimden (onaylanan teknikte olduğu gibi) veya içinde olmak istediğim klasörden (onaylanan teknikte olduğu gibi 2) açılır. Bu yüzden sık sık gitmek istediğim yere ulaşmak için dizinleri değiştirmem gerekiyor.

Bu normaldir ve bir yönetici komut istemi açıyorsanız, muhtemelen zaten izinleri olan kullanıcı işlemleri yerine yönetici ayrıcalıklarına ihtiyaç duyduğunuz bazı sistem işlemlerini yapıyorsunuzdur.

Varsayılan dizini, Autorunkayıt defteri girdisini ekleyerek / düzenleyerek genel olarak ayarlayabilirsiniz (ortam değişkenlerini kullanmak için genişletilebilir bir dize olması gerekmez):

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

Şimdi, herhangi bir yöntemi kullanarak bir komut istemi açtığınızda , kullanıcı profili dizininizde otomatik olarak varsayılan (teknik olarak değişiklik dizini ) olacaktır.

Daha da iyisi, &operatörü kullanarak bir komut istemi açtığınızda otomatik olarak çalıştırılacak diğer komutları ekleyebilirsiniz (örn cd /d %userprofile% & cls & dir.). Ek olarak, aynı değeri HKLMtüm kullanıcılar için ayarlamak üzere dalın altındaki aynı anahtarda ayarlayabilirsiniz.


UAC istemini yine de kabul etmeniz gerekeceğini unutmayın. Ne yazık ki (şu anda?) Güvenilir programların UAC "beyaz listesi" oluşturmanın bir yolu yoktur, böylece komut isteminin istemini kabul etmek zorunda kalmadan yönetici olarak çalıştırılabilir. Bu size (a) birkaç seçenek sunar.

İlk durumda, son ikide UAC'yi tamamen önlersiniz, ikincisi ise, kısayolu oluştururken yalnızca bir kez kimlik bilgilerinizi girersiniz.


Geçerli dizini otomatik çalıştırma yoluyla ayarlamada bir sorun var. Bu değer cd /d "%userprofile%"ayarıyla , yalnızca yeni bir konsol penceresi açarken değil, aynı zamanda her seferinde yeni bir yürütme işlemi başlatıldığında otomatik olarak çalıştırılır. Bu, örneğin for /fdöngülerle ilgili sorunlara neden olabilir . Bunu cmd komut isteminde deneyin: cd "\Program Files"sonra for /f "delims=" %I in ('cmd /c cd') do @echo %I. for /fDöngünün geçerli çalışma dizininin Program Dosyaları değil, $ home olduğunu düşündüğünü göreceksiniz . cmdKısayolu değiştirmek ve hedefi olarak ayarlamak daha güvenlidir "%comspec%" /k cd /d "%userprofile%".
rojo,

Yeni bir konsol penceresi açarken Windows sürümünü ve telif hakkı bilgilerini korumak istiyorsanız, kısayolun hedefini%comspec% /c cd /d "%USERPROFILE%" & %comspec%
rojo

Kayıt dışı düzenleme yanıtı için +1. Diğer cevap 2012'de iyi olmuş olabilir, ancak bugün Windows 10'da denemek istemiyorum.
Alan

19

Kullandığım çözüm, çalıştırma menüsünü açıp 'cmd' yazıp Ctrl+ Shift+ tuşlarına basarak komut istemini açmak Enter. Bu, seçilen programın yönetici olarak başlatılmasına neden olur.


1
"Arama" gerektirmeyen bir alternatif var mı? (Kutuda yazarak şeyler bildiklerini aslında arama çünkü)
Pacerier

Bildiğim tek diğer yol Luke'un cevabı, UAC'yi devre dışı bırakmak. Cmd araması oldukça hızlıdır, onu bulmadan önce Ctrl + Shift + Enter tuşlarına basamaz.
Dracs

Bunu her zaman müşteri bilgisayarlarında yapıyorum. Oldukça lanet hızlı CMD bulur
Kanadalı Luke'u

Bu Yönetici olarak yükler mi?
barlop

@barlop Evet, bu kısayol tuşu (Ctrl + Shift + Enter) vurgulanan programı Başlat menüsünde yönetici olarak başlatacaktır.
Dracs

12

CMDHer tıkladığınızda otomatik olarak yönetici olarak çalıştırmak için (yalnızca sağ tıklamak veya ek kısayollar oluşturmak zorunda kalmadan), bunun için kolay bir düzeltme vardır:

  1. In Kayıt Defteri , gidin:
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

    • Bir yoksa Layersklasör , bir tane oluşturmak ve bunun adı gerekecek:
      sağ tıklayın AppCompatFlagsseçmek klasörü NewKey
  2. Sağ tıklayın Layers, New→ seçin String Value. Yeni dize değerinizin adını tam yol olarak ( CMD.EXE) komut istemi (yani C:\Windows\System32\cmd.exe) olarak ayarlayın.

  3. Değiştirmek için yeni dize değerini çift tıklatın ve "Değer verileri" olarak ayarlayın RUNASADMIN.

Ben aynı sıkıntıyı yaşadım ve bu benim için çalıştı.


11

CMD.exe uygulamasının her zaman yönetici olarak çalıştırılmasını istiyorsanız, Kayıt Defterinize sadece feryat reg kodu ekleyin:

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"

2
Bu benim için Windows 8.1'de çalıştı. Şimdi sadece Windows-R, cmd, Enter tuşuna basın. Ayrıca burada Shift-RightClick> Aç komut penceresini kullanarak Dosya Gezgini'nden bir komut penceresi açmak için de çalışır.
Troy Gizzi

1
Bu işe yararsa, şu anda kabul edilen daha uzun sürüme rağmen, doğru cevap budur.
Xodarap777

Bu da Windows 10 için çalışıyor. İçeriği not defterine yerleştirin, bir .reg uzantısı ile kaydedin ve çalıştırın
Chris Halcrow

4

Diğer geçici çözümler için kullandığım birkaç araç var (Jesse'nin söylediklerine ek olarak).

Vista ilk çıktığında Microsoft , oldukça kullanışlı bir " yükseltme " powerToy ile çıktı ve işini yaptı ve hala, Windows 7 için çalıştığını (test etmedim) çalıştığını düşünüyorum. normal bir komut isteminden "elevis iisreset" (veya start / run'dan "elevd cmd" veya kısayol oluşturma)


İşte indirme için doğrudan bir link .
ashleedawg

4

UAC vb. Bunun için bir Tetikleyici etkinliği oluşturmayın ve Ayarlar sekmesinde Görevin İsteğe Bağlı Olarak Çalıştırılmasına İzin Ver onay kutusunun seçili olduğundan emin olun. Ayrıca Ayarlar sekmesinde, "Görev Zaten Çalışıyorsa, Sonra Aşağıdaki Kural Uygulanır" açılır penceresinin Yeni Bir Örnek Başlatmayın olarak ayarlandığından emin olun.

Ardından masaüstünüzde buna bir kısayol oluşturun ve oradan veya kısayol kısayol tuşuyla çalıştırın veya kısayolu Görev çubuğuna sabitleyin.

Windows 7 sistemimde yaptım ve mükemmel çalışıyor.


1
Hata! Önemli bir şey belirtmeyi unuttum. İşte Görev kısayolunun hedef yolu. C: \ Windows \ System32 \ schtasks.exe / run / TN "UAC olmadan komut istemi". Tırnak içindeki metin, Görevi oluşturduğunuzda Görevi adlandırdığınız şeydir.
Peter Will,

e-posta kimliğinizi cevaplarınıza
eklemeyin

2

Sadece kopyalayıp yapıştırın cmd.exe ve \ system32 \ klasöründe "cmda.exe" olarak yeniden adlandırın (337 KB bile önemli değil ...). Cmda.exe'nin özelliklerinde "yönetici olarak çalıştır" seçeneği artık grileşmeyecek ve siz her zaman yönetici olarak çalışacak şekilde ayarlayabilirsiniz. Şimdi iki komut isteminiz olacak: ilki normal, ikincisi bir (a) dmin ayrıcalığına sahip. WinArama çubuğuna "cmd" yazdığınız kadar kolay "cmda" yazmanız yeterli !

Yönetici ayrıcalıklı bağlam menüsünde cmd için, zaten cmda.exe uygulamasının yerinde olduğundan emin olun, bunu yeni .reg dosyasına ekleyin ve başlatın

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\""

İçerik menüsünde aynı iki hat göreceksiniz (shift); biri yükseltilmemiş bir Komut İstemi ve diğeri de "(Yönetici)" eklenmiş.

Bu kadar...


1

Cmd.exe dosyasına kısayol oluşturun, sağ tıklayın ve özellikleri seçin, Kısayol sekmesinde Gelişmiş'i seçin, Yönetici Olarak Çalıştır'ı işaretleyin.


1

Her zaman cmd'yi yönetici olarak çalıştırmanın en kolay yolu .reg dosyasını aşağıdaki kodla yapmaktır:

Windows Registry Editor Version 5.00

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

Bu not defteri veya bir şey yapıştırın ve .reg dosyası olarak kaydedin. Not: Bu komut isteminin tüm kullanıcılar için yönetici olarak çalıştırılmasını sağlar. Her zaman sadece kullanıcı olarak yönetici olarak çalıştırmak için HKEY_LOCAL_MACHINE ile HKEY_CURRENT_USER değiştir


1

Jesse Brohinsky'e teşekkürler

Daha gelişmiş bir sürüm. Bu aynı zamanda klasörün içinden de açık seçeneği etkinleştirmenizi sağlayan arka plan dizinini içerir. Ayrıca bunun uğruna komut komutunu yönetici olmayan bir kullanıcı olarak açabilirsiniz.

Ayrıca AdminApprovalMode öğesini devre dışı bırakabilirsiniz. Bu şekilde, yönetici olduğunuzda yönetici olarak çalıştırmanız gerekmez. 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\""

0

Draks'ın bahsettiğinden başka tek yol UAC'yi tamamen etkisiz hale getirmektir.


0

Aşağıdaki benim için çalışıyor

@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"
:--------------------------------------

runas admin onaylayan aynı uac istemini alacaksınız .. bir süre önce bulundu @ stackexchange

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.