wingetで効率化!業務アプリの自動セットアップ
こんにちは、20年ぶりの完全新作となった「劇場版 機動戦士ガンダムSEED FREEDOM」を初日に見に行き、テンションが爆上がりしている、SREチームの宮原(@TakashiMiyahara)です。
はじめに
今回は、Windowsユーザーに特に役立つ情報を共有したいと思います。
Windows向けのパッケージマネージャーであるwinget
を利用して、「業務に必要なアプリケーションを自動でインストールし受け入れ作業を効率化する」話を紹介したいと思います。
wingetとは
Microsoftが開発しているWindows向けのパッケージマネージャーです。
wingetはWindows11と最新バージョンのWindows10にバンドルされており、Windowsユーザーであれば、特別な準備は不要ですぐに利用できます。
サードパーティ製のパッケージマネージャーには、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上でのアプリケーションインストール作業を自動化することが可能になりました。結果として、新入社員の受け入れ時の業務効率化が実現し、よりスムーズなオンボーディングが可能になりました。
おわりに
クラッソーネでは、プロダクトとチームの双方をより良く改善していけるエンジニアを募集中です!