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

Hoe kan ik de opdrachtprompt altijd als administrator uitvoeren?

Als ontwikkelaar heb ik vaak de behoefte om een opdrachtprompt te openen voor verschillende doeleinden. Ik gebruik bijvoorbeeld iisreset om mijn lokale webserver opnieuw op te starten.

Ik open het commandovenster meestal op een van de volgende twee manieren:

  1. Druk op Win, typ “cmd” en druk op Enter
  2. In Verkenner, houd Shift ingedrukt en klik met de rechtermuisknop op een map, en kies “Open command window here”

Als ik het commandovenster op een van deze manieren open, heb ik echter niet de volledige beheerdersrechten waar ik recht op meen te hebben.

Om administrator-only applicaties te kunnen draaien, moet ik de commandoregel op deze relatief omslachtige manier openen:

  1. Druk op Win, typ “cmd”
  2. Wacht tot het menu gevuld is
  3. Druk op Win, typ “cmd”
  4. Druk op Win. Wacht tot het menu verschijnt
  5. Haal je hand van het toetsenbord en leg hem op de muis
  6. Klik met de rechtermuisknop op het menu-item “cmd.exe”
  7. Kies “Uitvoeren als administrator”

Dit is om verschillende redenen onaanvaardbaar:

  • Het venster opent altijd in C:Windowssystem32, in plaats van mijn Users directory (zoals in goedgekeurde techniek 1) of de map waarin ik wil zijn (zoals in goedgekeurde techniek 2). Ik moet dus vaak van map veranderen om te komen waar ik wil zijn.
  • Dit proces is enkele milliseconden langzamer dan een van mijn voorkeursmethoden. Een paar keer per dag, elke dag voor de rest van mijn carrière, levert dat zo'n tien dagen aan verloren tijd op, besteed aan klikken, wachten en van directory wisselen.
  • Als programmeur doet het uitvoeren van een zinloze robottaak me veel emotionele pijn.
  • Als programmeur is mijn hand optillen een inspannende taak die me veel fysieke pijn bezorgt.

Daarom ben ik op zoek naar een een-en-ander oplossing die goedgekeurde technieken 1 & 2 beheerderscommandoprompts laat openen.

Veel programma’s laten je hun standaard privilegeniveau permanent veranderen vanuit het Eigenschappen menu. Command Prompt is niet een van die programma’s.

Hoe kan ik het opdrachtvenster standaard als administrator laten draaien (zelfs als ik de “Open opdrachtvenster hier” context menu optie gebruik)?

Antwoorden (13)

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

Om het eerste deel van uw vraag te beantwoorden, wanneer u de Windows-toets indrukt en “CMD” typt, kunt u Ctrl + Shift + Enter gebruiken om als administrator te openen.

Om het tweede deel van je vraag te beantwoorden, plak het volgende in kladblok en sla het op met een “.reg” extensie:

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

Voer dan het bestand uit. Het voegt de wijzigingen samen in het register en voegt de optie toe aan je context menu’s. (Geen shift toets nodig.)

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

Veel programma’s laten je hun standaard privilegeniveau permanent wijzigen via het menu Eigenschappen. Command Prompt is niet een van die programma’s.

Het tabblad Compatibiliteit is volledig uitgeschakeld voor alle uitvoerbare programma’s van Windows:

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

Om beheerdersbevoegdheden voor uitvoerbare programma’s van Windows in te stellen, moet je een snelkoppeling maken en Snelkoppeling tabblad→Advanced gebruiken (het item Opdrachtprompt in het menu Start is al een snelkoppeling):

Het venster opent altijd in C:\windowssystem32, in plaats van in mijn Gebruikersmap (zoals in goedgekeurde techniek 1) of de map waarin ik wil zijn (zoals in goedgekeurde techniek 2). Dus ik moet vaak van map veranderen om te komen waar ik wil zijn.

Dat is normaal en logisch, want als je een admin-prompt opent, doe je waarschijnlijk systeemacties waarvoor je admin-rechten nodig hebt, in plaats van gebruikersacties waar je toch al rechten voor hebt.

Je kunt de standaard directory globaal instellen door de Autorun register entry toe te voegen/te wijzigen (het hoeft niet eens een uitbreidbare string te zijn om omgevingsvariabelen te gebruiken):

Nu zal iedere keer dat je een command-prompt opent met welke methode dan ook automatisch je gebruikers-profiel directory als standaard worden ingesteld (nou ja, technisch gezien verander van directory).

Nog beter, je kunt andere commando’s toevoegen om automatisch uitgevoerd te worden als je een command-prompt opent met de & operator (bijv.) Bovendien kun je dezelfde waarde in dezelfde sleutel onder de cd /d %userprofile% & cls & dir tak zetten om hem voor alle gebruikers in te stellen.

Merk op dat je nog steeds de UAC prompt moet accepteren. Helaas is er (momenteel?) geen manier om een UAC “witte lijst” van vertrouwde programma’s te maken, zodat de commando-prompt als admin kan worden uitgevoerd zonder de prompt te hoeven accepteren. Dit laat je (een) paar opties over.

