管理者として常にコマンドプロンプトを実行するにはどうすればよいですか?


104

開発者として、多くの場合、さまざまな目的でコマンドプロンプトを開く必要があります。たとえばiisreset、ローカルWebサーバーの再起動に使用します。

通常、コマンドウィンドウは次の2つの方法のいずれかで開きます。

  1. を押しWin、「cmd」と入力して押しますEnter
  2. エクスプローラーでShift、フォルダーを押しながら右クリックし、[ここでコマンドウィンドウを開く]を選択します

ただし、これらの方法のいずれかでコマンドウィンドウを開くと、資格があると思う完全な管理者権限がありません。

私は管理者ですが、cmd.exeはそれを知りません

管理者専用アプリケーションを実行するには、この比較的面倒な方法でコマンドラインを開く必要があります。

  1. を押しWin、「cmd」と入力します
  2. メニューが表示されるまで待ちます
  3. キーボードから手を離し、マウスの上に置きます
  4. 「cmd.exe」メニュー項目を右クリックします
  5. 「管理者として実行」を選択します

これはいくつかの理由で受け入れられません。

  • ウィンドウは、Users(承認済み手法1のように)私のディレクトリや(承認済み手法2のように)入れたいフォルダーではなく、常にC:\ windows \ system32で開きます。そのため、行きたい場所に行くためにディレクトリを頻繁に変更する必要があります。
  • このプロセスは、私の好みの方法のいずれよりも数ミリ秒遅くなります。私のキャリアの残りの期間、毎日数回実行され、クリックと待機、およびディレクトリの変更に費やされた約10日間の損失時間になります。
  • プログラマーとして、無意味なロボットのタスクを実行すると、私は大きな感情的な痛みを引き起こします。
  • プログラマーとして、私の手を持ち上げることは、私に大きな肉体的痛みを引き起こす激しい仕事です。

そのため、承認済みの手法1と2で管理者のコマンドプロンプトを開くことができる、1対1のソリューションを探しています。

多くのプログラムでは、プロパティメニューからデフォルトの特権レベルを永久に変更できます。コマンドプロンプトは、これらのプログラムの1つではありません。

ここに画像の説明を入力してください

デフォルトでコマンドウィンドウを管理者として実行するには([ここでコマンドウィンドウを開く]コンテキストメニューオプションを使用している場合でも)。


UACを昇格のみに変更しないのはなぜですか?
surfasb

UACスライダーに[昇格のみ]オプションが表示されません。[ユーザーアカウント制御の設定]ウィンドウ以外のものを参照していますか?
ケビン

6
私はそのハンマータイムだと思います...
ThunderToes 14

回答:


88

質問の最初の部分に答えるには、Windowsキーを押して「CMD」と入力すると、Ctrl+ Shift+ Enterを押して管理者として開くことができます。

質問の2番目の部分に答えるには、次をメモ帳に貼り付け、「。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\""

次に、ファイルを実行します。変更をレジストリにマージし、オプションをコンテキストメニューに追加します。(シフトキーは必要ありません。)


7
注意; どちらの場合でも、UACプロンプトを受け入れる必要があります。
Synetech

1
Windowsのレジストリの編集doesntの仕事8
バイカージョン

Server 2012のR2のレジストリパッチ作品
フィアット

Windows 7で動作しませんでした
Hello Universe

1
regファイルの実行後にコマンドが表示されない場合は、Windowsからログアウトして、再度ログインして
ください。– trebormf

38

多くのプログラムでは、プロパティメニューからデフォルトの特権レベルを永久に変更できます。コマンドプロンプトは、これらのプログラムの1つではありません。

[ 互換性 ]タブは、Windowsのすべての実行可能ファイルに対して完全に無効になっています。

ここに画像の説明を入力してください

Windows実行可能ファイルの管理者権限を設定するには、ショートカットを作成し、ショートカットタブ→ を使用する必要がありますAdvanced([ スタート]メニューのコマンドプロンプト項目は既にショートカットです):

ここに画像の説明を入力してください

このウィンドウは、ユーザーディレクトリ(承認済みの手法1の場合)やフォルダー(承認済みの手法2の場合)ではなく、常にC:\ windows \ system32で開きます。そのため、行きたい場所に行くためにディレクトリを変更しなければならないことがよくあります。

