Wie kann ich als Administrator immer die Eingabeaufforderung ausführen?

103

Als Entwickler muss ich häufig eine Eingabeaufforderung für verschiedene Zwecke öffnen. Zum Beispiel verwende ich iisreset, um meinen lokalen Webserver neu zu starten.

Normalerweise öffne ich das Befehlsfenster auf zwei Arten:

  1. Drücken Sie Win, geben Sie „cmd“ ein und drücken SieEnter
  2. ShiftKlicken Sie im Explorer mit der rechten Maustaste auf einen Ordner und wählen Sie "Befehlsfenster hier öffnen".

Wenn ich das Befehlsfenster jedoch auf eine dieser Arten öffne, habe ich nicht die vollen Administratorrechte, auf die ich mich berechtigt fühle.

Ich bin ein Administrator, aber cmd.exe weiß das nicht

Um nur Administratoranwendungen auszuführen, muss ich die Befehlszeile auf diese relativ mühsame Weise öffnen:

  1. Drücken Sie Win, geben Sie "cmd" ein
  2. Warten Sie, bis das Menü gefüllt ist
  3. Heben Sie die Hand von der Tastatur und legen Sie sie auf die Maus
  4. Klicken Sie mit der rechten Maustaste auf den Menüpunkt "cmd.exe"
  5. Wählen Sie "Als Administrator ausführen"

Dies ist aus mehreren Gründen nicht akzeptabel:

  • Das Fenster wird immer in C: \ windows \ system32 geöffnet und nicht in meinem UsersVerzeichnis (wie in genehmigter Technik 1) oder in dem Ordner, in dem ich mich befinden möchte (wie in genehmigter Technik 2). Deshalb muss ich oft die Verzeichnisse wechseln, um dorthin zu gelangen, wo ich hin möchte.
  • Dieser Vorgang ist einige Millisekunden langsamer als eine meiner bevorzugten Methoden. Es wird mehrmals am Tag aufgeführt, jeden Tag für den Rest meiner Karriere. Das summiert sich auf ungefähr zehn Tage verlorener Zeit, die ich mit Klicken und Warten und dem Wechseln des Verzeichnisses verbracht habe.
  • Als Programmierer verursacht mir die Ausführung einer sinnlosen Roboteraufgabe große emotionale Schmerzen.
  • Als Programmierer ist das Anheben meiner Hand eine anstrengende Aufgabe, die mir große körperliche Schmerzen bereitet.

Aus diesem Grund suche ich nach einer einmaligen Lösung, mit der genehmigte Techniken 1 und 2 Administratorbefehle öffnen können.

In vielen Programmen können Sie die Standardberechtigungsstufe dauerhaft über das Menü "Eigenschaften" ändern. Die Eingabeaufforderung ist nicht eines dieser Programme.

Bildbeschreibung hier eingeben

Wie kann ich festlegen, dass das Befehlsfenster standardmäßig als Administrator ausgeführt wird (auch wenn die Kontextmenüoption "Befehlsfenster hier öffnen" verwendet wird)?

Kevin
quelle
Warum nicht einfach die Benutzerkontensteuerung ändern, um sie nur zu erhöhen?
Surfasb
Auf meinem UAC-Schieberegler wird keine Option "Nur erhöhen" angezeigt. Verweisen Sie auf etwas anderes als das Fenster Benutzerkontensteuerungseinstellungen?
Kevin
6
Ich denke, es ist Hammerzeit ...
ThunderToes

Antworten:

88

Um den ersten Teil Ihrer Frage zu beantworten, können Sie, wenn Sie die Windows-Taste drücken und "CMD" eingeben, Ctrl+ Shift+ drücken Enter, um als Administrator zu öffnen.

Fügen Sie zur Beantwortung des zweiten Teils Ihrer Frage Folgendes in den Editor ein und speichern Sie es mit der Erweiterung ".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\""

Führen Sie dann die Datei aus. Es führt die Änderungen in der Registrierung zusammen und fügt die Option zu Ihren Kontextmenüs hinzu. (Keine Umschalttaste erforderlich.)

