私は開発者として、さまざまな目的でコマンドプロンプトを開く必要があることがよくあります。たとえば、iisreset
を使用してローカルWebサーバーを再起動します。
通常、コマンドウィンドウを開く方法は2つあります。
ただし、これらの方法のいずれかでコマンドウィンドウを開くと、自分が資格を持っていると感じるような完全な管理者権限がありません。
管理者専用のアプリケーションを実行するには、この比較的面倒な方法でコマンドラインを開く必要があります。
これはいくつかの理由で受け入れられません。
Users
ディレクトリ(承認された手法1のように)または私が入りたいフォルダ(承認された手法2のように)ではなく、ウィンドウは常にC:\ windows\system32に開きます。だから私は行きたい場所を見つけるためにディレクトリを変更しなければならないことがよくあります。そのため、承認された手法1と2で管理者コマンドプロンプトを開くことができる、独自のソリューションを探しています。
多くのプログラムでは、プロパティメニューからデフォルトの特権レベルを恒久的に変更することができます。コマンドプロンプトはそれらのプログラムの1つではありません。
[コマンドウィンドウをここで開く]コンテキストメニューオプションを使用する場合でも、コマンドウィンドウをデフォルトで管理者として実行するにはどうすればよいですか?
質問の最初の部分に答えるには、Windowsキーを押して「CMD」と入力すると、ヒットします。 Ctrl + Shift + Enter 管理者として開く。
質問の後半部分に答えるには、以下をメモ帳に貼り付けて、「。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\""
それからファイルを実行します。変更内容をレジストリにマージして、コンテキストメニューにオプションを追加します。 (シフトキーは必要ありません。)
多くのプログラムでは、プロパティメニューからデフォルトの特権レベルを恒久的に変更することができます。コマンドプロンプトはそれらのプログラムの1つではありません。
Compatibilityタブは、Windowsの実行ファイルのallでは完全に無効になっています。
Windows実行可能ファイルに管理者権限を設定するには、ショートカットを作成してShortcut tab→Advanced
を使用する必要があります([スタート]メニューの[コマンドプロンプト]項目は既にショートカットです)。
ウィンドウは常に、C:\ windows\system32で開きます(承認された手法1の場合のように)したり、(承認された手法2のように)入れたいフォルダーではなくします。だから私は行きたい場所を見つけるためにディレクトリを変更しなければならないことがよくあります。
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)いくつかの選択肢を残します。
useraccountcontrolsettings.exe
)前者の場合は、UACを完全に避け、後者の2つの場合は、ショートカットを作成するときに資格情報を1回だけ入力します。
私が使う解決策は、スタートメニューを開いて 'cmd'と入力してを押すことでコマンドプロンプトを開くことです。 Ctrl+Shift+Enter。これにより、選択したプログラムが管理者として起動されます。
クリックするたびにCMD
をadminとして自動実行するには(追加のショートカットを右クリックしたり作成したりする必要はありません)、これを簡単に修正できます。
レジストリエディタ で、次の場所に移動します。HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
Layers
フォルダがない場合、フォルダを作成して名前を付ける必要があります。AppCompatFlags
フォルダーを右クリックして選択 New → KeyLayers
を右クリックして選択New→String Value新しい文字列値の名前を(CMD.EXE
)コマンドプロンプトのフルパスに設定します(例:C:\Windows\System32\cmd.exe
)。
新しい文字列値をダブルクリックして変更し、 "値のデータ"をRUNASADMIN
に設定します。
私は同じ煩さを感じました、そして、これは私のために働きました。
CMD.exeを常に管理者として実行したい場合は、レジストリに以下のregコードを追加してください。
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"
私が使用したツールは他にもあります(Jesseが言及したものに加えて)。
Vistaが最初に登場したとき、Microsoftは " elevate "のpowerToyを発表しました。 Windows 7で動作します。パス環境にドロップすると、通常のコマンドプロンプトから "elevate iisreset"を実行できます(または起動/実行から "elevate cmd"を実行するか、ショートカットを作成することもできます)。
UACなどのすべての悲しみを回避する最も簡単な方法は、最も高い権限を使用してcmd.exeを実行するようにタスクスケジュールエントリを設定することです。トリガーイベントを作成しないでください。また、[設定]タブで[タスクのオンデマンド実行を許可する]チェックボックスがオンになっていることを確認してください。また、[設定]タブで、[タスクが既に実行されている場合は、次のルールが適用される]ドロップダウンが[新しいインスタンスを起動しない]に設定されていることを確認します。
次に、デスクトップにこれへのショートカットを作成してそこから実行するか、ショートカットホットキーを使用するか、ショートカットをタスクバーに固定します。
私は私のWindows 7システム上でそれをしました、そしてそれは完全に機能します。
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\""
コンテキストメニュー(shift)には同じ2行が表示されます。昇格していないコマンドプロンプトと「(Administrator)」が追加されたコマンドプロンプト。
それでおしまい...
Jesse Brohinskyに感謝します。
より改良されたバージョンこれには、フォルダ内から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\""
Cmd.exeへのショートカットを作成し、右クリックしてプロパティを選択し、[ショートカット]タブで[詳細設定]を選択し、[管理者として実行]をオンにします。
常に管理者として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に変更するだけです。
Dracsが述べた以外の唯一の他の方法は、UACを完全に無効にすることです。
以下は私のために働きます
@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"
:--------------------------------------
あなたは同じuacプロンプトがrunas adminに確認を得るでしょう..しばらく前にそれを見つけました@ stackexchange