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上でのアプリケーションインストール作業を自動化することが可能になりました。結果として、新入社員の受け入れ時の業務効率化が実現し、よりスムーズなオンボーディングが可能になりました。
おわりに
クラッソーネでは、プロダクトとチームの双方をより良く改善していけるエンジニアを募集中です!