実際に標準コンソールをWindows Terminalに変更する
「既定のターミナルアプリケーション」の変更は1ヵ所だけではなく、複数の場所で設定可能だ。ただし、どこで設定しても結果は同じ。わかりやすいのは、Windows Terminalの設定ページだろう。メニューからGUI設定を開き、「スタートアップ」タブにある「既定のターミナルアクション」で、Windows Terminalを選択する。
そのほか、設定アプリの「プライバシーとセキュリティ」→「開発者向け」→「ターミナル」でも切り替えできる(記事冒頭の画面参照)。コンソールウィンドウの右上アイコンの右クリックにある「既定値」、「プロパティ」の「ターミナル」タブにも切り替えるためのコンボボックスがある。
同じ設定をするための箇所が3つもあるなんて、Microsoft的にはよほど切り替えてもらいたいのであろう。Windows TerminalをWindows 11にインストールすると最初の起動で、標準コンソールの切り替えが可能だというメッセージまで出る。conhost.exeは、Windows NTの頃からあるプログラムを改良し続けて28年も引っ張ってきたのでそろそろ引退させたいのかもしれない。
ただし注意したいのは、Windows Terminalには、安定版とプレビュー版があり、同時にインストール可能だが、標準コンソールに指定できるのはどちらか一方のみという点。安定版とプレビュー版はバージョンが違っていて、機能が異なるだけでなく、設定がまったく別になる。よほどWindows Terminalに興味があるのなら別だが、そうでなければ、どちらか一方にしておいたほうがいいだろう。
また、Windows Terminalを標準コンソールにしても、標準設定では、コマンドプロンプト(cmd.exe)やPowerShellをスタートメニューのアイコンから起動した場合でも、個別にウィンドウが開いてしまう。これは、従来と同じ振る舞いだが、タブで複数の端末を切り替えることが可能なWindows Terminalのメリットが半減する。
これを解消するには、Windows Terminalの「GUI設定」→「スタートアップ」→「新しいインスタンスの動作」で、「このデスクトップで最近使用したウィンドウに接続する」を選ぶ。仮想デスクトップなどを使っていない場合、「最近使用したウィンドウに接続する」でも同じ結果になる。しかし、仮想デスクトップを使っている場合は、他の仮想デスクトップのWindows Terminalのウィンドウにタブが表示されてしまうことがある。今は使っていなくても、今後仮想デスクトップなどを使わないとも限らない。最初から前者の設定にしておいたほうが無難である。
なお、この設定にすると、スタートメニューからWindows Terminalアイコンやプロファイルのアイコンで起動しても、同じウィンドウにタブとして追加されてしまう。同時に複数のコンソールを使わないのであれば、これでもいいのだが、場合によっては別ウィンドウで使いたいときがある。その場合は、以下のコマンドを使い、ウィンドウ名を指定して別ウィンドウを開かせる。コマンドラインから起動することもできるが、ショートカットに登録すれば、スタートメニューなどに配置することも可能だ。
wt.exe --window 適当な名前 --profile プロファイル名またはGUID
「適当な名前」は、現在のウィンドウを表す「0」や他のウィンドウの名前と一致しなければなんでもよい。ショートカットから起動するとき、常に新しいウィンドウを開きたければ、乱数を生成する環境変数%random%を使って
wt --window %random% --profile "コマンド プロンプト"
などとするとよい。もし、同じアイコンから起動するコンソールを1つのウィンドウにまとめたいなら、ウィンドウ名(--windowオプション)を一定の文字列にしてプロファイルごとに変える。
wt --window cmd --profile "コマンド プロンプト"
wt --window PowerShell --profile "Windows PowerShell"
これで、ショートカットから起動したコマンドプロンプトは常に同じウィンドウにタブが追加されるようになる。
プロファイルを推測する
Windows Terminalは、プロファイルを定義し、これで起動するシェルなどのプログラムを指定している。Windows Terminal内、あるいはwt.exeコマンドなどから起動する場合には、指定されたプロファイルに従う。Windows Terminalのプロファイルに関しては以下の記事を参照してほしい(「正式版が登場したWindows Terminalをカスタマイズする」)。
しかし、標準コンソールにWindows Terminalを指定した場合、起動にはWindows Terminalが関わらない。こうした場合、Windows Terminalはプロファイルの推測をする。起動されるコンソールプログラムと、プロファイルに登録された「コマンドライン」を比較し、一致するプロファイルを適用する。一致するプロファイルがない場合にはデフォルトプロファイルが利用される。
これを使えば、Windows Terminal側で表示色や背景画像などをプロファイルで指定しておくと、コンソールプログラムにプロファイルを適用できるようになる。ただし、Windows Terminalのプロファイルにある「コマンドライン」に引数が指定されている場合、順番を含め完全に一致している必要がある。
既定のターミナルアプリケーションをWindows Terminalに切り替えると、以前のコンソールウィンドウでは開かなくなるが、「Win+X」やスタートメニューの右クリックで開くシステムメニューにある「ファイル名を指定して実行」を使い、conhost.exeを起動すると開くことができる。このとき引数を何もつけないとcmd.exeが起動するが、「conhost.exe PowerShell.exe」とするとWindows PowerShellを起動することもできる。なにか緊急事態のときに役に立つかもしれない。

この連載の記事
- 第381回 WindowsのPowerShellで画像ファイルのExif情報を扱う
- 第380回 Windowsにおける改行文字の扱い
- 第379回 Windows 11で利用頻度が高いプログラムを「簡単に起動」する方法
- 第378回 Windows 10で正式に導入され、11で改良が進んだ「仮想デスクトップ」
- 第377回 Windowsの「デスクトップ」や「ピクチャ」など、「既知のフォルダ(Known Folders)」を使う方法
- 第376回 COM(Component Object Model)は古い技術だが、いまだに現役 あらためて解説する
- 第375回 エクスプローラーのプレビューウィンドウについて解説する
- 第374回 Windows Insider ProgramにCanaryチャンネルが追加されたことで感じるWindows 12の気配
- 第373回 Windows Subsystem for Linuxでsystemdが動くようになったので試した
- 第372回 Windowsにおけるアプリ実行エイリアスとは?
- 第371回 Windowsで利用可能なホットキーを探す
- この連載の一覧へ