社内SEの話

日々起きたことの記録用

【Powershell】winget インストール方法【サイレントインストール】

↓プログラミングで副業を考えたらこちら↓

デフォルトでwingetがインストールされていない

wingetコマンドを入力すると、エラーが返ってきます。

使えるようにするにはwingetをインストールします。

learn.microsoft.com

MSページでもストアからインストールする方法を解説しています。

ストアからインストール

Microsoft Storeを起動

ダウンロードと更新をクリック

アプリインストーラーをクリックします。

アプリインストーラーの中にwingetのコマンドが同梱されています。

入手か更新をクリックします。

サインイン画面はそのまま閉じても問題ありません。

アプリ インストーラーがインストールもしくは更新がされます。

以上でwingetが使えるようになります。

ストアからのインストールは比較的簡単にインストールができます。

サイレントインストール方法

wingetの最新URLを取得

github.com

へアクセス

Releasesの Lastestにアクセス

Assets

Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle のURLをコピーします。

記事作成時のバージョンは1.4.10173だったので、

https://github.com/microsoft/winget-cli/releases/download/v1.4.10173/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle

になります。

Powershell 管理者権限で起動

ファイルをダウンロードするので、任意でフォルダを作ったり、カレントディレクトリを移動してください。

msixbundleをダウンロード

Invoke-WebRequest -Uri https://github.com/microsoft/winget-cli/releases/download/v1.4.10173/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle -OutFile Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle

追記

バージョンが固定化されているので、動的に最新バージョンを指定できるようにしました。

$latestVersion = (Invoke-RestMethod -Uri "https://api.github.com/repos/microsoft/winget-cli/releases/latest").tag_name

Invoke-WebRequest -Uri  “https://github.com/microsoft/winget-cli/releases/download/$latestVersion/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle” -OutFile $env:userprofile\appdata\local\temp\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle

パッケージの追加

Add-AppPackage -Path .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle

インストール後の確認

Powershellでwingetとコマンドを入力してみるとコマンドの解説が表示されれば、インストール成功です。

エラーが発生した場合

環境によってはDesktopAppInstallerをインストールしようとするとエラーが発生します。

Add-AppPackage : 次の HRESULT で展開に失敗しました: 0x80073CF3,パッケージの更新、依存関係、または競合の検証に失敗しました。

パッケージ Microsoft.DesktopAppInstaller_1.19.10173.0_x64\_\_8wekyb3d8bbwe は、見つからないフレームワークに依存しているためインストールできません。インストールするこのパッケージには、フレームワーク\"Microsoft.UI.Xaml.2.7\" (公開元 \"CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US\"、ニュートラルまたは x64 プロセッサアーキテクチャ、最少バージョン 7.2109.13004.0)
が必要です。現在インストールされている \"Microsoft.UI.Xaml.2.7\"という名前のフレームワークは次のとおりです: {}

注: 詳細については、イベント ログで \[ActivityId\]f40aaaea-3449-0000-3cd0-0af44934d901 を検索するか、コマンド ラインのGet-AppPackageLog-ActivityId f40aaaea-3449-0000-3cd0-0af44934d901を使用してください

発生場所 行:1 文字:1

+ Add-AppPackage -Path .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.ms \...

+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : WriteError: (C:\Users\user\D\...bbwe.msixbundle:String) \[Add-AppxPackage\],IOException

+ FullyQualifiedErrorId :
DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.AddAppxPackageCommand

Microsoft.UI.Xamlフレームワークがインストールされていないのが原因のようです。

インストールしてあげます。

Microsoft.UI.Xaml.2.7.インストール

細かい解説は割愛しますが、nupkgファイルの中にあるMicrosoft.UI.Xaml.2.7.appxを使ってパッケージインストールをします。

Microsoft.UI.Xamlのパス階層

Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.UI.Xaml/2.7.0 -OutFile Microsoft.UI.Xaml.2.7.nupkg.zip

Expand-Archive Microsoft.UI.Xaml.2.7.nupkg.zip

Add-AppxPackage .\Microsoft.UI.Xaml.2.7.nupkg\tools\AppX\x64\Release\Microsoft.UI.Xaml.2.7.appx

Microsoft.VCLibs.140.00.UWPDesktop インストール

2023/02/14 追記

VCLibsというフレームワークが入っていない場合に発生したエラーになります。

Add-AppPackage : 次の HRESULT で展開に失敗しました: 0x80073CF3, パッケージの更新、依存関係、または競合の検証に失敗しました。
パッケージ Microsoft.DesktopAppInstaller_1.19.10173.0_x64__8wekyb3d8bbwe は、見つからないフレームワークに依存しているためインストールできません。
インストールするこのパッケージには、フレームワーク "Microsoft.VCLibs.140.00.UWPDesktop" (公開元 "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"、ニュートラルまたは x64 プロセッサ アーキテクチャ、最少バージョン 14.0.30704.0) が必要です。
現在インストールされている "Microsoft.VCLibs.140.00.UWPDesktop" という名前のフレームワークは次のとおりです: {Microsoft.VCLibs.140.00.UWPDesktop_14.0.27629.0_x64__8wekyb3d8bbwe}
注: 詳細については、イベント ログで [ActivityId] d5a37a32-3b5d-0002-7ed9-a3d55d3bd901 を検索するか、コマンド ラインの Get-AppPackageLog-ActivityId d5a37a32-3b5d-0002-7ed9-a3d55d3bd901 を使用してください
発生場所 行:1 文字:1
+ Add-AppPackage -Path $env:userprofile\appdata\local\temp\Microsoft.De ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (C:\Users\user\a...bbwe.msixbundle:String) [Add-AppxPackage], IOException
    + FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.AddAppxPackageCommand

パッケージの配布先

learn.microsoft.com

パッケージのダウンロード&インストール

Invoke-WebRequest -Uri  https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx  -OutFile Microsoft.VCLibs.x64.14.00.Desktop.appx

Add-AppxPackage .\Microsoft.VCLibs.x64.14.00.Desktop.appx

雑感

コマンドラインでインストールができるようにするwingetが意外にもコマンドラインでインストールする情報があまり載っていません。

コマンドラインでアプリインストールをする研究をしている自分としては、意地で達成してみました。