Header image

クラッソーネの開発者がエンジニアリングに関することもそうでないことも綴っています!

wingetで効率化!業務アプリの自動セットアップ

wingetで効率化!業務アプリの自動セットアップ

こんにちは、20年ぶりの完全新作となった「劇場版 機動戦士ガンダムSEED FREEDOM」を初日に見に行き、テンションが爆上がりしている、SREチームの宮原(@TakashiMiyahara)です。

はじめに

今回は、Windowsユーザーに特に役立つ情報を共有したいと思います。
Windows向けのパッケージマネージャーであるwingetを利用して、「業務に必要なアプリケーションを自動でインストールし受け入れ作業を効率化する」話を紹介したいと思います。

wingetとは

Microsoftが開発しているWindows向けのパッケージマネージャーです。
wingetはWindows11と最新バージョンのWindows10にバンドルされており、Windowsユーザーであれば、特別な準備は不要ですぐに利用できます。

https://learn.microsoft.com/ja-jp/windows/package-manager/winget/

サードパーティ製のパッケージマネージャーには、ChocolateyやScoopといったツールもあります。

クラッソーネでは、wingetを活用してWindows PCのセットアップを簡易に行っています。

wingetを使ってみよう

wingetコマンドのインストール

コマンドプロンプトなどを起動し、下記このコマンドを実行します。

winget -v

wingetコマンドが見つからない場合は、Microsoft Storeからアプリ インストーラーをダウンロードしインストールします。

アプリ インストーラー導入後に、再度winget -vコマンドを実行してバージョン番号を取得できるか試してください。

アプリケーションの検索

例えばSlackのアプリケーションを探してみましょう。
検索する際はsearch コマンドを利用します。

以下のようなコマンドを実行し、インストールしたいアプリケーションが存在するか検索できます。

winget search "slack"

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

アプリケーションをインストールする場合はinstall コマンドを利用します。

winget install "Slack"

複数のアプリケーションを一括でインストールする

wingetを利用して任意のアプリケーションをインストールできることがわかりました。
PCの交換時などでは、複数のアプリケーションを一括でインストールしたい需要があるかと思います。

wingetにはexport コマンドimport コマンドが用意されています。
こちらのコマンドを利用することで、一括インストールが実現できそうです。

export コマンド

wingetを利用して導入したアプリケーションの情報をJSONファイルに出力することが可能です。

winget export installed_software_list.json

以下はexport コマンドの結果をJSONファイルに出力した例です。

{
	"$schema" : "https://aka.ms/winget-packages.schema.2.0.json",
	"CreationDate" : "2023-01-27T11:58:35.669-00:00",
	"Sources" : 
	[
		{
			"Packages" : 
			[
				{
					"PackageIdentifier" : "Discord.Discord"
				},
				{
					"PackageIdentifier" : "Zoom.Zoom"
				},
				{
					"PackageIdentifier" : "Notion.Notion"
				},
				{
					"PackageIdentifier" : "SlackTechnologies.Slack"
				},
				{
					"PackageIdentifier" : "Google.Chrome"
				},
				{
					"PackageIdentifier" : "Google.Drive"
				},
				{
					"PackageIdentifier" : "Microsoft.VisualStudioCode"
				}
			],
			"SourceDetails" : 
			{
				"Argument" : "https://cdn.winget.microsoft.com/cache",
				"Identifier" : "Microsoft.Winget.Source_8wekyb3d8bbwe",
				"Name" : "winget",
				"Type" : "Microsoft.PreIndexed.Package"
			}
		}
	],
	"WinGetVersion" : "1.4.10173"
}

メインPC上で export コマンドを実行し出力されたファイルを、共有フォルダやGitHubなどで管理しておくことをおすすめします。

import コマンド

import コマンドを利用することで、export コマンドなどで作成したJSONファイルを参照し、PCにアプリケーションをバッチインストールすることができます。

winget import installed_software_list.json

以下は実行結果の例です。
すでにインストール済みのアプリケーションがある場合は、アップグレードの有無も確認してくれるようですね。

C:\Users\takashi miyahara>winget import installed_software_list.json
既存のパッケージが既にインストールされています。インストールされているパッケージ...をアップグレードしようとしています
適用可能なアップグレードは見つかりませんでした。
パッケージは既にインストールされています: Google.Chrome
既存のパッケージが既にインストールされています。インストールされているパッケージ...をアップグレードしようとしています
適用可能なアップグレードは見つかりませんでした。
パッケージは既にインストールされています: Google.Drive
(1/5) 見つかりました Discord [Discord.Discord] バージョン 1.0.9010
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://dl.discordapp.net/distro/app/stable/win/x86/1.0.9010/DiscordSetup.exe
  ██████████████████████████████  79.4 MB / 79.4 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

(2/5) 見つかりました Zoom [Zoom.Zoom] バージョン 5.13.11835
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://cdn.zoom.us/prod/5.13.4.11835/x64/ZoomInstallerFull.exe
  ██████████████████████████████  66.2 MB / 66.2 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

(3/5) 見つかりました Notion [Notion.Notion] バージョン 2.0.34
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://desktop-release.notion-static.com/Notion%20Setup%202.0.34.exe
  ██████████████████████████████  94.5 MB / 94.5 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

(4/5) 見つかりました Slack [SlackTechnologies.Slack] バージョン 4.28.184
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://downloads.slack-edge.com/releases/windows/4.28.184/prod/x64/SlackSetup.exe
  ██████████████████████████████   107 MB /  107 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

(5/5) 見つかりました Microsoft Visual Studio Code [Microsoft.VisualStudioCode] バージョン 1.74.3
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://az764295.vo.msecnd.net/stable/97dec172d3256f8ca4bfb2143f3f76b503ca0534/VSCodeUserSetup-x64-1.74.3.exe
  ██████████████████████████████  88.7 MB / 88.7 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

まとめ

当社では、毎月新しいクルーが参加します。これまでは、必要なアプリケーションを一つずつダウンロードし、手動でインストールする必要がありました。しかし、wingetの導入に伴い、Windows PC上でのアプリケーションインストール作業を自動化することが可能になりました。結果として、新入社員の受け入れ時の業務効率化が実現し、よりスムーズなオンボーディングが可能になりました。

おわりに

クラッソーネでは、プロダクトとチームの双方をより良く改善していけるエンジニアを募集中です!

https://www.crassone.co.jp/recruit/engineer/


RubyやTerraformが好きで、メンバーが楽になる仕組みを考えるのが好きなエンジニア