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

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

Als Entwickler habe ich oft das Bedürfnis, eine Eingabeaufforderung für verschiedene Zwecke zu öffnen. Zum Beispiel benutze ich iisreset, um meinen lokalen Webserver neu zu starten.

Normalerweise öffne ich das Befehlsfenster auf eine von zwei Arten:

  1. Drücken Sie Win, geben Sie “cmd” ein und drücken Sie die Eingabetaste
  2. Halten Sie im Explorer die Umschalttaste gedrückt, klicken Sie mit der rechten Maustaste auf einen Ordner und wählen Sie “Befehlsfenster hier öffnen”

Wenn ich das Befehlsfenster auf eine dieser beiden Arten öffne, habe ich jedoch nicht die vollen Administratorrechte, die mir meiner Meinung nach zustehen.

Um Anwendungen auszuführen, die nur für Administratoren zugänglich sind, muss ich die Befehlszeile auf diese relativ umständliche Weise öffnen:

  1. Win drücken, “cmd” eingeben
  2. Warten, bis sich das Menü öffnet
  3. Hand von der Tastatur nehmen und auf die Maus legen
  4. Rechtsklick auf den Menüpunkt “cmd.exe”
  5. Wählen Sie “Als Administrator ausführen”

Dies ist aus mehreren Gründen inakzeptabel:

  • Das Fenster öffnet sich immer in C:\windows\system32 und nicht in meinem Users-Verzeichnis (wie in bewährter Technik 1) oder in dem Ordner, in dem ich sein möchte (wie in bewährter Technik 2). Ich muss also oft die Verzeichnisse wechseln, um dorthin zu gelangen, wo ich hin will.
  • Dieser Prozess ist einige Millisekunden langsamer als eine meiner bevorzugten Methoden. Mehrmals am Tag durchgeführt, jeden Tag für den Rest meiner Karriere, summiert sich das auf etwa zehn Tage verlorene Zeit, die ich mit Klicken, Warten und Verzeichniswechseln verbracht habe.
  • Als Programmierer verursacht das Ausführen einer sinnlosen Roboteraufgabe bei mir großen emotionalen Schmerz.
  • Als Programmierer ist das Heben meiner Hand eine anstrengende Aufgabe, die mir große körperliche Schmerzen verursacht.

Deshalb suche ich nach einer One-and-Done-Lösung, die es ermöglicht, dass die bewährten Techniken 1 & 2 Administrator-Befehlseingaben öffnen.

Bei vielen Programmen können Sie die Standardberechtigungsstufe über das Menü “Eigenschaften” dauerhaft ändern. Die Eingabeaufforderung gehört nicht zu diesen Programmen.

Wie kann ich erreichen, dass die Eingabeaufforderung standardmäßig als Administrator ausgeführt wird (auch bei Verwendung der Kontextmenüoption “Eingabeaufforderung hier öffnen”)?

Antworten (13)

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

Um den ersten Teil Ihrer Frage zu beantworten: Wenn Sie die Windows-Taste drücken und “CMD” eingeben, können Sie Strg + Umschalt + Eingabe drücken, um das Programm als Administrator zu öffnen.

Um den zweiten Teil Ihrer Frage zu beantworten, fügen Sie die folgende Datei in Notepad ein und speichern Sie sie 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 die Datei dann aus. Es wird die Änderungen in die Registrierung einfügen und die Option zu Ihren Kontextmenüs hinzufügen. (Keine Umschalttaste erforderlich.)

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

Bei vielen Programmen können Sie die Standardberechtigungsstufe über das Menü “Eigenschaften” dauerhaft ändern. Die Eingabeaufforderung gehört nicht zu diesen Programmen.

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

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

Um Admin-Rechte für ausführbare Programme von Windows festzulegen, müssen Sie eine Verknüpfung erstellen und die Registerkarte VerknüpfungAdvanced verwenden (der Eintrag der Eingabeaufforderung im Startmenü ist bereits eine Verknüpfung):

Das Fenster öffnet sich immer in C:\windows\system32 und nicht in meinem Benutzerverzeichnis (wie in bewährter Technik 1) oder in dem Ordner, in dem ich sein möchte (wie in bewährter Technik 2). Ich muss also oft die Verzeichnisse wechseln, um dorthin zu gelangen, wo ich hin will.

Das ist normal und macht Sinn, denn wenn Sie eine Admin-Eingabeaufforderung öffnen, führen Sie wahrscheinlich einige Systemaktionen durch, für die Sie Admin-Rechte benötigen, anstatt Benutzeraktionen, für die Sie ohnehin schon Berechtigungen haben.

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

Nun wird jedes Mal, wenn Sie eine Eingabeaufforderung mit einer beliebigen Methode öffnen, automatisch das Verzeichnis Ihres Benutzerprofils voreingestellt (naja, technisch gesehen Verzeichnis wechseln).

Noch besser: Sie können andere Befehle hinzufügen, die automatisch ausgeführt werden, wenn Sie eine Eingabeaufforderung mit dem Operator & öffnen (z. B. cd /d %userprofile% & cls & dir). Außerdem können Sie denselben Wert im selben Schlüssel unter dem Zweig HKLM setzen, um ihn für alle Benutzer zu setzen.

