2012-07-25 13:57:17 +0000 2012-07-25 13:57:17 +0000
106
106

Jak mogę zawsze uruchamiać wiersz poleceń jako administrator?

Jako programista, często mam potrzebę otwarcia wiersza poleceń dla różnych celów. Na przykład, używam iisreset do ponownego uruchomienia mojego lokalnego serwera WWW.

Zazwyczaj otwieram okno poleceń na jeden z dwóch sposobów:

  1. Naciśnij Win, wpisz “cmd” i naciśnij Enter
  2. Będąc w Eksploratorze, przytrzymaj Shift i kliknij prawym przyciskiem myszy na folderze, a następnie wybierz “Otwórz okno poleceń tutaj”

Jednakże, kiedy otwieram okno poleceń w którykolwiek z tych sposobów, nie mam pełnych uprawnień administratora, do których czuję, że jestem uprawniony.

Aby uruchomić aplikacje tylko dla administratora, muszę otworzyć wiersz poleceń w ten stosunkowo pracochłonny sposób:

  1. Naciśnij Win, wpisz “cmd”
  2. Poczekaj na pojawienie się menu
  3. Zdejmij rękę z klawiatury i połóż ją na myszce
  4. Kliknij prawym przyciskiem myszy na pozycji menu “cmd.exe”
  5. Wybierz “Uruchom jako administrator”

Jest to niedopuszczalne z kilku powodów:

  • Okno zawsze otwiera się w C:\system32, a nie w moim Users katalogu (jak w zatwierdzonej technice 1) lub w folderze, w którym chcę się znaleźć (jak w zatwierdzonej technice 2). Więc często muszę zmieniać katalogi, aby dostać się tam, gdzie chcę.
  • Ten proces jest o kilka milisekund wolniejszy niż którakolwiek z moich preferowanych metod. Wykonywany kilka razy dziennie, każdego dnia przez resztę mojej kariery, sumuje się do około dziesięciu dni straconego czasu spędzonego na klikaniu, czekaniu i zmienianiu katalogów.
  • Jako programista, wykonywanie bezsensownego, zrobotyzowanego zadania sprawia mi ogromny ból emocjonalny.
  • Jako programista, podnoszenie ręki jest uciążliwym zadaniem, które sprawia mi wielki ból fizyczny.

Dlatego szukam rozwiązania typu “one-and-done”, które pozwoli zatwierdzonym technikom 1 i 2 otwierać monity poleceń administratora.

Wiele programów pozwala na stałe zmienić ich domyślny poziom uprawnień z menu Właściwości. Command Prompt nie jest jednym z tych programów.

**Jak sprawić, by okno poleceń było domyślnie uruchamiane jako administrator (nawet jeśli używasz opcji menu kontekstowego “Otwórz okno poleceń tutaj”)?

Odpowiedzi (13)

88
88
88
2012-07-25 14:12:02 +0000

Aby odpowiedzieć na pierwszą część twojego pytania, po naciśnięciu klawisza Windows i wpisaniu “CMD” możesz nacisnąć Ctrl + Shift + Enter, aby otworzyć jako administrator.

Aby odpowiedzieć na drugą część twojego pytania, wklej poniższy tekst do notatnika i zapisz go z rozszerzeniem “.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\""

Następnie uruchom plik. Spowoduje to wprowadzenie zmian do rejestru i dodanie opcji do menu kontekstowego. (Nie trzeba używać klawisza Shift).

38
38
38
2012-07-25 14:56:43 +0000

Wiele programów umożliwia trwałą zmianę domyślnego poziomu uprawnień z poziomu menu Właściwości. Command Prompt nie jest jednym z tych programów.

Zakładka Compatibility jest całkowicie wyłączona dla wszystkich plików wykonywalnych systemu Windows:

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

Aby ustawić uprawnienia administratora dla plików wykonywalnych systemu Windows, należy utworzyć skrót i użyć zakładki ShortcutAdvanced (pozycja Command-Prompt w menu Start jest już skrótem):

