更新 2024/11/4 Windows Server 2025だとWingetもTerminalもインストールされているので、この記事は、Windows Server 2022でしか必要はない。
更新 2024/11/2 Microsoft.VCLibs.x64.14.00.Desktop.appxの最新版をVisual Studio 2022から持ってこないと動かない。
更新 2024/3/29 各パッケージ更新
実は、昔とある海外の会社でVDIをやっていた。なんやかんやでWindowsデスクトップOSは、遅いし、使わないアプリや設定も多く。スマートさが足りない。VMware FlingsにあったWindows OS Optimization Toolには自分が作ったサーバテンプレートが載っていたんだが、今は製品化されて自分のサーバテンプレートはきっちり削除されていた。しかし、今はVDIはあまり関係ないが、やはりデスクトップOSはServer OSのほうが好きだったりする。ただし、その観点でみるとサーバOSには必要なアプリが全然入っていない。さらにストアアプリのインストールも無理。少なくともターミナルくらいは入れたい。コマンドプロンプトは使いにくいので。
Windows Server 2022にターミナルの最新版をいれることにする。また、MS謹製のパッケージ管理ツールであるwingetもインストールをするのが今回の目的。パッケージツールは、chocolateyがあるが、どうやらwingetからchocolateyのパッケージも呼べるので、便利だと思う。
この記事は、どこに書いてあったんですか?(自分も思い出したい。後述)、誰が言ったんですか?勢は手を出さないことをお勧めする。というか、そういう新しいことはもうやらないで!と言いたいw
閑話休題
流れとしては、
- Microsoft.VCLibs.x64.14.00.Desktop.appxの入手とインストール
- Wingetのインストール
- Windows Tterminalのインストール
となる。
Microsoft.VCLibs.x64.14.00.Desktop.appxの入手とインストール
今まで、単純にMicrosoft.VCLibs.x64.14.00.Desktop.appxをダウンロードしておけばよかったんだが、Visual Studio 2022から持ってくる必要がある。(Webからダウンロードしたものは使えないので注意)
エラーに当たって、Microsoft.VCLibs.140.00.UWPDesktopを探している人がWebに多数いるが、Microsoft.VCLibs.x64.14.00.Desktop.appxが必要。ただ、Visual Studio 2022から入手しなきゃだめということ。
詳しくは
を参照なんだが、簡単に書くと以下の方法でVisual Studio 2022をインストールをする。
必要環境:30GBくらい空き領域があるWindowsマシンにVisual Studio 2022(無料版でOK)をインストールをする。(ダウンロード用の捨てマシンでいい)
必要なインストールパッケージは以下。(Windowsアプリケーション開発を選択し、C++(v143)ユニバーサルWindowsプラットフォームを選択する。
インストールが終わったら、
%ProgramFiles(x86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\Retail\x64にある、Microsoft.VCLibs.x64.14.00.Desktop.appxをインストール対象のマシンのC:\Wingetフォルダーにコピー
Wingetのインストール
どこかのページに書かれていたもの。(リンクをメモするのを忘れてしまった。スマヌ!作者)管理者権限でPowerShellを開き、以下を実行する。スクリプトでは、Microsoft.VCLibs.x64.14.00.Desktop.appxをダウンロードしている部分はコメントアウトしている。
# Create WinGet Folder
#New-Item -Path C:\WinGet -ItemType directory -ErrorAction SilentlyContinue
# Install VCLibs
#Invoke-WebRequest -Uri https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx -OutFile "C:\WinGet\Microsoft.VCLibs.x64.14.00.Desktop.appx"
Add-AppxPackage "C:\WinGet\Microsoft.VCLibs.x64.14.00.Desktop.appx"
# Install Microsoft.UI.Xaml from NuGet
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.UI.Xaml/2.8.6 -OutFile "C:\WinGet\Microsoft.UI.Xaml.2.8.6.zip"
Expand-Archive "C:\WinGet\Microsoft.UI.Xaml.2.8.6.zip" -DestinationPath "C:\WinGet\Microsoft.UI.Xaml.2.8.6"
Add-AppxPackage "C:\WinGet\Microsoft.UI.Xaml.2.8.6\tools\AppX\x64\Release\Microsoft.UI.Xaml.2.8.appx"
# Install latest WinGet from GitHub
Invoke-WebRequest -Uri https://github.com/microsoft/winget-cli/releases/latest/download/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle -OutFile "C:\WinGet\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
Add-AppxPackage "C:\WinGet\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
# Fix Permissions
TAKEOWN /F "C:\Program Files\WindowsApps" /R /A /D Y
ICACLS "C:\Program Files\WindowsApps" /grant Administrators:F /T
# Add Environment Path
$ResolveWingetPath = Resolve-Path "C:\Program Files\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__8wekyb3d8bbwe"
if ($ResolveWingetPath) {
$WingetPath = $ResolveWingetPath[-1].Path
}
$ENV:PATH += ";$WingetPath"
$SystemEnvPath = [System.Environment]::GetEnvironmentVariable('PATH', [System.EnvironmentVariableTarget]::Machine)
$SystemEnvPath += ";$WingetPath;"
setx /M PATH "$SystemEnvPath"
}
Remove-item -Recurse C:\WinGet
これで完了
MACのbrewを使いこなしている人には不要だと思うが。
ちなみに、WingetのGUIを使いたければ、Uniget(https://github.com/marticliment/UniGetUI)をインストールをするとGUIで扱える。
Windows Terminalのインストール
2023/10/1 更新
以下でインストールができる。(こっちでいれたほうがいい。最新がインストールできる。)
winget install Microsoft.WindowsTerminal
手動でインストールをするなら、
# Install Microsoft.UI.Xaml from NuGet
Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.UI.Xaml/2.8.6 -OutFile "C:\WinGet\Microsoft.UI.Xaml.2.8.6.zip"
Expand-Archive "C:\WinGet\Microsoft.UI.Xaml.2.8.6.zip" -DestinationPath "C:\WinGet\Microsoft.UI.Xaml.2.8.6"
Add-AppxPackage "C:\WinGet\Microsoft.UI.Xaml.2.8.6\tools\AppX\x64\Release\Microsoft.UI.Xaml.2.8.appx"
# Install Microsoft Windows Terminal from GitHub
Invoke-WebRequest -Uri https://github.com/microsoft/terminal/releases/download/v1.21.2911.0/Microsoft.WindowsTerminal_1.21.2911.0_8wekyb3d8bbwe.msixbundle -outfile C:\WinGet\Microsoft.WindowsTerminal_1.21.2911.0_8wekyb3d8bbwe.msixbundle
Add-AppxPackage -Path C:\WinGet\Microsoft.WindowsTerminal_1.21.2911.0_8wekyb3d8bbwe.msixbundle
Remove-item .\Microsoft.WindowsTerminal_1.21.2911.0_8wekyb3d8bbwe.msixbundle
これで完了。
Windows Server 2025は、この作業をしなくてもインストール直後からWingetもTerminalも入っている。