検索
連載

アプリのインストールや更新をコマンドでサクっと実行「winget」の使い方Windows 10 The Latest

Microsoftが開発していたパッケージマネジャー「winget」が正式リリースされた。wingetを使うことで、アプリやツールがコマンドで簡単にインストール可能になるため、スクリプトで同じ環境をすぐに再現できるようになる。wingetのインストールから簡単な使い方までを紹介しよう。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「Windows 10 The Latest」のインデックス

連載目次

wingetによりコマンドラインによるアプリの管理が可能に
wingetによりコマンドラインによるアプリの管理が可能に
Microsoftが開発していたパッケージマネジャー「winget」が正式リリースされた。wingetを使うことで、コマンドラインでさまざまなアプリをインストールしたり、バージョンアップしたりできるようになる。今回は、wingetのインストール方法から基本的な使い方までを紹介する。

 スマートフォンを買い換えても、同じOS(iOSからiOS、AndroidからAndroid)ならば、初期設定時のウィザードで、設定やアプリなどが前のスマートフォンと同じになり、すぐに使うことができる。

 ところが、新しいWindows 10 PCを購入したり、Windows 10の初期化を行ったりすると、Windows 10の設定やアプリのインストールが必要になる。Windows 10も、Microsoftアカウントで同期すれば、設定のかなりの部分が前のPCと同じにできるが、アプリのインストールは個別に行わなければならない。

 アプリごとにWebブラウザで配布先を開き、ダウンロードしてインストールしなければならず、この作業は意外と面倒だ。そのため、アプリのインストーラーをオンラインストレージに全て保存しておき、新しいPCにはそこからインストールするという運用を行っている人もいるのではないだろうか。ただ、その場合でもアプリがバージョンアップしてしまうと、個別にアップデートしたり、場合によっては再インストールが必要であったりと、二度手間になってしまうこともある。

 こうした手間を省くものとして、「パッケージマネジャー(パッケージ管理システム)」と呼ばれるツールがある。インストールしたいアプリやツールを並べたスクリプトを用意しておき、これ実行することで自動的に環境構築を行うというものだ。事前にスクリプトを作る手間はかかるものの、いちいち配布先からパッケージをダウンロードしてインストールするよりも手早く環境構築が行える。特に会社などでは、スクリプトを1つ書いておき、それを実行するだけで大量のPCに同じ環境が構築できるというメリットがある。

 これまでも、こうしたパッケージマネジャーはWindows OS向けにも提供されていたが、サードパーティー製ということもあり、なかなか一般的になっていなかった。今回、Microsoftが開発した「Windows Package Manager(winget)」がv1.0となり、正式に提供開始となったことで、この状況も変わってくるかもしれない。

wingetを使ったアプリの管理例
wingetを使ったアプリの管理例
wingetを使うことで、コマンドラインでアプリをインストールしたり、バージョンアップしたりできる。異なるベンダーのアプリであっても一括管理できるので、初期設定などが非常に楽になる。

 wingetについては、既にWindows 10 The Latest「Windows環境再構築をコマンドラインで自動化可能にするMicrosoft製ツール『winget』とは」でβ版を紹介しているので、ここでは簡単に正式版での変更点や簡単な使い方を紹介する。

wingetのインストール方法

 wingetは、Microsoft StoreまたはGitHubからインストールが行える。Microsoft Storeからインストールした場合は、最新版がリリースされると自動的に更新される。一方、GitHubからインストールした場合は、常に最新版を自分でダウンロードして更新していく必要がある。

 Microsoft Storeからインストールするのが簡単でメンテナンスも容易だが、何らかの理由でバージョンを固定して使いたいといった場合はGitHubからインストールするとよい。

 GitHubからインストールした後、Microsoft Store版に変更したい場合は、GitHub版をアンインストールする必要がある(後述)。

Microsoft Storeでwingetをインストールする

 Microsoft Storeを起動し、[検索]アイコンをクリックし、検索ボックスに「アプリ インストーラー」と入力する。検索ボックスの下にサジェスチョンとして「アプリ インストーラー」が表示されるので、これをクリックする。原稿執筆時点では、ここで検索を行っても検索結果が「次の条件では該当する結果が見つかりません」と表示され、「winget」は表示されない。サジェスチョンの「アプリ インストーラー」をクリックして[アプリ インストーラー]画面を開き、ここからインストールを行うこと。

Microsoft Storeでwingetをインストールする(1)
Microsoft Storeでwingetをインストールする(1)
Microsoft Storeを起動し、検索ボックスに「アプリ インストーラー」と入力する。検索ボックスの下にサジェスチョンとして「アプリ インストーラー」が表示されるので、これをクリックする。
Microsoft Storeでwingetをインストールする(2)
Microsoft Storeでwingetをインストールする(2)
[アプリ インストーラー]画面が開くので、[入手]ボタンをクリックしてインストールを行う。

 上記の「アプリ インストーラー」の画面で「この製品はインストール済みです。」と表示され、かつコマンドプロンプトで「winget -v」を実行すると、v1.0未満のバージョン番号が表示されたら、プレビュー版(β版)がインストール済みである。その場合、後述の「既にプレビュー版をインストールしている場合」を参照して、正式版をインストールしてほしい。

wingetがインストール済みの場合はバージョンを確認する
wingetがインストール済みの場合はバージョンを確認する
プレビュー版(β版)がインストール済みだと、このようにv1.0未満のバージョン番号や「プレビュー」が表示される。その場合、後述の方法で正式版をインストールする。

 さて、インストールが完了しても、[スタート]メニューには登録されないので注意してほしい。インストールされたかどうかは、コマンドプロンプトを起動し、「winget」を実行してみればよい。wingetのヘルプが表示されたら、インストールは正常に行われている。

 また、[Windowsの設定]アプリを起動し、[アプリ]−[アプリと機能]画面を開き、「アプリと機能」欄の[アプリ実行エイリアス]リンクをクリックして開く、[アプリ実行エイリアス]画面に「Windows Package Manager Client」が登録されているかどうかで確認できる。

wingetがインストールされていることを確認する(1)
wingetがインストールされていることを確認する(1)
[Windowsの設定]アプリを起動し、[アプリ]−[アプリと機能]画面を開く。右ペインの[アプリ実行エイリアス]をクリックする。
wingetがインストールされていることを確認する(2)
wingetがインストールされていることを確認する(2)
[アプリ実行エイリアス]画面が開いたら、「Windows Package Manager Client(winget.exe)」が登録されていることを確認する。

GitHubからwingetをインストールする

 WebブラウザでGitHubの「microsoft/winget-cli」を開き、右ペインの「Releases」の「Windows Package Manager <バージョン番号>」をクリックする。[Windows Package Manager <バージョン番号>]画面が開くので、画面の下の方にある「Assets」の[Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle]リンクをクリックする。パッケージのダウンロードが行えるので、これを実行すればインストールが行える。

GitHubからwingetをインストールする(1)
GitHubからwingetをインストールする(1)
WebブラウザでGitHubの「microsoft/winget-cli」リポジトリを開き、右ペインの「Releases」欄下の[Windows Package…]リンクをクリックする。
GitHubからwingetをインストールする(2)
GitHubからwingetをインストールする(2)
[Windows Package Manager <バージョン番号>]画面が開くので、画面を一番下までスクロールする。
GitHubからwingetをインストールする(3)
GitHubからwingetをインストールする(3)
「Assets」欄の[Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle]リンクをクリックする。
GitHubからwingetをインストールする(4)
GitHubからwingetをインストールする(4)
ファイルがダウンロードされるので、これを実行する。[ダウンロード]フォルダを開いて実行してもよい。
GitHubからwingetをインストールする(5)
GitHubからwingetをインストールする(5)
[アプリインストーラーを更新しますか?]ダイアログが表示されるので、[更新]ボタンをクリックする。
GitHubからwingetをインストールする(6)
GitHubからwingetをインストールする(6)
このダイアログが表示されたらインストールが完了だ。

既にプレビュー版をインストールしている場合

 wingetは、[スタート]メニューやコントロールパネルの[プログラムと機能]に表示されないため、GUIを使ってアンインストールが行えない。

 GitHubからプレビュー版をダウンロードしてインストールしている場合は、GitHubから正式版をダウンロードしてインストールするか、PowerShell 5.xで以下のコマンドレットを実行して事前にアンインストールした後、Microsoft Storeからインストールを行う必要がある。

Get-AppxPackage *Microsoft.DesktopAppInstaller* | Remove-AppxPackage

wingetをアンインストールするコマンドレット

wingetをアンインストールする
wingetをアンインストールする
wingetをアンインストールするには、PowerShellで上記のコマンドを実行する必要がある。ただし、wingetをアンインストールすると、「.appxbundle」ファイルの関連付けも削除されてしまうので注意してほしい。

 PowerShell 7.xの場合、上記のコマンドレットを実行すると、Appxモジュールをロードできないというエラーが発生する。その場合、[スタート]メニューにある「Windows PowerShell」(こちらがPowerShell 5.x)を選んで起動し、上記コマンドレットを実行すること。

 なお、wingetをアンインストールすると、「.appxbundle」ファイルの関連付けも削除されてしまい、GitHubからパッケージをダウンロードしてインストールすることができなくなるので注意してほしい(Microsoft Storeからwingetをインストールすれば、関連付けが復活する)。

wingetの使い方

 wingetは、アプリのインストールなどをスクリプトやバッチで一括して行う用途を想定しているため、コマンドラインで操作を行う。

 wingetのコマンドラインは以下の書式を使う。

winget [<サブコマンド>] [<サブコマンドオプション>


winget.exeの書式

 wingetは、引数を何も付けずに実行するとオンラインヘルプを表示するので、サブコマンドが分からなくなったら、wingetのみを実行すればよい。

サブコマンド 説明
-v/--version wingetのバージョンを表示
--info wingetの情報を表示
install 指定されたパッケージをインストール
show パッケージに関する情報を表示
source パッケージのソースの管理
search アプリの基本情報を見つけて表示
list インストール済みパッケージを表示
upgrade 指定されたパッケージをアップグレード
uninstall 指定されたパッケージをアンインストール
hash インストーラーファイルをハッシュするヘルパー
validate マニフェストファイルを検証
settings 設定(settings.josnファイル)を開く
features 試験的な機能の状態を表示
export インストールされているパッケージのリストをエクスポート
import ファイル中の全てのパッケージをインストール
wingetのサブコマンド

 wingetのサブコマンドには、さらに特有のオプション指定が必要になる。詳細は、Windows 10 The Latest「Windows環境再構築をコマンドラインで自動化可能にするMicrosoft製ツール『winget』とは」を参照してほしい。以下では、よく使う基本的なサブコマンドを紹介する。

wingetでアプリをインストールする

 wingetでアプリをインストールするには、どのようなアプリがリポジトリ(配布元)に登録されているのかを確認する必要がある。

 それには、以下のコマンドを実行する。

winget show > C:\Temp\wingetlist.txt


wingetでインストール可能なアプリの一覧を取得する

 「show」サブコマンドでアプリの一覧を取得し、それを「C:\Temp\wingetlist.txt」に出力している。ファイルに出力するのは、リストが長く、コマンドプロンプト上でインストールしたいアプリが登録されているのかどうかを確認するのが難しいからだ。そのため、テキストファイルに出力してから、テキストエディタなどで検索する方がよいだろう。なお、出力されたテキストファイルの文字コードはUTF-8になっている。

 インストールしたいアプリが見つかったら、以下のコマンドを実行する。ここでは「Visual Studio Code」をインストールする例を示す。

winget install -h Microsoft.VisualStudioCode


wingetでVisual Studio Codeをインストールする

 「install」サブコマンドでインストールを指示し、「-h」オプションでサイレントインストールを指定する。Visual Studio Codeをインストールする場合、「show」サブコマンドで出力したファイルで「Visual Studio」を検索して、Visual Studio CodeのID(Microsoft.VisualStudioCode)を得る。

 同様にインストールしたいアプリを探し、上記と同様にインストール用のコマンドラインを用意し、一括インストール用のバッチファイルに追記していけばよい(詳細は後述)。

 なお、アプリによってはインストール時に管理者権限が必要なものがある。そうしたアプリをwingetでインストールする場合には、管理者権限で起動したコマンドプロンプトでwinget installのコマンドラインを実行すること。

wingetでアプリをバージョンアップする

 wingetを使ってアプリをバージョンアップすることも可能だ。単に「upgrade」サブコマンドを付けて実行すると、wingetでバージョンアップ可能なアプリの一覧を取得できる。

winget upgrade


wingetでバージョンアップ可能なアプリの一覧を取得する

winget upgradeでバージョンアップ可能なアプリの一覧を取得する
winget upgradeでバージョンアップ可能なアプリの一覧を取得する
「winget upgrade」を実行すると、インストールされているアプリが検索され、新しいバージョンが提供されているアプリの一覧が表示される。

 リストには、現在インストールされているバージョンと利用可能なバージョンが表示されるので、バージョンアップしたい場合は、以下のように「-h」オプションとともにIDを指定すれば、サイレントインストールでバージョンアップが行える(「--all」オプションで全てのアプリをバージョンアップすることも可能)。

winget upgrade -h zoom.zoom


wingetでアプリをバージョンアップする

 winget経由ではなく、別の方法でインストールされたアプリについても、wingetは検索してアップグレード可能なら一覧に表示してくれる。もちろん、そうしたアプリはwingetでのアップグレードも可能だ。

wingetでアプリをアンインストールする

 不要にあったアプリをアンインストールすることも可能だ。それには、wingetでアンインストール可能なアプリの一覧(インストール済みのアプリ)を得る必要がある。

winget list  > C:\Temp\wingetuninstall.txt


wingetでインストール済みのアプリの一覧を取得する

 「list」サブコマンドでインストール済みのアプリの一覧を取得し、これを「C:\Temp\wingetuninstall.txt」に出力している。これも長いリストが出力されるのでテキストファイルに出力して確認した方がよい。また、テキストファイルに出力すれば、IDをコピー&ペーストで指定できるので楽だ。

 例えば、zoomアプリをアンインストールするのであれば、以下のように指定する。

winget uninstall -h zoom.zoom


wingetでアプリをアンインストールする

 これでサイレントモードによるアンインストールが行える。

1603エラーが発生した場合の対処方法

 wingetを使ってアプリをインストール/アンインストールしようとした際、エラー番号「1603」が出力された場合、コマンドプロンプトを管理者権限で起動して実行してみると解決することが多い。

1603エラーが発生した場合の対処方法
1603エラーが発生した場合の対処方法
「1603」エラーが表示される場合は、コマンドプロンプトを管理者権限で起動して、そこでwingetの実行を試してみよう。

アプリを自動インストールするバッチファイルを作成する

 新しいPCを購入した際のアプリのインストールを楽にするため、現在運用しているWindows 10上にインストールされているアプリのうち、wingetでインストール可能なものをバッチファイルにしておくとよい。それには、「winget list」でインストール済みのアプリの一覧を取得して、このリストの中でwingetのIDが付けられているものを探し、以下のようにバッチファイルにする。

 ただ、「list」サブコマンドでIDが表示されたものが、全てリポジトリに登録されているわけではないので、「show」サブコマンドで出力したリストを検索して、そのアプリが登録されているか確認すること。

echo off
winget install -h 7zip.7zip
winget install -h zoom.zoom
winget install -h google.chrome
winget install -h Google.DriveFileStream
winget install -h SlackTechnologies.Slack
winget install -h Mozilla.Firefox
winget install -h Mozilla.Thunderbird
winget install -h Microsoft.VisualStudioCode
echo on


wingetでアプリをインストールするバッチファイルの例
echo offにすると、全ての出力が非表示になるので、テストの際はecho offを外して実行に問題がないかどうか確認するとよい。

Microsoft Storeもダウンロード元の対象にする

 原稿執筆時点では、「winget」リポジトリのみが対象となっているが、実験的機能の設定でMicrosoft Storeアプリ(「msstore」リポジトリ)を対象にすることもできる。例えば、Windows Terminalは、「winget」リポジトリと「msstore」リポジトリに登録されており、どちらからでもインストールが行える。「msstore」リポジトリからインストールすると、Microsoft Storeによる自動更新機能の対象となる。そのため、常に最新版を利用したい場合は、「msstore」リポジトリからインストールした方がよい。

 まず、「msstore」リポジトリを有効にしよう。それにはまず、「winget settings」を実行し、設定ファイルである「settings.json」ファイルを開く。初めてjsonファイルを開く場合は、「メモ帳」アプリなどに関連付けを行って開くとよい。

 「settings.json」ファイルの編集画面が表示されたら、以下のリストのように、「// },」と「}」の間に「"experimentalFeatures": { "experimentalMSStore":true }, 」を追記すればよい。「settings.json」ファイルに上書き保存すれば、「msstore」リポジトリが有効になる。

{
    "$schema": "https://aka.ms/winget-settings.schema.json",

    // For documentation on these settings, see: https://aka.ms/winget-settings
    // "source": {
    //    "autoUpdateIntervalInMinutes": 5
    // },
 "experimentalFeatures": {
      "experimentalMSStore": true
   },
}


「settings.json」ファイルに追記する
緑色の部分を追記して、「msstore」リポジトリを有効にする

「msstore」リポジトリを追加する
「msstore」リポジトリを追加する
実験的機能を有効にして、Microsoft Storeからのインストールを可能にする。それには、「winget settings」を実行し、「Settings.json」ファイルを開き、「"experimentalFeatures": { "experimentalMSStore":true } 」を追記する。

 次に、「msstore」リポジトリを指定して、「Windows Terminal」をインストールしてみよう。「install」サブコマンドに続いて、「--source msstore」とオプションを指定することで、「msstore」リポジトリからインストールが行える。

winget install --source msstore Microsoft.WindowsTerminal


「msstore」リポジトリからWindows Terminalをインストール


 wingetには、ここで取り上げた他にもさまざまな機能がある。wingetを使いこなすことで、アプリのインストールが容易になるはずだ。ただ、現時点では登録されているアプリの数が十分とはいえず、まだ手動でインストールしなければならないものも多い。wingetが普及すれば、多くのアプリが登録されるようになり、wingetを使ったアプリの管理がより便利になると思われる。特に管理者は、wingetの使い方を勉強しておくと、クライアントPCの管理が楽になるだろう。

Copyright© Digital Advantage Corp. All Rights Reserved.

ページトップに戻る