Okno zawsze otwiera się w katalogu C:Windows32, a nie w moim katalogu Users (jak w zatwierdzonej technice 1) lub w folderze, w którym chcę się znaleźć (jak w zatwierdzonej technice 2). Więc często muszę zmieniać katalogi, aby dostać się tam, gdzie chcę iść.

Jest to normalne i ma sens, ponieważ jeśli otwierasz polecenie-prompt administratora, prawdopodobnie wykonujesz jakieś działania systemowe, do których potrzebujesz uprawnień administratora, zamiast działań użytkownika, do których i tak masz już uprawnienia.

Możesz ustawić domyślny katalog globalnie, dodając/edytując wpis w rejestrze Autorun (nie musi to być nawet rozszerzalny ciąg znaków, aby użyć zmiennych środowiskowych):

Teraz, za każdym razem, gdy otworzysz polecenie-prompt używając dowolnej metody będzie automatycznie domyślny (no, technicznie zmień-katalog) do katalogu twojego profilu użytkownika.

Jeszcze lepiej, możesz dodać inne polecenia, które będą automatycznie uruchamiane za każdym razem, gdy otworzysz okno poleceń, używając operatora & (np., cd /d %userprofile% & cls & dir). Dodatkowo, możesz ustawić tę samą wartość w tym samym kluczu pod gałęzią HKLM, aby ustawić ją dla wszystkich użytkowników.

Zauważ, że nadal będziesz musiał zaakceptować monit UAC. Niestety, nie ma (obecnie?) sposobu na stworzenie “białej listy” zaufanych programów, aby można było uruchomić polecenie-prompt jako administrator bez konieczności akceptacji monitu. To pozostawia ci (a) kilka opcji.

  • Możesz wyłączyć UAC lub wyłączyć go całkowicie (useraccountcontrolsettings.exe)
  • Możesz użyć programu podnoszącego uprawnienia, takiego jak Elevator aka Elevate Me lub Elevation PowerToy
  • Utwórz podniesione zaplanowane zadanie , W pierwszym przypadku unikasz całkowicie UAC, podczas gdy w dwóch ostatnich wprowadzasz swoje dane uwierzytelniające tylko raz podczas tworzenia skrótu.
20
20
20
2011-11-13 07:15:41 +0000

Rozwiązaniem, którego używam jest otwarcie wiersza poleceń poprzez otwarcie menu start, wpisanie ‘cmd’ i naciśnięcie Ctrl+Shift+Enter. To spowoduje, że wybrany program zostanie uruchomiony jako administrator.

12
12
12
2013-03-10 22:08:33 +0000

Aby automatycznie uruchamiać program CMD jako administrator za każdym razem, gdy jest on po prostu kliknięty (bez konieczności klikania prawym przyciskiem myszy lub tworzenia dodatkowych skrótów), istnieje na to prosta metoda:

  1. W Registry Editor , przejdź do:
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

  2. Kliknij prawym przyciskiem myszy Layers, wybierz NowyWartość łańcuchowa. Ustaw nazwę nowej wartości łańcuchowej na pełną ścieżkę do wiersza poleceń (CMD.EXE) (np. C:\Windows\System32\cmd.exe)

  3. Kliknij dwukrotnie na nową wartość łańcuchową, aby ją zmodyfikować i ustaw “Dane wartości” na RUNASADMIN.

Miałem tę samą irytację, a to działało dla mnie.

11
11
11
2014-01-04 17:10:28 +0000

Jeśli chcesz, aby CMD.exe był zawsze uruchamiany jako administrator, dodaj poniższy kod reg do rejestru:

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"
4
4
4
2012-07-25 14:31:14 +0000

Było kilka narzędzi, których używałem, które były innymi obejściami (oprócz tego, o czym wspomniał Jesse).

