His Masters' Voices Wiki

よろずのことの書き残し

ユーザ用ツール

サイト用ツール


pc:winget

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
pc:winget [2023/04/30 18:47] – [Winget導入] nipa28pc:winget [2023/05/04 10:26] (現在) – [Wingetの使い方] nipa28
行 1: 行 1:
 wingetでアプリを管理する wingetでアプリを管理する
 ======================= =======================
-Winget導入+ 
 +概要 
 +---- 
 +Windowsでアプリをインストールする方法は、ソフトウェアの配布サイト(アプリの公式や窓の杜などのサイト)からインストーラーをダウンロードしてGUIでインストールするのが一般的である。(ほかには、Microsoftストアからインストールする方法もあるにはあるが……) 
 +たくさんのアプリをインストールする場合は、その都度インストール作業をポチポチ行う必要があり、これは非常に面倒。 
 + 
 +一方、LinuxではコマンドラインからCUIでインストール(yum, dfn, apt など)が一般的。 
 +これだと、スクリプトを書いておくとコマンド一発で所望のアプリを一括インストール、というようなことが簡単に実現できる。 
 + 
 +実は、Windowsでも コマンドラインからCUIでインストールすることができる。 
 + 
 +この用には、以前よりChocolaty(chocoコマンド)が存在していたが、有志のプロジェクトということもあり、個人所有ならともかく、企業で業務利用するPCで積極的に使うのはちょっと躊躇いがあった。 
 + 
 +最近では、Microsoft自身がCUIによるアプリ管理方法を整備しており、Windows10 Windows11では、マイクロソフト謹製の winget というコマンドが使えるようになっている。 
 +Microsoftが公式に提供している機能ということもあって、業務利用でも安心して(?)使用することができる。 
 + 
 + 
 +そんな、winget コマンドでアプリを管理する方法について、よく使うところだけ、簡単に記す。 
 + 
 + 
 + 
 +Winget導入する
 ---------- ----------
  
行 7: 行 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 <appname>
 +```
 +
 +アップグレードできるアプリを表示
 +```
 +winget upgrade
 +```
 +
 +アプリをアップグレードする
 +```
 +winget upgrade <appname>
 +```
 +
 +
 +
 +アプリを削除する
 +
 +```
 +winget uninstall notepad++
 +```
 +
 +
 +{{:pc:pasted:20230502-165048.png}}
 +
 +
 +インストール先のこと
 +----------
 +
 +Wingetに限ったことではないが、インストーラーを使ったWindowsアプリのインストール先には、基本的に次のパターンがある。
 +
 +  * システムインストール ※管理者権限が要る
 +    すべてのユーザー(ALL USERS)  ''C:\Program Files\'', ''C:\Program Files (x86)\''など
 +  * ユーザーインストール
 +    現在のユーザー(CURRENT USER) ''C:\Users\<USERNAME>\AppData\Local\Programs\''など
 +
 +個人所有など、自分専用として専有できるパソコンならば、別にどちらを選ぼうが構わない。
 +会社や家族共用しているなど、複数ユーザーが共有するパソコンでは、ALL USERSでインストールしたいケースが多いに違いない。
 +
 +<note>ありがちな失敗例(自分の経験)
 +
 +管理者権限のあるadminユーザーでアプリをインストールしたが、本来そのアプリを使いたい一般ユーザーでサインインすると、アプリは使えない状態のままだった。
 +インストーラーのデフォルトがユーザーインストールだったため、adminだけが使える状態でインストールされたことが原因。</note>
 +
 +winget installに --scopeオプションを付けると、インストール範囲をuserまたはmachineに設定できる。userで基本ユーザーインストール、machineで基本システムインストールになるようだ。(デフォルトはuser)
 +いちいち --scope machine を付けるのが面倒なら winget settings で次のようにしておくと毎度オプション指定する手間が省ける。
 +
 +settings.jsonに追記
 +```
 + "installBehavior": {
 + "preferences": {
 + "scope": "machine"
 + }
 + },
 +```
 +
 +
 +
 +
 +
  
 Help Help
行 104: 行 203:
 ``` ```
 ++++ ++++
 +System権限か、User権限か
 +-------------
  
 +アプリのインストールのされ方として、System権限:すべてのユーザー(管理者権限必要)と User権限:現在のユーザー がある。
 +System権限: C:\Program Files\<appName> や C:\Program Files(x86)\<appName> 
 +User権限: C:\Users\<USERNAME>\AppData\Local\Programs\<appName>
  
-各種アプリのインストール先 +特にsettingを変更せずに、winget install でインストールすると、どちらになるかは、アプリによってまちまちのようだ。
--------------+
  
-各種アプリのデフォルトのインストール先 +こうしておくと、System権限でインストールされるみたい。
-System: C:\Program Files\ +
-User: C:\Users\<USERNAME>\AppData\Local\Programs\+
  
 +```
 +winget install winmerge --scope machine
  
-^ アプリ     ^ オプションなし  ^ オプション(Silent/System)         ^ 備考                                                                                       ^ +```
-| Notepad++  | System          | /S                                |                                                                                            | +
-| WinMerge   | User            | /SILENT /ALLUSERS                 | v2.16.28  wingetでオプション指定してもUser権限になる\\ (単体インストーラーだとSystem権限) +
-| WinSCP     | User            | /VERYSILENT /NORESTART /ALLUSERS  |                                                                                            |+
  
  
-スクリプト +++++ 上手くない方法 |
----------+
  
-※すべてユーザーにインストールする+アプリインストオプションを渡して、System権限(/ALLUSERS etc)、User権限(/CURRENTUSER etc)を指定して、インストール先を制御することもできるが、アプリによっては反映されないことあった。
  
 ``` ```
行 130: 行 229:
 ``` ```
  
-``` 
-winget install winmerge --scope machine 
  
-```+ 
 +Notepad++  
 + System 
 + /S 
 + 
 +WinMerge 
 + User 
 + /SILENT /ALLUSERS 
 + v2.16.28 wingetでオプション指定してもUser権限になる(単体インストーラーだとSystem権限) 
 +WinSCP 
 + User 
 + /VERYSILENT /NORESTART /ALLUSERS 
 + 
 +++++ 
 +スクリプト 
 +--------- 
 + 
 + 
 + 
 +<file batch installApps.cmd> 
 +powershell -ExecutionPolicy RemoteSigned -File .\installApps.ps1 
 +</file> 
 + 
 +<file powershell installApps.ps1> 
 +$list = "7zip.7zip", ` 
 +        "winscp", ` 
 +        "Notepad++.Notepad++", ` 
 +        "Microsoft.WindowsTerminal",
 +        "VideoLAN.VLC" 
 + 
 +foreach ($item in $list) { 
 + echo "[$item]" 
 + winget install $item --silent --scope machine 
 +        if ($?) { echo "=>成功" } else { echo "=>失敗"
 +
 +</file> 
 + 
 +文字化けを避けるには、エンコードを「UTF-8-BOM」にする。
pc/winget.1682848053.txt.gz · 最終更新: 2023/04/30 18:47 by nipa28