3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PCアプリを一括インストール&自動更新するための個人的なメモ【Windows wingetコマンド タスクスケジューラ】

Last updated at Posted at 2024-02-29

目次

はじめに

Windows OSをクリーンインストールした時に今まで使っていたアプリケーションをいちいちダウンロード先を検索してインストールするのが少し面倒だと感じるときがある。
最近のWindowsではwingetコマンドというのがあり、こちらを使うと対応しているアプリケーションのみであるが一括でまとめてアプリをインストールできる。また、Windows OSのタスクスケジューラ機能を使えばPC起動時に自動で更新してくれるためインストールや更新にかかる手間を省けそうだと感じたため個人的なメモとして残す。

Windowsパッケージマネージャー(winget)とは

知らない間にWindowsでwingetコマンドというものがが使えるようになった。
このコマンドを使うことでコマンドで一発でソフトのインストールができたり一括でアプリケーションの更新をするのに便利なものになっている。

アプリケーションのインストール

winget.runというサイトからアプリケーションのコマンドを検索をする。
例えばMicrosoft Visual Studio Codeで検索をする。

winget_run_search_VScode.png

検索結果から詳細にいきHow to installにあるコマンドをコピーしてPowershellに貼り付けることで自動でダウンロードからインストールまでしてくれる。

winget_run_VScode.png

アプリの一括インストール

ファイルを2つ作成した。ファイル名は何でも良いが便宜上設定した。

  • winget.ps1

インストール用のwingetコマンドをまとめて記載することで一括で実行できる。初期インストール後にまとめてファイルをインストールする時に使えそう。
例えば、テキストエディタで以下の内容で「winget.ps1」で保存するとGoogle日本語入力、Google Chrome、7zip、Visual Studio Codeをまとめてインストールできる。

winget install -e --id Google.JapaneseIME
winget install -e --id Google.Chrome
winget install -e --id 7zip.7zip
winget install -e --id Microsoft.VisualStudioCode
  • run.bat

run.batではps1ファイルを簡単に実行するために作成したので必須ではない。
テキストエディタに以下の内容を記載し、ファイル名「run.bat」で保存。「.\winget.ps1」の部分は作成したps1ファイルと同じにする。

powershell -NoProfile -ExecutionPolicy Bypass .\winget.ps1

このファイルを「.\winget.ps1」と同じフォルダ内にあることを確認、ダブルクリックするとps1ファイルを実行できる。
実行後、「winget list」でインストール済のアプリを確認することができる。

アプリの自動更新

「winget upgrade --all」にて更新可能なアプリを一括更新できる。
このコマンドをWindowsのタスクスケジューラで特定の条件下で自動で実行されるようにすることでアプリの自動更新をさせる。今回はPC起動時にこのコマンドを実行するようにする。

タスクスケジューラにて自動更新

タスクスケジューラを開きタスクを作成

Windowのメニューから「タスクスケジューラ」を開く。
以下のように設定をする。
全般では名前と説明を記載する。
また、管理者権限で実行したいときはWindows10でアプリやプログラムを管理者として実行する方法より、

手順としては、タスクスケジューラでプログラムを実行するタスクを作成するときに「最上位特権で実行する」にチェックを入れて作成します。
これにより、実行するプログラムを管理者として実行することができます。

引用元:

TaskScheduor_General.png

トリガーではタスクが起動される条件を設定

今回はPC起動時にインストールしているアプリケーションのアップデートを自動でかけられるようにしたかったためスタートアップ時に設定した。

TaskScheduor_Edit_Triger.png

操作ではトリガーの条件が来た時におこう操作を設定する。
「winget update --all」を設定し、アプリケーションの自動更新をするようにした。

TaskScheduor_Operation.png

直接記入してもだめだったため、

@if not "%~0"=="%~dp0.\%~nx0" start /min cmd /c,"%~dp0.\%~nx0" %* & goto :eof
winget upgrade --all

上記の内容のbatファイルを作成した。この、batファイルの保存場所とファイル名は任意のものを設定する。
今回は「C:\Users\user\winget_routine_update.bat」とした。
こちらのbatファイルを「プログラム/スクリプト」に記載して「OK」で終了。

TaskScheduor_batFile_Operation.png

batファイルを指定して起動時に実行し、自動でソフトウェアの更新がされるようにした。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?