はじめに
コマンドプロンプトやPowerShellで、管理者として実行するのって非常に面倒くさくないですか?
この記事では、通常のコマンドプロンプトやPowerShellから、su
というコマンドを実行するだけで、管理者権限のコマンドプロンプトまたはPowerShellを起動する方法をご紹介します。
コマンドプロンプトの設定
コマンドプロンプトで以下のコマンドを実行するだけで、管理者権限のコマンドプロンプトが別ウィンドウで表示されます。
> powershell start-process cmd -verb runas
これを、どこでもsu
コマンドを実行しても動作するようにします。
ユーザーフォルダ (C:\Users\ユーザー名)で、su.bat
というファイル名で、以下の内容を記述して保存します。
powershell start-process cmd -verb runas
この状態で、コマンドプロンプトのユーザーフォルダでsu
を実行すると、管理者権限のコマンドプロンプトが別ウィンドウで表示されます。
ここで、ユーザーフォルダにパスを通します。
設定画面を表示し、「システム環境変数の編集」と検索して以下の画面を表示し、「環境変数」をクリックします。
システム環境変数の「Path」を選択して「編集」をクリックします。
「新規」から、ユーザーフォルダのパス(C:\Users\ユーザー名)を追加し保存します。
Windows を再起動して設定を反映します。
すると、コマンドプロンプトを起動して、どこのフォルダからでも、su
と実行することで管理者権限のコマンドプロンプトが表示されるようになります。
なお、setx
コマンドを使用してPATHを設定しなかったのは、リスクがあるためです。リスクについては下記記事を参考にしてください。(英語)
PowerShell の設定
PowerShell はデフォルトで外部スクリプトを実行できないようになっているので、PowerShellを管理者権限で開き、以下のコマンドを実行して、外部スクリプトの実行を許可します。
> Set-ExecutionPolicy RemoteSigned
実行が終了したら、一度PowerShellを閉じます。
そして、改めて一般ユーザー(そのまま)の権限でPowerShellを起動します。
ユーザーのプロファイルにsu
のエイリアスを作成します。
> New-Item –type file –force $profile > notepad $profile
テキストエディタが起動したら、以下の内容を記述して保存します。
function su { start-process powershell -verb runas }
一度、PowerShell を閉じて、再度一般ユーザーの権限でPowerShellを起動します。
su
と実行すると、別ウィンドウで管理者権限のPowerShellが表示されます。
おわりに
上記のように設定することで、コマンドプロンプトとPowerShellを一般ユーザー権限で使用中に、管理者権限が必要になればいつでもsu
と実行するだけで管理者権限のコマンドプロンプトまたはPowerShellを起動できるようになりました。
これは、かなり便利なTipsだと思うので、ぜひ活用してください。