Windows用パッケージマネージャー「winget.exe」のプレビューが開始された。バイナリーも提供されているので、ちょっと試してみた。なお、wingetはプレビュー版であり、最終版ではないので、場合によっては重大な問題が発生する可能性もある。ご自身のリスクで利用していただきたい。編集部も筆者も一切責任を負わないのでそのつもりで。
そもそもwingetとは一体何?
wingetは、マイクロソフトが開発した「公式」のパッケージマネージャーである。一般にパッケージマネージャーとは、アプリケーションパッケージの検索やインストール、アップデートなどの管理するためのもの。Linux系では、アプリケーションやOS関連ソフトウェアのインストールは、パッケージマネージャーを使うのが標準的で、各ディストリビューションごとに標準のパッケージマネージャーがある。
逆にどのパッケージマネージャーを採用しているかでLinuxディストリビューションを分類することもあるくらいに標準的なものになっている。Linuxのパッケージマネージャーが成功したので、他のOSでも現在ではパッケージマネージャーを搭載するのが広がっている。
そんな中で、標準のパッケージマネージャーがないのはWindowsぐらいだった。強いて言えばMicrosoftストアが似たような存在であるが、管理できるのは、AppxやMsixのようなMicrosoftストア用のパッケージのみで、Win32アプリケーション標準のMSIパッケージ形式には対応していなかった。wingetは、Win32アプリケーション用のパッケージマネージャーであり、Win32アプリケーションの検索、インストール、情報表示などができるようになっている。
一般にパッケージマネージャーは、対象アプリケーションを保存する「リポジトリー」と対になっている。リポジトリーは、ローカルに置くことも不可能ではないが、一般的には、インターネット側サイトとして作られる。このため、パッケージマネージャーは、ここからアプリケーションを検索などで探して、ダウンロードしてインストールできる。
wingetもマイクロソフトが管理するリポジトリーを持つ。マイクロソフトの主張によれば、「信頼できるリポジトリ」を構築することが自身でパッケージマネージャーを開発する理由だったとか。まあ、気持ちはわからないでもないが、Microsoftストアもリポジトリーの一種と考えるなら2つもリポジトリーが必要なのかどうか? と思わないわけでもないのだが、まあそこはマイクロソフトの自由である。とりあえず、wingetは「winget」というリポジトリー1つだけが登録された状態である。
なお、wingetには、インストールしたアプリを列挙したり、インストールされているアプリの情報を表示する機能はまったく含まれていない。これに関しては、以前この連載で解説したWin32アプリケーションのアンインストール情報を保存しているレジストリを見るしかない(WindowsでのWin32アプリケーションのインストール状態を調べる方法)。
毎回長いコマンドを打つのもなんなので、簡易なインストールパッケージ表示コマンドを作った。
function winget-list([string]$appname) {
$temp=(Get-ChildItem -Path (
'HKLM:SOFTWARE¥Microsoft¥Windows¥CurrentVersion¥Uninstall',
'HKLM:SOFTWARE¥WOW6432Node¥Microsoft¥Windows¥CurrentVersion¥Uninstall',
'HKCU:SOFTWARE¥Microsoft¥Windows¥CurrentVersion¥Uninstall'
) | ForEach-Object { Get-ItemProperty $_.PsPath})
if($appname -ne "") {
$temp | Where-Object { $_.DisplayName -like ($appname+"*")} ;
} else {
$temp | Sort-Object DisplayName | Select-Object publisher,displayversion,displayname,InstallLocation ;
}
}
勝手に名前を「winget-list」にしてあるが、名前は自由に決めてかまわない。引数なしで起動すると、インストールされているWin32アプリケーションをすべてテーブル形式で表示する。引数として文字列を与えると、指定された文字列を先頭に含むパッケージ名を探して情報を表示する(いわゆる前方一致での検索)。
なお、途中文字列で検索したい場合には、文字列先頭にワイルドカード文字「*」を付け、たとえば「*code」などと指定する。
winget.exeのインストール方法
まずは、インストールだが、githubにソースコードがある(https://github.com/microsoft/winget-cli)。
このリポジトリをクローンして自分のビルドするのが正統だが、さすがにそれはちょっと面倒。というわけでマイクロソフトもインストール用バイナリを用意してくれている(https://github.com/microsoft/winget-cli/releases)。
ここから、「Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle」をダウンロードして実行させれば、インストールしてくれる。なお、完全なコマンドラインツールである。
また、wingetを試すには、「App Installer」がインストールされている必要がある。これを入手する方法は3つ。
1. Windows Package Manager Insider Protamに参加してMicrosoftストアから入手
2. Windows Insider Programに参加してMicrosoftストアから入手
3. githubからソースコードを入手して自分でビルド、インストールする
「1」と「2」は、各プログラムに参加すると、Microsoftストアで「アプリ インストーラー(App Installer)」がインストールできるようになるので自分でインストールする。また、すでにInsider Programに参加しているならもうインストールされている可能性もある。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ













