pc:winget
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
pc:winget [2023/04/30 18:45] – [使い方] nipa28 | pc:winget [2023/05/04 10:26] (現在) – [Wingetの使い方] nipa28 | ||
---|---|---|---|
行 2: | 行 2: | ||
======================= | ======================= | ||
- | Winget導入 | + | 概要 |
+ | ---- | ||
+ | Windowsでアプリをインストールする方法は、ソフトウェアの配布サイト(アプリの公式や窓の杜などのサイト)からインストーラーをダウンロードしてGUIでインストールするのが一般的である。(ほかには、Microsoftストアからインストールする方法もあるにはあるが……) | ||
+ | たくさんのアプリをインストールする場合は、その都度インストール作業をポチポチ行う必要があり、これは非常に面倒。 | ||
+ | |||
+ | 一方、LinuxではコマンドラインからCUIでインストール(yum, | ||
+ | これだと、スクリプトを書いておくとコマンド一発で所望のアプリを一括インストール、というようなことが簡単に実現できる。 | ||
+ | |||
+ | 実は、Windowsでも コマンドラインからCUIでインストールすることができる。 | ||
+ | |||
+ | この用には、以前よりChocolaty(chocoコマンド)が存在していたが、有志のプロジェクトということもあり、個人所有ならともかく、企業で業務利用するPCで積極的に使うのはちょっと躊躇いがあった。 | ||
+ | |||
+ | 最近では、Microsoft自身がCUIによるアプリ管理方法を整備しており、Windows10 Windows11では、マイクロソフト謹製の winget というコマンドが使えるようになっている。 | ||
+ | Microsoftが公式に提供している機能ということもあって、業務利用でも安心して(?)使用することができる。 | ||
+ | |||
+ | |||
+ | そんな、winget コマンドでアプリを管理する方法について、よく使うところだけ、簡単に記す。 | ||
+ | |||
+ | |||
+ | |||
+ | Wingetを導入する | ||
---------- | ---------- | ||
行 8: | 行 28: | ||
* PowerShellで次のコマンドを実行する | * PowerShellで次のコマンドを実行する | ||
`Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe` | `Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe` | ||
- | 使い方 | + | Wingetの使い方 |
+ | ---------- | ||
+ | |||
+ | インストールされているアプリを一覧表示する | ||
+ | ``` | ||
+ | winget list | ||
+ | ``` | ||
+ | |||
+ | アプリを探す | ||
+ | インストールしたいアプリの正確な名前(ID、モニカー)を確認する。 | ||
+ | ``` | ||
+ | winget search < | ||
+ | ``` | ||
+ | |||
+ | |||
+ | |||
+ | アプリをインストールする | ||
+ | |||
+ | ``` | ||
+ | winget install < | ||
+ | ``` | ||
+ | |||
+ | アップグレードできるアプリを表示 | ||
+ | ``` | ||
+ | winget upgrade | ||
+ | ``` | ||
+ | |||
+ | アプリをアップグレードする | ||
+ | ``` | ||
+ | winget upgrade < | ||
+ | ``` | ||
+ | |||
+ | |||
+ | |||
+ | アプリを削除する | ||
+ | |||
+ | ``` | ||
+ | winget uninstall notepad++ | ||
+ | ``` | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | インストール先のこと | ||
+ | ---------- | ||
+ | |||
+ | Wingetに限ったことではないが、インストーラーを使ったWindowsアプリのインストール先には、基本的に次のパターンがある。 | ||
+ | |||
+ | * システムインストール ※管理者権限が要る | ||
+ | すべてのユーザー(ALL USERS) | ||
+ | * ユーザーインストール | ||
+ | 現在のユーザー(CURRENT USER) '' | ||
+ | |||
+ | 個人所有など、自分専用として専有できるパソコンならば、別にどちらを選ぼうが構わない。 | ||
+ | 会社や家族共用しているなど、複数ユーザーが共有するパソコンでは、ALL USERSでインストールしたいケースが多いに違いない。 | ||
+ | |||
+ | < | ||
+ | |||
+ | 管理者権限のあるadminユーザーでアプリをインストールしたが、本来そのアプリを使いたい一般ユーザーでサインインすると、アプリは使えない状態のままだった。 | ||
+ | インストーラーのデフォルトがユーザーインストールだったため、adminだけが使える状態でインストールされたことが原因。</ | ||
+ | |||
+ | winget installに --scopeオプションを付けると、インストール範囲をuserまたはmachineに設定できる。userで基本ユーザーインストール、machineで基本システムインストールになるようだ。(デフォルトはuser) | ||
+ | いちいち --scope machine を付けるのが面倒なら winget settings で次のようにしておくと毎度オプション指定する手間が省ける。 | ||
+ | |||
+ | settings.jsonに追記 | ||
+ | ``` | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | }, | ||
+ | ``` | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Help | ||
------ | ------ | ||
行 54: | 行 153: | ||
+ | ++++ winget install help | | ||
+ | ``` | ||
+ | PS C: | ||
+ | v1.4.10173 の Windows パッケージ マネージャー | ||
+ | Copyright (c) Microsoft Corporation. All rights reserved. | ||
- | 各種アプリのインストール先 | + | Installs the selected package, either found by searching a configured source or directly from a manifest. By default, the query must case-insensitively match the id, name, or moniker of the package. Other fields can be used by passing their appropriate option. By default, install command will check package installed status and try to perform an upgrade if applicable. Override with --force to perform a direct install. |
- | ------------- | + | |
- | 各種アプリのデフォルトのインストール先 | + | 使用法: winget install [[-q] < |
- | System: C:\Program Files\ | + | |
- | User: C: | + | |
+ | 次のコマンド エイリアスを使用できます: | ||
+ | add | ||
- | ^ アプリ | + | 次の引数を使用できます。 |
- | | Notepad++ | + | |
- | | WinMerge | + | |
- | | WinSCP | + | |
+ | 次のオプションを使用できます。 | ||
+ | -m, | ||
+ | --id ID で結果をフィルター処理 | ||
+ | --name | ||
+ | --moniker | ||
+ | -v, | ||
+ | -s, | ||
+ | --scope | ||
+ | -a, | ||
+ | -e, | ||
+ | -i, | ||
+ | -h, | ||
+ | --locale | ||
+ | -o, | ||
+ | --override | ||
+ | -l, | ||
+ | --ignore-security-hash | ||
+ | --ignore-local-archive-malware-scan | ||
+ | --dependency-source | ||
+ | --accept-package-agreements | ||
+ | --no-upgrade | ||
+ | --header | ||
+ | --accept-source-agreements | ||
+ | -r, | ||
+ | --force | ||
+ | -?, | ||
+ | --wait | ||
+ | --verbose, | ||
+ | --disable-interactivity | ||
- | スクリプト | + | その他のヘルプについては、次を参照してください: |
- | --------- | + | PS C: |
+ | ``` | ||
+ | ++++ | ||
+ | System権限か、User権限か | ||
+ | ------------- | ||
+ | |||
+ | アプリのインストールのされ方として、System権限:すべてのユーザー(管理者権限必要)と User権限:現在のユーザー がある。 | ||
+ | System権限: | ||
+ | User権限: C: | ||
+ | |||
+ | 特にsettingを変更せずに、winget install でインストールすると、どちらになるかは、アプリによってまちまちのようだ。 | ||
- | ※すべてのユーザーにインストールする | + | こうしておくと、System権限でインストールされるみたい。 |
``` | ``` | ||
- | winget install | + | winget install |
``` | ``` | ||
+ | |||
+ | |||
+ | ++++ 上手くない方法 | | ||
+ | |||
+ | アプリのインストーラにオプションを渡して、System権限(/ | ||
``` | ``` | ||
- | winget install | + | winget install |
``` | ``` | ||
+ | |||
+ | |||
+ | |||
+ | Notepad++ | ||
+ | System | ||
+ | /S | ||
+ | |||
+ | WinMerge | ||
+ | User | ||
+ | /SILENT /ALLUSERS | ||
+ | v2.16.28 wingetでオプション指定してもUser権限になる(単体インストーラーだとSystem権限) | ||
+ | WinSCP | ||
+ | User | ||
+ | / | ||
+ | |||
+ | ++++ | ||
+ | スクリプト | ||
+ | --------- | ||
+ | |||
+ | |||
+ | |||
+ | <file batch installApps.cmd> | ||
+ | powershell -ExecutionPolicy RemoteSigned -File .\installApps.ps1 | ||
+ | </ | ||
+ | |||
+ | <file powershell installApps.ps1> | ||
+ | $list = " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | |||
+ | foreach ($item in $list) { | ||
+ | echo " | ||
+ | winget install $item --silent --scope machine | ||
+ | if ($?) { echo " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 文字化けを避けるには、エンコードを「UTF-8-BOM」にする。 |
pc/winget.1682847901.txt.gz · 最終更新: 2023/04/30 18:45 by nipa28