Jesse
quelle
7
Hinweis; In beiden Fällen müssen Sie die UAC-Eingabeaufforderung noch akzeptieren.
Synetech
1
Registrierung bearbeiten funktioniert nicht in Windows 8.
Biker John
Der Registrierungs-Patch funktioniert für Server 2012 R2
fiat
Es funktionierte nicht für mich unter Windows 7
Hallo Universum
1
Wenn der Befehl nach dem Ausführen der reg-Datei nicht
angezeigt wird
38

In vielen Programmen können Sie die Standardberechtigungsstufe dauerhaft über das Menü "Eigenschaften" ändern. Die Eingabeaufforderung ist nicht eines dieser Programme.

Die Registerkarte " Kompatibilität" ist für alle ausführbaren Dateien von Windows vollständig deaktiviert :

Bildbeschreibung hier eingeben

Um Administratorrechte für Windows ausführbare Dateien eingestellt haben , müssen Sie eine Verknüpfung erstellen und verwenden Verknüpfung Registerkarte → Advanced(die Eingabeaufforderung Punkt im Startmenü ist bereits eine Verknüpfung):

Bildbeschreibung hier eingeben

Das Fenster wird immer in C: \ windows \ system32 geöffnet und nicht in meinem Benutzerverzeichnis (wie in genehmigter Technik 1) oder in dem Ordner, in dem ich mich befinden möchte (wie in genehmigter Technik 2). Deshalb muss ich oft die Verzeichnisse wechseln, um dorthin zu gelangen, wo ich hin möchte.

Das ist normal und sinnvoll, da Sie beim Öffnen einer Admin-Eingabeaufforderung wahrscheinlich einige Systemaktionen ausführen, für die Sie Administratorrechte benötigen, anstatt Benutzeraktionen, für die Sie ohnehin bereits Berechtigungen haben.

Sie können das Standardverzeichnis global festlegen, indem Sie den AutorunRegistrierungseintrag hinzufügen / bearbeiten (es muss nicht einmal eine erweiterbare Zeichenfolge sein, um Umgebungsvariablen zu verwenden):

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

Jedes Mal, wenn Sie eine Eingabeaufforderung mit einer beliebigen Methode öffnen , wechselt das Verzeichnis (technisch gesehen ) automatisch in Ihr Benutzerprofilverzeichnis.

Noch besser ist, dass Sie weitere Befehle hinzufügen können, die automatisch ausgeführt werden, wenn Sie eine Eingabeaufforderung mit dem &Operator öffnen (z cd /d %userprofile% & cls & dir. B. ). Darüber hinaus können Sie denselben Wert in demselben Schlüssel unter der HKLMVerzweigung festlegen, um ihn für alle Benutzer festzulegen.


Beachten Sie, dass Sie die UAC-Eingabeaufforderung weiterhin akzeptieren müssen. Leider gibt es (derzeit?) Keine Möglichkeit, eine UAC-Whitelist mit vertrauenswürdigen Programmen zu erstellen, sodass die Eingabeaufforderung als Administrator ausgeführt werden kann, ohne dass die Eingabeaufforderung akzeptiert werden muss. Dies lässt Ihnen (ein) paar Möglichkeiten.

Im ersten Fall vermeiden Sie die Benutzerkontensteuerung insgesamt, während Sie in den letzten beiden Fällen Ihre Anmeldeinformationen nur einmal eingeben, wenn Sie die Verknüpfung erstellen.

Synetech
quelle
Es gibt ein Problem beim Einstellen des aktuellen Verzeichnisses über Autorun. cd /d "%userprofile%"Wenn dieser Wert festgelegt ist, wird nicht nur beim Öffnen eines neuen Konsolenfensters eine automatische Ausführung ausgeführt, sondern auch jedes Mal, wenn ein neuer Ausführungsthread aufgerufen wird. Dies kann beispielsweise bei for /fSchleifen zu Problemen führen . Versuchen Sie dies an einer Eingabeaufforderung von cmd: cd "\Program Files"then for /f "delims=" %I in ('cmd /c cd') do @echo %I. Sie werden sehen, dass die for /fSchleife denkt, dass das aktuelle Arbeitsverzeichnis $ home und nicht Program Files ist. Es ist sicherer, die cmdVerknüpfung zu ändern und das Ziel als festzulegen "%comspec%" /k cd /d "%userprofile%".
Rojo
Wenn Sie die Windows-Version und die Copyright-Informationen beim Öffnen eines neuen Konsolenfensters beibehalten möchten, legen Sie das Ziel der Verknüpfung auf%comspec% /c cd /d "%USERPROFILE%" & %comspec%
rojo
+1 für nicht zur Registrierung gehörende Bearbeitungsantwort. Die andere Antwort war 2012 vielleicht in Ordnung, aber ich möchte sie heute nicht unter Windows 10 testen.
Alan
19

