社内SEの話

日々起きたことの記録用

【PowerShell】winget ソースへの同意を自動化

winget 初回使用時に同意が必要

キッティングの時にwingetを使ってアプリをインストールしようとした際に、初回のみ同意を求められます。

以下のような出力がされます。

'msstore' ソースを使用するには、使用する前に次の契約を表示する必要があります。

Terms of Transaction:https://aka.ms/microfost-store-terms-of-transaction

ソースが正常に機能するには、現在のマシンの2文字の地理的リージョンをバックエンドサービスに送信する必要があります(例:"US")

すべてのソース契約に同意しますか?

通常はYを選択すれば、以降同意を求めて来ません。

ただし、ps1ファイルなどでwingetをオートメーション化しようとした時に処理が中断され、キー入力の必要が出ます。

これでは勝手が悪いので対処方法が必要になります。

wingetについて

learn.microsoft.com

対処方法

初回使用時のinstall か upgrade コマンドに --accept-source-agreement オプションを追加すると同意を求めて来ません。

winget upgrade --accept-source-agreement

winget install Google.Chrome --accept-source-agreement --accept-package-agreements

理由

出力されたコメントを見るとソースの契約条件に同意するか求めているので、--accept-source-agreement オプションを指定します。

searchコマンドや versionコマンドでは同意を求めて来ないため、install かupgradeで指定します。

似たオプションで --accept-package-agreements がありますが、こちらはアプリ単位で規約に対して同意します。

そのためこのオプションはインストールのたびに指定してあげる必要があります。

learn.microsoft.com

learn.microsoft.com

日常的に常に新しいPCを触っているキッティング担当者から見るとこのオプションを使わないとキー操作が発生して不便なので、ぜひwingetを初回使用時にはこのオプションを使った方が幸せになれると思います。