Beachten Sie, dass Sie weiterhin die UAC-Eingabeaufforderung akzeptieren müssen. Leider gibt es (derzeit?) keine Möglichkeit, eine UAC-“Whitelist” mit vertrauenswürdigen Programmen zu erstellen, so dass die Eingabeaufforderung als Administrator ausgeführt werden kann, ohne dass Sie die Aufforderung akzeptieren müssen. Dies lässt Ihnen (a) wenige Möglichkeiten.

  • Sie können die UAC herunterfahren oder ganz ausschalten (useraccountcontrolsettings.exe)
  • Sie können ein Programm zur Erhöhung der Berechtigungen wie Elevator aka Elevate Me oder das Elevation PowerToy
  • Erstellen Sie einen erweiterten geplanten Task , geben Sie die Anmeldeinformationen (einmal) dafür ein, und erstellen Sie dann eine Verknüpfung zu dem Task

Im ersten Fall vermeiden Sie die UAC vollständig, während Sie in den beiden letzteren Fällen Ihre Anmeldeinformationen nur einmal beim Erstellen der Verknüpfung eingeben.

20
20
20
2011-11-13 07:15:41 +0000

Die von mir verwendete Lösung besteht darin, die Eingabeaufforderung zu öffnen, indem Sie das Startmenü öffnen, “cmd” eingeben und Strg+Umschalt+Eingabe drücken. Dies bewirkt, dass das ausgewählte Programm als Administrator gestartet wird.

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

Um CMD jedes Mal, wenn es einfach angeklickt wird, automatisch als Administrator auszuführen (ohne dass Sie mit der rechten Maustaste klicken oder zusätzliche Verknüpfungen erstellen müssen), gibt es eine einfache Lösung dafür:

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

  2. Klicken Sie mit der rechten Maustaste auf Layers, wählen Sie NeuString-Wert. Setzen Sie den Namen Ihres neuen Zeichenfolgenwerts auf den vollständigen Pfad zur (CMD.EXE) Eingabeaufforderung (d. h. 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 das gleiche Ärgernis, und dies hat bei mir funktioniert.

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

Wenn Sie möchten, dass CMD.exe immer als Administrator ausgeführt wird, fügen Sie einfach folgenden Registrierungscode in Ihre Registrierung ein:

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

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

Damals, als Vista zum ersten Mal herauskam, brachte Microsoft ein elevate “ powerToy heraus, das ziemlich nützlich war und den Job erledigte und immer noch, glaube ich (habe es nicht getestet), für Windows 7 funktioniert. Fügen Sie es in Ihre Pfadumgebung ein und Sie könnten "elevate iisreset” von einer normalen Eingabeaufforderung aus ausführen (oder sogar “elevate cmd” von der Start-/Ausführungsleiste aus oder eine Verknüpfung erstellen)

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

Der einfachste Weg, den ganzen Kummer der UAC usw. zu umgehen, ist die Einrichtung eines Task-Planeintrags, um cmd.exe mit den höchsten Rechten auszuführen. Erstellen Sie dafür kein Trigger-Ereignis und stellen Sie sicher, dass das Kontrollkästchen “Task bei Bedarf ausführen” auf der Registerkarte “Einstellungen” aktiviert ist. Stellen Sie außerdem auf der Registerkarte “Einstellungen” sicher, dass die Dropdown-Liste “Wenn der Task bereits ausgeführt wird, gilt die folgende Regel” auf “Keine neue Instanz starten” eingestellt ist.

Erstellen Sie dann eine Verknüpfung dazu auf Ihrem Desktop und führen Sie sie von dort aus aus, oder über eine Tastenkombination oder heften Sie die Verknüpfung an die Taskleiste.

Ich habe das auf meinem Windows 7 System gemacht und es funktioniert perfekt.

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

Kopieren Sie einfach cmd.exe und benennen Sie es in “cmda.exe” im Ordner \system32\ um (337 KB sind keine große Sache…). Die Option “Als Administrator ausführen” in den Eigenschaften von cmda.exe ist nun nicht mehr ausgegraut und Sie können sie so einstellen, dass sie immer als Administrator ausgeführt wird. Sie werden nun zwei Befehlszeilen haben: die erste ist normal, die zweite hat ein (a)dmin-Recht. Es ist genauso einfach, “cmda” in die Win-Suchleiste einzugeben wie “cmd”!

Für das cmd im Kontextmenü mit Admin-Recht, stellen Sie sicher, dass Sie bereits cmda.exe haben, fügen Sie diese in eine 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\""

Sie werden zwei gleiche Zeilen im Kontextmenü (Shift) sehen; eine nicht-erhöhte Eingabeaufforderung und eine andere mit “(Administrator)” hinzugefügt.

Das war’s…

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

Ich denke, der einfachste Weg, cmd immer als Admin auszuführen, ist 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ügen Sie das in Notepad oder so ein und speichern Sie es als .reg-Datei. Hinweis: Dadurch wird die Eingabeaufforderung als Administrator für alle Benutzer ausgeführt. Um die Eingabeaufforderung immer als Administrator für Ihren Benutzer auszuführen, ändern Sie einfach HKEY_LOCAL_MACHINE in HKEY_CURRENT_USER

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

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

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

Vielen Dank an Jesse Brohinsky

Eine verbesserte Version. Diese enthält auch das Hintergrundverzeichnis, mit dem Siecmd auch aus dem Ordner heraus öffnen können. Außerdem kann man das Commandpromt auch als Nicht-Admin öffnen.

Sie können auch den AdminApprovalMode deaktivieren. Auf diese Weise müssen Sie nicht als Admin laufen, wenn Sie Admin 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\""
0
0
0
2014-09-23 08:41:15 +0000

Das folgende funktioniert bei mir

@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 erhalten die gleiche uac-Eingabeaufforderung, die bestätigt, dass Sie als Admin laufen sollen… habe es vor einiger Zeit bei stackexchange gefunden

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

Die einzige andere Möglichkeit, abgesehen von dem, was Dracs erwähnt hat, ist, die UAC komplett zu deaktivieren