LoginSignup
0
0

More than 3 years have passed since last update.

エクスプローラから管理者権限でWindowsTerminalを起動する方法

Last updated at Posted at 2019-08-29

結論

WindowsTerminalの設定で
"startingDirectory": ".", 
を追加する

下記suwt.batファイルをPATHの通った場所に置く

suwt.bat
powershell -Command "start-process cmd -ArgumentList \"/k cd %CD% ^&^&wt^&^&exit\" -verb runas -WindowStyle Hidden"

エクスプローラを開いてCtrl+lを押してsuwtでEnter

以上

※実行は自己責任でお願いします。

解説

WindowsTerminalはstartingDirectoryという設定項目で開始時のディレクトリを指定できるが、デフォルトではユーザディレクトリになっている。この設計を"."とするとWindowsTerminalを起動したプロセスのカレントディレクトリが引き継がれる模様。またWindowsTerminalをインストールするとwtコマンドでwindowsTerminalを起動できる。なので、単にエクスプローラで開いているディレクトリでWindowsTerminalを開きたいだけならstartingDirectory行を削除し、Ctrl+lを押してwtでEnterとすればよい。

WindowsTerminalを管理者権限で実行するにはWindowsのスタートメニューから実行する以外では管理者権限で実行されているプロセスからwtコマンドで実行する方法しか確認できなかった(もしかしたらあるかもしれない)。プロセスを管理者権限で実行するにはpowershellコマンドレットのstart-processに-verb runasオプションをつければよい。

エクスプローラからpowershellコマンドレットを呼ぶために、powershellを実行し、-commandオプションでstart-processを実行している。

しかし、start-processを-verb runasオプション指定するとカレントディレクトリが引き継がれないという問題があった。なので、カレントディレクトリを移動してからwtを起動している。

start-processで起動したcmdは邪魔なので-WindowStyle Hiddenオプションで非表示にしているが、そうするとWindowsTerminalを終了しても裏で残り続けるので、wtコマンドの後に&&exitしている。これでWindowsTerminalを終了すれば非表示のcmdも終了する。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0