In het eerste geval vermijd je de UAC helemaal, terwijl je in de laatste twee slechts eenmalig je inloggegevens invoert bij het maken van de snelkoppeling.

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

De oplossing die ik gebruik is om de opdrachtprompt te openen door het startmenu te openen, ‘cmd’ in te typen en op Ctrl+Shift+Enter te drukken. Dit zorgt ervoor dat het geselecteerde programma wordt gestart als administrator.

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

Om CMD automatisch te laten draaien als admin telkens als er gewoon op geklikt wordt (zonder dat u met de rechtermuisknop moet klikken of extra snelkoppelingen moet maken), is er een gemakkelijke oplossing voor:

  1. Navigeer in de Registry Editor , naar:
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

  2. Klik met de rechtermuisknop op Layers, selecteer NieuwString Waarde. Stel de Naam van uw nieuwe string waarde in op het volledige pad naar (CMD.EXE) command prompt (d.w.z. C:\Windows\System32\cmd.exe)

  3. Dubbelklik op de nieuwe stringwaarde om deze te wijzigen, en stel de “Waardegegevens” in op RUNASADMIN.

Ik had dezelfde ergernis, en dit werkte voor mij.

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

Als je wilt dat CMD.exe altijd als administrator wordt uitgevoerd, voeg dan de volgende reg code toe aan je Registry:

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

Er zijn een paar hulpmiddelen die ik heb gebruikt die andere workarounds waren (naast wat Jesse noemde).

Toen Vista voor het eerst uitkwam, kwam Microsoft met een elevate “ powerToy die erg nuttig was en het werk deed en nog steeds, geloof ik (heb het niet getest) werkt voor Windows 7. Zet het in je padomgeving en je kunt "elevate iisreset” uitvoeren vanaf een normale opdrachtprompt (of zelfs “elevate cmd” vanaf de start/run of een snelkoppeling maken)

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

De gemakkelijkste manier om al het gezeur van UAC enz. te omzeilen is door een Taakschema-item in te stellen om cmd.exe uit te voeren met de hoogste privileges. Maak er geen Trigger event voor aan en zorg ervoor dat het vakje Allow Task To Be Run On Demand is aangevinkt in het Instellingen tabblad. Zorg er op het tabblad Instellingen ook voor dat de vervolgkeuzelijst “Als de taak al wordt uitgevoerd, is de volgende regel van toepassing” is ingesteld op Geen nieuwe instantie starten.

Maak dan een snelkoppeling naar dit op je bureaublad en voer het vanaf daar uit, of via een sneltoets of prik de snelkoppeling op de taakbalk.

Ik heb het op mijn Windows 7 systeem gedaan en het werkt perfect.

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

Kopieer en plak cmd.exe en hernoem het naar “cmda.exe” in de map “cmsystem32” (337 KB is niet eens zo veel…). De “run as administrator” optie in cmda.exe’s eigenschappen zal niet langer grijs zijn en je kunt instellen dat hij altijd als admin wordt uitgevoerd. Je hebt nu twee commando-prompts: de eerste is normaal, de tweede heeft een (a)dmin privilege. Het is net zo makkelijk om “cmda” in de Win zoekbalk te typen als “cmd”!

Voor de cmd in context menu met admin privilege, zorg ervoor dat je cmda.exe al hebt, voeg dit toe in een nieuw .reg bestand & start het

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

Je zult twee dezelfde regels zien in context menu (shift); een niet-opgehoogde Command Prompt en een andere met “(Administrator)” er in toegevoegd.

Dat is het…

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

Ik denk dat de makkelijkste manier om cmd altijd als admin uit te voeren is om het .reg bestand te maken met de onderstaande code:

Windows Registry Editor Version 5.00

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

Plak dat in kladblok of zo en sla op als .reg bestand. Opmerking: Dit zorgt ervoor dat command prompt als admin draait voor alle gebruikers. Verander HKEY_LOCAL_MACHINE in HKEY_CURRENT_USER om altijd alleen als admin te werken voor uw gebruiker.

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

Maak een snelkoppeling naar cmd.exe, klik met de rechtermuisknop en selecteer eigenschappen, op het tabblad Snelkoppeling selecteer Geavanceerd, vink Uitvoeren als Administrator aan.

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

Alle dank aan Jesse Brohinsky

Een meer verbeterde versie. Deze bevat ook de achtergronddirectory die je in staat stelt omcmd ook vanuit de map te openen. Ook kun je nu de commandpromt openen als niet admin.

U kunt ook de AdminApprovalMode uitschakelen. Op deze manier hoef je niet als admin te draaien als je admin bent 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

Het volgende werkt voor mij

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

je krijgt dezelfde uac prompt die bevestigt om als admin te draaien… vond het enige tijd geleden @ stackexchange

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

De enige andere manier, anders dan wat Dracs noemde, is om UAC volledig uit te schakelen