adminコマンドプロンプトを開いている場合は、とにかく既にアクセス許可を持っているユーザーアクションではなく、おそらく管理者特権が必要なシステムアクションを実行しているため、これは正常であり、意味があります。

Autorunレジストリエントリを追加/編集することで、デフォルトディレクトリをグローバルに設定できます(環境変数を使用するために拡張可能な文字列である必要はありません)。

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

これで、任意のメソッド使用してコマンドプロンプト開くたびに、ユーザープロファイルディレクトリが自動的にデフォルト(技術的にはchange-directory)になります。

さらに良いことに、&演算子(たとえば、cd /d %userprofile% & cls & dir)を使用してコマンドプロンプトを開くたびに自動的に実行される他のコマンドを追加できます。さらに、HKLMブランチの下の同じキーに同じ値を設定して、すべてのユーザーに設定できます。


UACプロンプトを受け入れる必要があることに注意してください。残念ながら、(現在?)信頼できるプログラムのUAC「ホワイトリスト」を作成する方法がないため、コマンドプロンプトをプロンプトとして受け入れることなく管理者として実行できます。これにより、(a)いくつかのオプションが残ります。

前者の場合、UACは完全に回避されますが、後者の2つでは、ショートカットの作成時に資格情報を1回だけ入力します。


自動実行による現在のディレクトリの設定に問題があります。この値を設定するとcd /d "%userprofile%"、新しいコンソールウィンドウを開くときだけでなく、新しい実行スレッドが呼び出されるたびに自動実行されます。これは、for /fループなどの問題を引き起こす可能性があります。CMDプロンプトでこれを試してみてください。cd "\Program Files"それからfor /f "delims=" %I in ('cmd /c cd') do @echo %I。あなたはわかりますfor /fループは、現在の作業ディレクトリが$自宅ではなく、プログラムファイルであると考えています。cmdショートカットを変更し、ターゲットをに設定する方が安全"%comspec%" /k cd /d "%userprofile%"です。
ロジョ

新しいコンソールウィンドウを開くときにWindowsのバージョンと著作権情報を保持する場合は、ショートカットのターゲットを%comspec% /c cd /d "%USERPROFILE%" & %comspec%
rojo

レジストリ以外の編集の回答の場合は+1。もう1つの答えは2012年には問題なかったかもしれませんが、今日はWindows 10で試してみたいとは思いません。
アラン

19

私が使用する解決策は、スタートメニューを開き、「cmd」と入力してCtrl+ Shift+ を押してコマンドプロンプトを開くことEnterです。これにより、選択したプログラムが管理者として起動されます。


1
「検索」を必要としない代替手段はありますか?(私はボックスに入力のものを知っているから、実際に検索ないため)
Pacerier

私が知っている他の方法は、ルークの答え、UACを無効にすることだけです。cmdの検索は非常に高速で、見つける前にCtrl + Shift + Enterを押すことさえできません。
Dracs

私は常に顧客のコンピューターでそれをしています。CMDが非常に高速であることがわかりました
カナダのルーク

これは管理者としてロードされますか?
barlop

@barlopはい、そのホットキー(Ctrl + Shift + Enter)は、管理者として[スタート]メニューで強調表示されたプログラムを起動します。
Dracs

12