Die Lösung, die ich verwende, besteht darin, die Eingabeaufforderung zu öffnen, indem ich das Startmenü öffne, 'cmd' eingebe und Ctrl+ Shift+ drücke Enter. Dadurch wird das ausgewählte Programm als Administrator gestartet.

Dracs
quelle
1
Gibt es eine Alternative, die keine "Suche" erfordert? (nach dem, was ich weiß, wird in der Box tatsächlich gesucht)
Pacerier
Die einzige andere Möglichkeit, die ich kenne, ist Lukes Antwort: Deaktiviere UAC. Die Suche nach cmd ist ziemlich schnell. Ich kann nicht einmal Strg + Umschalt + Eingabetaste drücken, bevor es gefunden wird.
Dracs
Ich mache das die ganze Zeit auf Kundencomputern. Es findet CMD verdammt schnell
Kanadier Luke
Wird dies als Administrator geladen?
Barlop
@barlop Ja, dieser Hotkey (Strg + Umschalt + Eingabetaste) startet das markierte Programm im Startmenü als Administrator.
Dracs
12

Um die automatische Ausführung CMDals Administrator jedes Mal ist es einfach geklickt wird (ohne mit der rechten Maustaste oder zusätzliche Verknüpfungen erstellen), gibt es eine einfache Lösung für dieses:

  1. Navigieren Sie im Registrierungseditor zu:
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

    • Wenn es keinen LayersOrdner gibt , müssen Sie einen erstellen und benennen:
      Klicken Sie mit der rechten Maustaste auf den AppCompatFlagsOrdner, und wählen Sie NewKey
  2. Klicken Sie mit der rechten Maustaste Layersund wählen Sie NewString Value. Setzen Sie den Namen Ihres neuen Zeichenfolgenwerts auf den vollständigen Pfad zur CMD.EXEEingabeaufforderung (ie C:\Windows\System32\cmd.exe).

  3. Doppelklicken Sie auf den neuen Zeichenfolgenwert, um ihn zu ändern, und setzen Sie die "Wertdaten" auf RUNASADMIN.

Ich hatte den gleichen Ärger, und das hat bei mir funktioniert.

Blau
quelle
11

Wenn Sie möchten, dass CMD.exe immer als Administrator ausgeführt wird, fügen Sie einfach den folgenden Registrierungscode zu Ihrer Registrierung hinzu:

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
quelle
2
Dies funktionierte für mich unter Windows 8.1. Jetzt drücke ich einfach Windows-R, cmd, Enter. Es funktioniert auch zum Öffnen eines Befehlsfensters aus dem Datei-Explorer über Umschalt-Rechtsklick> Befehlsfenster hier öffnen.
Troy Gizzi
1
Wenn dies funktioniert, ist dies die richtige Antwort, trotz der aktuell viel längeren akzeptierten Version.
Xodarap777,
Dies funktioniert auch für Windows 10. Legen Sie den Inhalt in den Editor, speichern Sie ihn mit der Erweiterung .reg und führen Sie ihn aus
Chris Halcrow
4

Es gab ein paar Tools, die ich verwendet habe und die andere Problemumgehungen waren (zusätzlich zu dem, was Jesse erwähnt hat).

Damals , als Vista zum ersten Mal erschien, kam Microsoft mit einem „heraus heben “ Powertoy , die sehr nützlich und hat seine Aufgabe erfüllt war und, wie ich glaube (nicht getestet) funktioniert für Windows 7. Sie ihn auf Ihrer Pfadumgebung Tropfen und man konnte laufen "elevate iisreset" von einer normalen Eingabeaufforderung aus (oder sogar "elevate cmd" vom Start / Ausführen aus oder eine Verknüpfung erstellen)

Rex
quelle
Hier geht es direkt zum Download.
Ashleedawg
4

