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

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

開発者である私は、様々な目的のためにコマンドプロンプトを開く必要があることがよくあります。例えば、私はローカルのウェブサーバを再起動するために iisreset を使用しています。

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

  1. Win キーを押しながら “cmd” と入力して Enter キーを押す
  2. 2. エクスプローラで Shift キーを押しながらフォルダを右クリックし、"Open command window here" を選択する

ただし、これらの方法でコマンドウィンドウを開くと、自分に与えられたと思われる完全な管理者権限が得られません。

管理者のみのアプリケーションを実行するには、このような比較的手間のかかる方法でコマンドラインを開く必要があります。メニューが表示されるのを待つ。キーボードから手を離して、マウスの上に置く 4. cmd.exe “メニュー項目を右クリックする。管理者として実行」を選択する

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

  • ウィンドウがいつもC:\windowssystem32で開き、私のUsersディレクトリ(承認された技術1のように)や私がいるフォルダ(承認された技術2のように)ではない。そのため、行きたいところに行くためにディレクトリを変更しなければならないことがよくあります。
  • この処理は、私が推奨しているどちらの方法よりも数ミリ秒遅い。一日に数回、毎日、私のキャリアの残りの部分を毎日実行すると、クリックして待っている時間とディレクトリを変更する時間を約10日分失うことになります。
  • プログラマーとして、無意味なロボット作業を行うことは精神的な苦痛を与える。
  • プログラマーとして、手を上げるのは大変な作業であり、身体的にも大きな痛みを感じる。

だからこそ、承認されたテクニック1と2で管理者のコマンドプロンプトを開かせるワンアンドワンのソリューションを探しているのだ。

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

**コマンドウィンドウをデフォルトで管理者として実行させるにはどうすればよいでしょうか(コンテキストメニューのオプション「ここでコマンドウィンドウを開く」を使用している場合でも)?

回答 (13)

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

ご質問の最初の部分の答えは、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\""

それからファイルを実行してください。変更内容がレジストリにマージされ、コンテキストメニューにオプションが追加されます。(シフトキーは必要ありません)

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

多くのプログラムでは、プロパティメニューからデフォルトの特権レベルを恒久的に変更することができます。コマンドプロンプトはそのようなプログラムの一つではありません。

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

Windowsの実行ファイルのCompatibilityタブは完全に無効になっています:

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

ウィンドウが開くのはいつもC:\windowssystem32で、私のUsersディレクトリ(承認済みのテクニック1のように)でも、私がいるフォルダ(承認済みのテクニック2のように)でもありません。そのため、行きたいところに行くためにディレクトリを変更しなければならないことが多い。

これは普通のことで、管理者コマンドプロンプトを開いている場合、おそらくあなたは管理者権限が必要なシステムアクションを行っているのではなく、あなたが既に権限を持っているユーザーアクションを行っているのですから、理にかなっています。

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

0x1&

これで、コマンドプロンプトを開いたときに、どのような方法を使っても、自動的にユーザプロファイルディレクトリがデフォルト(技術的には change-directory)になります。

さらに良いことに、& 演算子を使ってコマンドプロンプトを開いたときに自動的に実行されるように、他のコマンドを追加することができます (例: cd /d %userprofile% & cls & dir)。さらに、HKLM の枝の下の同じキーに同じ値を設定することで、すべてのユーザーに設定することができます。

それでもUACプロンプトを受け入れる必要があることに注意してください。残念ながら、信頼できるプログラムの UAC “ホワイトリスト "を作成して、コマンドプロンプトを受け入れなくても admin として実行できるようにする方法は(現在のところ)ありません。これにより、(a)いくつかの選択肢が残されています。

  • UACをダウンまたは完全にオフにすることができます (useraccountcontrolsettings.exe)
  • Elevator aka Elevate Me Elevation PowerToy
  • Elevation PowerToy のような特権昇格プログラムを使用することができます。前者の場合はUACを完全に回避し、後者の2つの場合はショートカットを作成する際に1度だけ資格情報を入力します。
20
20
20
2011-11-13 07:15:41 +0000

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

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

CMDをクリックするたびに管理者として自動実行するには、(右クリックや追加のショートカットを作成する必要はありません)簡単な修正方法があります。

  1. Registry Editor で、以下の場所に移動します。
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

  2. Layersを右クリックし、「新規」→「文字列値」を選択します。新しい文字列値の名前を (CMD.EXE) コマンドプロンプトへのフルパスに設定します (例: C:\Windows\System32\cmd.exe)

  3. 新しい文字列値をダブルクリックして修正し、“Value data”RUNASADMINに設定します。

私も同じように悩んでいたのですが、これでうまくいきました。

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

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"
```0x1&。
4
4
4
2012-07-25 14:31:14 +0000

私が使ったツールの中には、(Jesseが言っていたことに加えて)他の回避策として使用したものがいくつかあります。

Vistaが最初に出てきた時、Microsoftは elevate “ powerToyを出してきました。これをパス環境にドロップすると、通常のコマンドプロンプトから "elevate iisreset” を実行することができます (または、スタート/ランやショートカットの作成から “elevate cmd” を実行することもできます)。

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

UACなどの煩わしさをすべて回避する最も簡単な方法は、最高の権限を使用してcmd.exeを実行するようにタスクスケジュールエントリを設定することです。そのためのトリガーイベントを作成せず、設定タブの「オンデマンドで実行するタスクを許可する」チェックボックスが選択されていることを確認してください。また、[設定]タブの[タスクがすでに実行中の場合は、次のルールが適用されます]のドロップダウンが[新しいインスタンスを開始しない]に設定されていることを確認してください。

そして、デスクトップ上にこのショートカットを作成し、そこから実行するか、ショートカットのホットキーを使って実行するか、ショートカットをタスクバーにピンで固定します。

私はWindows 7システムでこれを実行しましたが、完璧に動作しました。

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

cmd.exeをコピー&ペーストして、"cmda.exe “という名前に変更してください。cmda.exeのプロパティの "管理者として実行 "オプションはもはやグレーアウトされず、常に管理者として実行するように設定することができます。これで 2 つのコマンドプロンプトが表示されるようになりました: 1 つ目は通常のコマンドプロンプトで、2 つ目は (a)dmin 権限を持つコマンドプロンプトです。Win の検索バーに "cmda” と入力するのは “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つ表示されます(shift)。

以上です。

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

管理者として常に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ファイルとして保存します。注意: これにより、コマンドプロンプトはすべてのユーザに対して管理者として実行されるようになります。常に管理者として実行するためには、あなたのユーザだけにHKEYLOCAL_MACHINEをHKEYCURRENT_USERに変更してください。

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

cmd.exeへのショートカットを作成し、右クリックしてプロパティを選択し、ショートカットタブの「詳細設定」を選択し、「管理者として実行」にチェックを入れます。

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

すべては Jesse Brohinsky

より改良されたバージョンに感謝します。このバージョンには、フォルダ内からcmdを開くことができるバックグラウンドディレクトリも含まれています。また、管理者以外の人でもコマンドプロンプトを開くことができます。

また、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
0
0
2014-09-23 08:41:15 +0000

以下は私の場合、

@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管理者に確認するのと同じuacプロンプトが表示されます。

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

ドラックスが言っていたこと以外の唯一の方法は、UACを完全に無効にすることです。