SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Windows Server 2022 をコンソール端末として使用する際に導入しているツール群

leave a comment

私は、検証用にコンソール用途の端末を展開する場合、展開が容易な Windows Server を使用することが多いのですが、その環境でインストールしているツール群について。

WinGet / Windows Terminal は Windows Server 2022 では本来サポートされていないものをインストールしています。

Windows Server 2025 になると標準でサポートされるようになりますが、これらは Windows Server 2022 では、検証目的以外では使用しないほうが良いかと思います。

PowerShell

Windows への PowerShell のインストール を参考に PowerShell のインストールを行います。
PowerShell のインストールは、インストーラーを実行するだけで完了しますので、特に問題になることはないかと思います。

直接インストールする場合は上記のドキュメントに記載されている、安定版リリース のリリースから MSI のインストーラーをダウンロードしてインストールすることができます。

後述の WinGet を使用できるようにしている場合は、WinGet 経由でもインストール可能です。

 

posh-git

PowerShell でコマンド経由で Git のリポジトリを操作する場合、posh-git をインストールしておくことで git コマンドの入力補完が効きますのでインストールを検討してもよいかと。

posh-git は、PowerShell Gallery で公開されていますので、Install-Module でインストールすることが可能です。

 

Azure 向け PowerShell モジュール

私の業務領域としては Azure が多いため、次の PowerShell モジュールをインストールしています。

 

 

WinGet

WinGet は Windows パッケージマネージャーに対してのクライアントインタフェースとなり、パッケージ管理機能を使用することができるようになります。

最近のツールは WinGet をサポートしているものも多く、WinGet 経由でシンプルなコマンドで導入が可能となっているものがあります。最新の PowerShell も WinGet での導入をサポートしており、Windows Server 2025 も標準で WinGet がサポートされるようになります。

WinGet ツールを使用したアプリケーションのインストールと管理 にインストール方法が記載されていますが、Windows Terminal と同様でストア経由のインストールとなっています。

Windows 10 / 11 であれば問題なくインストールをすることができるのですが、Windows Server 2022 ではストア経由でのインストールをサポートしていないため、この方法でインストールをすることはできません

Windows Server 2022 でインストールをする場合、GitHub のリリースページ から WinGet の msixbundle をダウンロードして Add-AppxPackae でインストールをする必要があります。

コマンドラインでのインストールについては、Windows サンドボックスに WinGet をインストールする に記載されており、前提パッケージとして、Windows Terminal でもインストールした Microsoft.UI.Xaml と Microsoft.VCLibs が必要となるのですが、投稿時点ではこの方法を使用して WinGet はインストールすることはできませんでした。

以前は icrosoft.VCLibs は、デスクトップ ブリッジの C++ ランタイム フレームワーク パッケージ に記載されているリンクのパッケージで問題なかったようなのですが、本投稿を書いている時点では新しいバージョンが必要となっていました。

現状 Microsoft からの直接のダウンロードリンクが見当たらなかったため、vcruntime140.dll msvp140.dll vcruntime140_1.dll で紹介されているパッケージを使用する必要があります。(公式で提供されているパッケージではなく、コミュニティ提供のパッケージとなっていますので取り扱いは自己責任でお願いいたします)

最終的な作業の流れとしては次のようになります。

  1. Microsoft.UI.Xaml 2.8.6 をダウンロードしてインストール
  2. Microsoft.VCLibs 14.0.33728.0 をダウンロードしてインストール
    • このバージョンの VCLibs は現状公式から提供されていないため、コミュニティから提供されているパッケージをインストールしています。
  3. Windows Package Manager 1.8.1911 をダウンロードしてインストール
    • インストールが完了したら再度 Microsoft.DesktopAppInstaller_8wekyb3d8bbwe をダブルクリックしておきます。
    • 「アプリ パッケージの解析中にエラーが発生しました。」のエラーが出るかと思いますがこれを実施していないと、winget.exe を実行すると、「プログラム ‘winget.exe’ の実行に失敗しました: 適用できるアプリ ライセンスが見つかりません。」のエラーが発生してしまっていました。

これで、Windows Package Manager 1.8.1911 を使用してインストールを実施することができるかと。

 

Windows Terminal

Windows ターミナルをインストールしてセットアップを開始する のダウンロードはストア経由のインストールとなるため、Windows Server 2022 で使用することはできません。How to install Windows Terminal on Windows Server 2022 で解説されているように必要となるパッケージを手動で入手 / インストールすることで使用できるようになります。

前提パッケージとしては、Microsoft.UI.Xaml  が必要となりますがこれは、WinGet と同様となっています。

前提パッケージをインストールした状態で、GitHub のリリースページ  の msxibundle を直接ダウンロードまたは、ZIP ファイルをダウンロードし展開を行った後の「\tools\AppX\x64\Release」内の appxファイルを取得し、Add-AppxPackaage でインストールすることで Windows Terminal を Windows Server 2022 で使用することができます。

 

Oh My Posh

チュートリアル – Oh My Posh を使用して PowerShell または WSL のカスタム プロンプトを設定する / My Ultimate PowerShell prompt with Oh My Posh and the Windows Terminal で紹介されていますが、Windows の Terminal のカスタマイズとして Oh My Posh が有名なのではないでしょうか。

インストール方法は Set up your terminal? に記載されています。

ダウンロード用のワンライナーのスクリプトや、WinGet でのインストール方法が記載されていますので、インストールを実施し、同ページ内の Next に記載されているフォントのインストールとプロファイルへの追加を行うことで、有効にした状態で起動することができます。

私の環境では、pwsh.exe を実行して起動したコンソールではフォントのデフォルトを永続的に変更することができず、Nerd Font が使用される状態をデフォルト状態にすることができませんでした。

そのため、Oh My Posh を使用する場合は、Windows の「設定」の「更新とセキュリティ」の「開発者プログラム」から、pwsh.exe を起動した場合は、Windows Terminal がデフォルトで起動するように設定をしています。

image

 

Theme

私はそれほどカスタマイズしていないのですが、Windows Terminal のテーマ を変更する際には、Windows Terminal Theme が便利です。

テーマをカスタマイズしたい場合は、ここでカスタマイズした内容を反映するとよいのではないでしょうか。

サイトでカスタマイズした配色の設定は「Get theme」でクリップボードにコピーできますので、コピーした内容を settings.json の「schemes」の配列内にコピーすることで「配色」の設定として追加されます。

 

Windows Subsystem for Linux (WSL)

Windows Server 2022 はシンプルなコマンドで WSL がインストールできるようになっています。

上記のドキュメントのコマンドでは、WSL v2 が導入されますので、Windows Server を仮想化環境上で実行している場合には、入れ子になった仮想化を実行できるようにしておきます。

Hyper-V の場合は、入れ子になった仮想化による仮想マシンでの Hyper-V の実行 で実現できます。

Windows Server 2022 では、curl / tar が標準搭載されており、通常運用で使用する可能性のあるこれらのコマンドをはネイティブにサポートされていますが、まだ Linux 上で操作したほうが楽なものも多々あるかと思いますので、WSL が必要となるケースもあるのではないでしょうか。

Share

Written by Masayuki.Ozawa

9月 5th, 2024 at 11:30 pm

Leave a Reply