Kiedy Vista pojawiła się po raz pierwszy, Microsoft wyszedł z elevate “ powerToy, który był całkiem przydatny i wykonał zadanie i nadal, jak sądzę (nie testowałem) działa dla Windows 7. Upuść go do swojego środowiska ścieżki i możesz uruchomić "elevate iisreset” z normalnego wiersza poleceń (lub nawet “elevate cmd” z start/run lub utworzyć skrót)

4
4
4
2013-09-25 01:03:59 +0000

Najprostszym sposobem na ominięcie wszystkich żali związanych z UAC itp. jest skonfigurowanie Harmonogramu zadań, aby uruchamiać cmd.exe z najwyższymi uprawnieniami. Nie należy tworzyć dla niego zdarzenia wyzwalającego i upewnić się, że pole wyboru Allow Task To Be Run On Demand jest zaznaczone w zakładce Settings. Upewnij się również, że w zakładce Ustawienia, w polu “Jeśli zadanie jest już uruchomione, to obowiązuje następująca reguła” wybrano opcję Nie uruchamiaj nowej instancji.

Następnie utwórz skrót do tego na pulpicie i uruchom go stamtąd, lub za pomocą skrótu klawiszowego lub przypnij skrót do paska zadań.

Zrobiłem to na moim systemie Windows 7 i działa to doskonale.

2
2
2
2013-09-23 10:28:31 +0000

Po prostu skopiuj i wklej cmd.exe i zmień jego nazwę na “cmda.exe” w folderze “System32” (337 KB to nawet nie jest dużo…). Opcja “uruchom jako administrator” we właściwościach cmda.exe nie będzie już wyszarzona i można ją ustawić, aby zawsze uruchamiała się jako administrator. Teraz będziesz miał dwa podpowiedzi poleceń: pierwsze jest zwykłe, drugie ma przywilej (a)dmin. Wpisanie “cmda” w pasku wyszukiwania Win jest tak proste jak wpisanie “cmd”!

Aby uzyskać cmd w menu kontekstowym z uprawnieniami administratora, upewnij się, że masz już cmda.exe, dodaj go do nowego pliku .reg i uruchom go

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

Zobaczysz dwie takie same linie w menu kontekstowym (shift); jeden nie podniesiony Command Prompt i drugi z dodanym “(Administrator)”.

To wszystko…

1
1
1
2013-12-15 03:45:32 +0000

Myślę, że najprostszym sposobem, aby zawsze uruchamiać cmd jako admin jest zrobienie pliku .reg z poniższym kodem:

Windows Registry Editor Version 5.00

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

Wklej to w notatniku lub czymś innym i zapisz jako plik .reg. Uwaga: To sprawia, że wiersz poleceń jest uruchamiany jako administrator dla wszystkich użytkowników. Aby zawsze uruchamiać się jako administrator tylko na swoim użytkowniku, zmień HKEY_LOCAL_MACHINE na HKEY_CURRENT_USER

1
1
1
2012-07-25 16:59:21 +0000

Utwórz skrót do cmd.exe, kliknij prawym przyciskiem myszy i wybierz właściwości, w zakładce Skrót wybierz Zaawansowane, zaznacz Uruchom jako Administrator.

1
1
1
2015-01-15 09:26:51 +0000

All thanks to Jesse Brohinsky

A more improved version. To również zawiera katalog tła, który pozwala na otwarciemmmd z wewnątrz folderu, jak również. Również ze względu na to, że możesz otworzyć commandpromt jako nie-administrator.

Możesz również wyłączyć AdminApprovalMode. W ten sposób nie musisz uruchamiać jako admin, kiedy jesteś adminem 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
0
0
2014-09-23 08:41:15 +0000

Następujące rozwiązanie działa dla mnie

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

otrzymasz ten sam monit uac potwierdzający uruchomienie jako admin… znalazłem to jakiś czas temu @ stackexchange

0
0
0
2011-11-13 08:30:56 +0000

Jedynym sposobem, innym niż to, o czym wspomniał Dracs, jest całkowite wyłączenie UAC.