Powershell Core
Windows Powershellを起動すると、このようなメッセージが表示されるようになってます。
要すれば、「Powershell Coreがリリースされてるよ!」っていうお知らせみたいなものですね。
なお、この"Powershell Core"ですが、Windowsに標準で付いてくる"Windows Powershell"とは別物です。* 1ところで、Powershell Coreの最新版はver.7なんだけど、この表記だとver.6が最新版に見えますけど、この点如何なんでしょう、Microsoftさん。
このPowershell Core自体は、安定版・RC版が次のサイトから――GitHubから――普通にダウンロードできますが、これをインストールしたところで、"Windows Powershell"が置き換わるわけではありません。
GitHub – PowerShell/PowerShell: PowerShell for every system!
もちろん、Windows
+ Q
を押下して"powershell"なりを検索する・そもそもインストール時のオプションで「Explorerの右クリックメニューに『Powershellで開く』」* 2‥的なニュアンスだったと思う。メニューがあるわけですけど、
- 前者は"Windows Powershell"も検索に引っかかって邪魔だし、管理者として起動するのが少々手間。
- 後者は楽だけど、素でキーボード操作だけでPowershellを起動したい。
という話なんです。
ここで使い勝手が良さそうなのが、Windows
+ X
の押下で出てくる"Powershell"系統のメニューなんですが* 3これは覚えておいた方がいいショートカットキーの代表格。、"Core"のインストーラーはここを置き換えてくれないんですよね。何故なんでしょう。
Windowsキー + X メニューの場所
インストーラーが置き換えてくれないのなら、自力で置き換えてしまえばよかろう‥とは思うのですが、実はこの置き換えが結構難しいんですよね。
これが例えば、右クリックの「送る」メニューであれば、%APPDATA%\Microsoft\windows\SendTo にその実体があるため、割合あっさり書き換えられるのですが、Windowsキー + X メニューはそうもいかないんですよね。
余談ながらこれは、歴史的な経緯も大きいと思う。Win + X はWindows 8からの機能なのに対して、「送る」はWindows 95の頃からある機能なので。
一応、Windows
+ X
メニューの実体は、%LOCALAPPDATA%\Microsoft\Windows\WinX にあり、その中の"Group 1"~"Group 3"フォルダがそれぞれ Windows
+ X
メニューの下から順に対応しているので、そこを置き換えればいい。
――とはそうは問屋が卸さない感じでした。
そもそもなんですが、これらのフォルダ内に Windows
+ X
メニュー内の「シャットダウン」などのメニューはないわけで、別な手法を使う必要があるわけなのです――そう、なかなか我々素人の手に負える代物ではなかったのです。
方法1:Win+X Menu Editor を使う
これがおそらく最も簡単な方法でしょう。ダウンロード先は以下。
Win+X Menu Editor for Windows 10 and Windows 8
起動すると、次のような画面が表示されます。‥がまぁ、こについては特段迷うべき操作はないでしょう。説明は割愛します。* 4英語とはいえ、平易な書き方をしているうえに直感的な書き方ですからね。
一点注意するとしたら、「メニューの変更は、Explorerを再起動しないと反映されない」という点でしょうか。
方法2:hashlnkを使う方法
コマンドを直接叩く分こちらの方が難易度が高そうに見えますが、応用範囲は広いです。
Windows
+ X
メニューの中身は、次のような機序で動作しているものと思われます。
- %localappdata%\Microsoft\Windows\WinX 内に Group1 ~ Group10 という名前のフォルダが存在する場合、それらをメニューの区切りと見做す。
- それらのフォルダに入ってるショートカットを、explorerの(再)起動時にロードする。
- これらの並び順は、ファイル名でソートしたときに、下から見て名前順・昇順となる。
- これを、
Windows
+X
メニューに割り当てる。
一部、電源系など特殊な操作はありますが、基本はこれで構成されているとみて間違いはないでしょう。
ところが問題になるのが、このショートカットが「普通のショートカットでは動作しない」点にあります。
詳しい点は情報不足で全くわからないのですが、ショートカットに何か特別な値を付け加えると、上記2で使用できるショートカットとして認識できるのではないかと思われます。
一部、電源系など特殊な操作はありますが、基本はこれで構成されているとみて間違いはないでしょう。
ところが問題になるのが、このショートカットが「普通のショートカットでは動作しない」点にあります。
詳しい点は情報不足で全くわからないのですが、ショートカットに何か特別な値を付け加えると、上記2で使用できるショートカットとして認識できるのではないかと思われます。
そして、これを付加するのが次のツールです。
hashlnk/hashlnk_0.2.0.0.zip at master · riverar/hashlnk · GitHub
使い方は簡単で、
- %programfiles%\PowerShell\7\pwsh.exe へのショートカットを、通常権限・管理者権限双方を作成する。
hashlnk
コマンドを実行する。使い方は、- Powershell:
./hashlnk "対象のショートカットのパス"
- cmd.exe:
hashlnk "対象のショートカットのパス"
- Powershell:
- Powershellなどの特殊なショートカットの場合、上記の手順をもう一度繰り返す。
- これは謎な挙動で、所謂普通のプログラムへのショートカットだと2の手順のみでよいのですが、Powershellやcmdのような特殊なショートカットの場合、何故か2回――ハッシュが変わらなくなるまで――繰り返す必要が生じます。
- explorerを再起動する。すると下記のようになります。
何か蛇足感がありますね。ついでに言うと、ショートカットキーがこれでは動作せず、面白くありません。よって以下の改良を施します。
- Windows Powershellのショートカットはもう使いません。削除しましょう。
もし改めて必要になったら、上記の Win+X Menu Editor がデフォルトに戻す機能を有してますし、心配ならバックアップ・コピーを取っておけばよいでしょう。 - ショートカットキーを設定します。ショートカットのプロパティのコメントに、"Powershell 7 (Admin)(&A)" なり "Powershell 7(&I)" なり適当なコメントを設定します。
ここで、"(&A)"は"A"キー、"(&I)"はIキーのショートカットを示す、いわばお約束的な文句だと思ってください。- ちなみに、このメニューで表示される名前には次の優先順位があるため、コメントを設定するのがよいと思う。
- コメント
- Explorerでの表記上のショートカット名。ファイル名とは異なる。
- ファイルの名前
- ちなみに、このメニューで表示される名前には次の優先順位があるため、コメントを設定するのがよいと思う。
- explorerを再起動。すっきりした見た目になりました。もちろんショートカットキーも使えます。
- なおここで、コマンドプロンプトを
Windows
+X
メニューに表示するよう下記のように設定を変えると、‥
- cmd.exeとPowershellがどちらも使えますw
実用性はともかく、これはこれでありかもしれません。
参考までに
このようなリンクも存在します。
こちらを見るのも一案かもしれません。
便利だった、Windows + Xメニューの「コントロールパネル」項目を復活させる:Tech TIPS – @IT
こちらはPowershellではなく、コントロールパネルの追加でしたが、学べることは多いでしょう。* 5私は本記事執筆後、これを見つけて歯噛みしましたがね‥。
注釈