Der einfachste Weg, um den Kummer der Benutzerkontensteuerung usw. zu umgehen, besteht darin, einen Task-Zeitplan-Eintrag einzurichten, um cmd.exe mit den höchsten Berechtigungen auszuführen. Erstellen Sie kein Auslöseereignis dafür und stellen Sie sicher, dass das Kontrollkästchen Task bei Bedarf ausführen zulassen auf der Registerkarte Einstellungen aktiviert ist. Stellen Sie auch auf der Registerkarte "Einstellungen" sicher, dass in der Dropdown-Liste "Wenn der Task bereits ausgeführt wird, gilt die folgende Regel" die Option "Keine neue Instanz starten" ausgewählt ist.

Erstellen Sie dann eine Verknüpfung zu diesem Thema auf Ihrem Desktop, und führen Sie sie von dort aus aus, oder verwenden Sie eine Tastenkombination, oder stecken Sie die Verknüpfung in die Taskleiste.

Ich habe es auf meinem Windows 7-System gemacht und es funktioniert einwandfrei.

Peter Wills
quelle
1
Hoppla, ich habe vergessen, eine wichtige Sache zu spezifizieren. Hier ist der Zielpfad für die Verknüpfung zur Aufgabe. C: \ Windows \ System32 \ schtasks.exe / run / TN "Eingabeaufforderung ohne Benutzerkontensteuerung". Der Text in den Anführungszeichen ist der Name der Aufgabe, die Sie beim Erstellen der Aufgabe angegeben haben.
Peter Wills
Fügen Sie
2

Kopieren Sie cmd.exe, fügen Sie sie ein und benennen Sie sie in \ system32 \ folder in "cmda.exe" um (337 KB sind noch keine große Sache ...). Die Option "Als Administrator ausführen" in den Eigenschaften von cmda.exe ist nicht mehr abgeblendet, und Sie können festlegen, dass sie immer als Administrator ausgeführt wird. Sie haben jetzt zwei Eingabeaufforderungen: Die erste ist regulär, die zweite hat ein (a) dmin-Privileg. Es ist so einfach, "cmda" in die WinSuchleiste einzugeben, wie Sie es mit " cmd" tun!

Stellen Sie für das Kontextmenü cmd in mit Administratorrechten sicher, dass Sie bereits cmda.exe installiert haben, fügen Sie diese in die neue .reg-Datei ein und starten Sie sie

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

Im Kontextmenü sehen Sie zwei gleiche Zeilen (Shift); Eine nicht erhöhte Eingabeaufforderung und eine andere mit dem Zusatz "(Administrator)".

Das ist es...

Ikana
quelle
1

Erstellen Sie eine Verknüpfung zu cmd.exe, klicken Sie mit der rechten Maustaste und wählen Sie Eigenschaften aus. Wählen Sie auf der Registerkarte Verknüpfung die Option Erweitert aus und aktivieren Sie Als Administrator ausführen.

WinOutreach2
quelle
1

Ich denke, die einfachste Möglichkeit, cmd immer als Administrator auszuführen, besteht darin, die .reg-Datei mit dem folgenden Code zu erstellen:

Windows Registry Editor Version 5.00

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

Füge das in den Editor oder so ein und speichere es als .reg Datei. Hinweis: Dadurch wird die Eingabeaufforderung für alle Benutzer als Administrator ausgeführt. Um immer nur auf Ihrem Benutzer als Administrator auszuführen, ändern Sie einfach HKEY_LOCAL_MACHINE in HKEY_CURRENT_USER

user281995
quelle
1

Vielen Dank an Jesse Brohinsky

Eine verbesserte Version. Dazu gehört auch das Hintergrundverzeichnis, mit dem Sie cmd auch aus dem Ordner heraus öffnen können. Außerdem können Sie das Kommando Promt als Nicht-Administrator öffnen.

Sie können auch AdminApprovalMode deaktivieren. Auf diese Weise müssen Sie nicht als Administrator ausgeführt werden, wenn Sie Administrator sind. 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
quelle
0

Die einzige andere als die von Dracs erwähnte Möglichkeit besteht darin, die Benutzerkontensteuerung vollständig zu deaktivieren

Kanadischer Luke
quelle
0

Folgendes funktioniert für mich

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

Sie werden die gleiche uac-Eingabeaufforderung erhalten, die Runas Admin bestätigt. Ich habe sie vor einiger Zeit bei StackExchange gefunden

sudhi
quelle