CMDクリックするたびに管理者として自動実行するには(右クリックしたり、追加のショートカットを作成したりせずに)、これを簡単に修正できます。

  1. 、レジストリエディタに移動します。
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

    • Layersフォルダーがない場合は、フォルダーを作成して名前を付ける必要がありますフォルダーを
      右クリックしてAppCompatFlags選択NewKey
  2. 右クリックしてLayersNew→を選択します String Value。(への完全なパスに新しい文字列値の名前を設定しますCMD.EXE(IE)コマンドプロンプトC:\Windows\System32\cmd.exe

  3. 新しい文字列値をダブルクリックして変更し、「値データ」をに設定しRUNASADMINます。

私は同じ悩みを持っていた、そしてこれは私のために働いた。


11

CMD.exeを常に管理者として実行する場合は、次のレジストリコードをレジストリに追加するだけです。

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
これはWindows 8.1で機能しました。Windows-R、cmd、Enterを押すだけです。また、Shiftキーを押しながら右クリック>ここでコマンドウィンドウを開くを使用して、ファイルエクスプローラーからコマンドウィンドウを開くこともできます。
トロイGizzi

1
これが機能する場合、これよりも長いバージョンが現在受け入れられていますが、これは正しい答えです。
Xodarap777

これはWindows 10でも機能します。コンテンツをメモ帳に入れ、.reg拡張子で保存して実行します
クリスハルクロー

私のために働かなかった。HKLMパーツは、何らかの理由で登録さえしませんでした。これがまだ機能するかどうかの議論:superuser.com/questions/961573/…、代替案あり。
レイウッドコック

4

私が使用したいくつかのツールがあり、それらは(Jesseが言及したものに加えて)他の回避策でした。

Vistaが最初に登場したとき、Microsoft は非常に便利で仕事をした「昇格した」powerToyを発表しましたが、Windows 7で動作する(テストしていない)と思います。パス環境にドロップして実行できます通常のコマンドプロンプトから「iisresetを昇格」(または、起動/実行から「cmdを昇格」またはショートカットを作成)


ダウンロードへの直接リンクはこちらです。
ashleedawg

4

UACなどのすべての悲しみを回避する最も簡単な方法は、最高の特権を使用してcmd.exeを実行するタスクスケジュールエントリをセットアップすることです。トリガーイベントを作成しないで、[設定]タブで[オンデマンドでタスクを実行できるようにする]チェックボックスがオンになっていることを確認してください。また、[設定]タブで、[タスクが既に実行されている場合、次のルールが適用される]ドロップダウンが[新しいインスタンスを開始しない]に設定されていることを確認します。

次に、デスクトップにこれへのショートカットを作成して、そこから実行するか、ショートカットホットキーを使用するか、ショートカットをタスクバーに固定します。

私は自分のWindows 7システムでそれをやったが、それは完全に機能する。


1
おっと、1つの重要なことを指定するのを忘れました。タスクへのショートカットのターゲットパスは次のとおりです。C:\ Windows \ System32 \ schtasks.exe / run / TN「UACなしのコマンドプロンプト」。引用符内のテキストは、タスクを作成するときにタスクに名前を付けるものです。
ピーターウィルズ

メールIDを回答に
含め

2

cmd.exeをコピーして貼り付け、\ system32 \フォルダーに「cmda.exe」と名前を変更するだけです(337 KBは大したことではありません...)。cmda.exeのプロパティの「管理者として実行」オプションはグレー表示されなくなり、常に管理者として実行するように設定できます。これで、2つのコマンドプロンプトが表示されます。1つ目は通常、2つ目は(a)dmin特権があります。「cmda」と入力するのは簡単ですWin「cmd」と同じように検索バーに入力です!

管理者権限のコンテキストメニューのcmdについては、既にcmda.exeが配置されていることを確認し、これを新しい.regファイルに追加して起動します

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

コンテキストメニューに2つの同じ行が表示されます(シフト)。昇格されていないコマンドプロンプトと「(管理者)」が追加された別のプロンプト

それでおしまい...


1

cmd.exeのショートカットを作成し、右クリックしてプロパティを選択し、ショートカットタブで[詳細設定]を選択し、[管理者として実行]をオンにします。


1

常にadminとしてcmdを実行する最も簡単な方法は、以下のコードで.regファイルを作成することだと思います。

Windows Registry Editor Version 5.00

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

それをメモ帳などに貼り付けて、.regファイルとして保存します。注:これにより、すべてのユーザーに対してコマンドプロンプトが管理者として実行されます。ユーザーでのみ管理者として常に実行するには、HKEY_LOCAL_MACHINEをHKEY_CURRENT_USERに変更するだけです


1

ジェシー・ブロヒンスキーに感謝します

より改善されたバージョン。これには、フォルダ内からopencmdを実行できるようにするバックグラウンドディレクトリも含まれます。また、そのために、コマンドプロンプトを非管理者として開くこともできます。

また、AdminApprovalModeを無効にすることもできます。この方法では、管理者であるときに管理者として実行する必要はありません。 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

私のために次の作品

@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に確認するのと同じuacプロンプトが表示されます。しばらく前に見つけた@ stackexchange

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.