小ネタ。
今まで、コマンドプロンプトの管理者権限の起動を右クリックから行っていたので、もうちょっと簡単にできないか探った記事です。
環境
- Windows 10
ファイル名を指定して実行から管理者権限の起動
WindowsにてWin + R
キーを入力すると「ファイル名を指定して実行」の画面が出力されます。そこからcmd
を入力してEnter
キーで起動することが多いのですが、管理者権限として起動したいことがあります。
ここでShift + Ctrl + Enter
キーを入力することで、管理者権限でアプリケーションを起動できます。
エクスプローラのアドレスバーからの管理者権限の起動
別の起動方法で、コマンドを管理者権限で起動する方法を紹介します。
上に書いた「ファイル名を指定して実行」画面からcmd
を起動すると、%USERPROFILE%
のパスで起動します。私の場合は、C:\Users\naina
で起動します。
Windowsでは、エクスプローラのアドレスバーにコマンドを入力して、コマンドを実行することもできます。アドレスバーでcmd
と入力した場合は、起動時のパスをエクスプローラのパスにできます。
次の画像は、C:\Users\naina\products\cucumber-sample
のエクスプローラからcmd
を起動した結果のコマンドプロンプトの画像です。
アドレスバーで起動するパターンでは、管理者権限で起動するには一工夫が必要です。次の処理を行う必要があります。
- バッチファイルを用意する
- バッチファイルにパスを通す
バッチファイルを用意する
powershellを経由して、コマンドプロンプトを管理者権限で起動させるバッチを記載します。
バッチ名がコマンド名になります。自分が使用したいコマンド名のバッチファイルを作りましょう。今回の記事ではcmda.bat
という名前のバッチ名(コマンド名)にします。
powershell start-process cmd -ArgumentList '/k ""cd /d %CD%""' -verb runas
バッチファイルにパスを通す
環境変数のPATH
が設定されているディレクトリのどこかに配備してください。特にこだわりがなければ、C:\Windows\system32
へパスは通っているはずですので、こちらに配備してください。
# 配備対象のパス echo %PATH%
ここまで対応してアドレスバーにてバッチ名(コマンド名)を入力すると、エクスプローラで起動しているパスを元に、管理者権限でコマンドプロンプトが起動します。今回の記事ではバッチ名(コマンド名)はcmda
です。
正確に挙動を表現すると、.bat
に対してコマンドプロンプトが関連付けされているので、今回作成したバッチのcmda.bat
がコマンドプロンプトで起動します。その後、バッチファイルが実行され、管理者権限で起動する旨のモーダルウィンドウが表示されるため、はいをクリックします。はいをクリックすると、管理者権限でコマンドプロンプトが起動します。
終わりに
そこまで管理者権限で起動したいタイミングはないので、ユースケース自体は少ないです。あと、そもそもこの内容はどうやったら検索されるんでしょうか…。私は知る機会がなかったです。