- Winget は、コマンド ラインからアプリケーションをインストール、更新、アンインストールできる公式の Windows パッケージ マネージャーです。
- このツールは、Microsoft ストア、コミュニティ リポジトリ、プライベート ソースと統合され、さまざまなインストーラー形式をサポートしています。
- エンタープライズ環境で YAML 構成ファイル、PowerShell スクリプト、グループ ポリシーを使用してチーム全体を自動化できます。
- これには、インストール不要のダウンロード、マニフェスト検証、バージョン PIN、広範なセキュリティおよび登録オプションなどの高度な機能が含まれています。
Windowsを日常的に使用し、プログラムのインストール、更新、削除に多くの時間を費やしているなら、ターミナルからWingetの使い方を覚えることで、大幅な時間短縮につながります。このMicrosoft公式パッケージマネージャーは、サードパーティ製ツールをインストールすることなく、GNU/Linuxディストリビューションのaptやdnfと非常によく似た操作方法をWindowsにもたらします。
Wingetを使えば、コマンドを入力するだけでアプリケーションの検索、インストール、アップデート、アンインストール、設定を簡単に行えるだけでなく、スクリプトや設定ファイルを使ってPCのセットアップ全体を自動化することも可能です。ホームユーザー、開発者、システム管理者など、立場を問わず、Wingetの仕組み、利用可能なコマンド、そして最大限に活用する方法を詳しく見ていきましょう。
Winget とは何ですか? Windows パッケージ マネージャーはどのように機能しますか?
Wingetは、Windowsパッケージマネージャー用のコマンドラインツールです。これは、さまざまなソース(Microsoft Store、Wingetコミュニティリポジトリ、プライベートリポジトリなど)に接続してインストーラーを検索、ダウンロードし、制御された再現可能なインストールを実行するクライアントです。
実際には、winget はシステム上のソフトウェアを管理するために連携して動作する複数の要素で構成されているため、ユーザーに見えるコア部分は winget コマンドですが、舞台裏では各パッケージを記述するサービスやマニフェストが存在します。
Windowsパッケージマネージャーの完全なソリューションは、エコシステム全体を理解する上で重要な3つの主要な要素で構成されています。
- ウィンゲットクライアント: は、PowerShell、ターミナル、またはコマンドプロンプトで次のようなコマンドを実行するために使用するコンソール実行ファイルです。
winget installowinget upgrade. - パッケージングおよびリポジトリサービスMicrosoft は、GitHub でマニフェストのコミュニティ リポジトリを管理し、Microsoft Store と統合して Windows コンピューター上でアプリケーションをホストおよび配布します。
- Winget 構成ファイルこれらはPCの「望ましい状態」(アプリケーション、設定、スクリプト)を記述するYAMLファイルであり、 1つのコマンドでデバイス全体を構成します.
この理念は、ユーザーが必要なソフトウェアと構成を定義すれば、パッケージマネージャーがすべてのインストール、更新、メンテナンスを自動的に行い、人為的なミスやマシン間の差異を最小限に抑えるというものです。
Windows 10、Windows 11、Windows Server に Winget をインストールする
最近のほとんどのデバイスでは、Wingetは アプリインストーラー Windows 10およびWindows 11ではMicrosoft Storeから、Windows Server 2025ではアップデートを通じて配布されます。ターミナルを開いて次のように入力するだけです。 winget 利用可能かどうかを確認します。
コマンドを実行した際にオプション一覧とクライアントバージョンが表示される場合は、Windows パッケージ マネージャーが正しくインストールされていることを意味します。そうでない場合は、Microsoft Store にアクセスして「アプリ インストーラー」を検索し、パッケージを更新またはインストールしてください。
winget のプレビュー バージョンをインストールする (開発者向け)
Wingetの新機能を誰よりも早く試してみたい場合は、Microsoftが提供するプレビュービルドを利用できます。これらは主に、多少のバグがあっても気にしない開発者や上級ユーザー向けです。
クライアント プレビューを取得する一般的な方法は 2 つあります。
- GitHubのwingetリポジトリからプレビュー版パッケージを手動でダウンロードし、 安定したクライアントを一時的に置き換えるためにインストールします。それ以降のプレビューについては、ストアから自動更新は受信されません。新しいプレビューがリリースされるたびに、このプロセスを繰り返す必要があります。
- 参加する Windows Insider Program Microsoftアカウント、職場アカウント、学校アカウント、またはEntra ID(旧AAD)をCanaryまたはDevチャンネルで使用できます。これらのチャンネルでは、ビルドには自動的に Microsoft Store から Winget のアップデートを入手 最新の実験的な機能を搭載。
Windows Sandbox (分離空間) に Winget をインストールする
Windows Sandboxは、軽量で使い捨て可能なデスクトップ環境で、アプリケーションをメインシステムから隔離して実行できます。サンドボックスを閉じると、内部にインストールしたものはすべて失われるため、テストに最適です。
この環境にはMicrosoft StoreやWingetがプリインストールされていないため、 クライアントを手動でインストールするMicrosoftはPowerShellモジュールの使用を推奨しています Microsoft.WinGet.Client そしてコマンドレット Repair-WinGetPackageManager サンドボックス内で winget を「開始」します。
サンドボックス内の PowerShell コンソールから、次のようなスクリプト (適応およびフォーマット済み) を使用して、環境内のすべてのユーザーに安定バージョンを展開できます。
$progressPreference = 'silentlyContinue'
Install-PackageProvider -Name NuGet -Force | Out-Null
Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery | Out-Null
Repair-WinGetPackageManager -AllUsers
必要に応じて、モジュールは次のようにインストールすることもできます。 ユーザーまたはマシンスコープ パラメータを使用して -Scope AllUsers en Install-Moduleそして追加できる -IncludePrerelease a Repair-WinGetPackageManager プレビュー バージョンをテストします。
重要な許可と管理上の考慮事項
Winget を使用したインストール時の動作は、コマンドを管理者権限で実行するか、一般ユーザーとして実行するかによって異なります。これは、多数のコンピューターを管理している場合や、プロセスを自動化したい場合に非常に重要です。
管理者権限なしでWingetを起動すると、一部のアプリケーションのインストールに管理者権限が必要になります。このような場合、Windowsはユーザーアカウント制御(UAC)のプロンプトを表示し、確認を求めます。管理者権限を拒否すると、その特定のパッケージのインストールまたは更新は失敗します。
PowerShellまたはコマンドプロンプトを管理者として開き、「winget」を実行すると、管理者権限が必要なインストールでも、既に管理者権限が付与されているため、ユーザーアカウント制御(UAC)のプロンプトは表示されません。これは便利な機能ですが、特に企業環境では、非常に注意深く、信頼できるソフトウェアのみをインストールする必要があることを意味します。
混合シナリオ(ユーザーレベルで実行する必要のあるプログラムとマシンレベルで実行する必要のあるプログラム)では、winget の実行をユーザーと管理者の両方で組み合わせたり、グループ ポリシーを使用して特定の動作を強制し、警告を減らしたりすることが一般的です。
wingetの基本的な使い方: 必須の最初のコマンド
App Installerを最新にしたら、wingetの使用は次のように簡単です。 PowerShell、Windowsターミナル、またはCMDを開く そして、書きます wingetインストールされているバージョン、概要、使用可能なコマンドのリストが表示されます。
典型的なワークフローは、ほとんどの場合、検索から始まり、興味のあるアプリケーションのインストールが続きます。基本的な手順は次のようになります。
- アプリを検索する:
winget search <nombre_de_app> - 必要なパッケージの名前、識別子、および出所を確認します。
- インストール:
winget install <nombre_o_id>
インストール中、wingetはお使いのアーキテクチャとソースに合ったインストーラをダウンロードし、適切なパラメータで起動します(通常はサイレントモードまたは最小限の対話モードで)。そして、すべてが正常に完了したかどうかを最後に通知します。
システムにすでにインストールされているアプリケーションを確認したい場合は、 winget list そのため、 インストールされたパッケージとそのバージョンのリストこのコマンドは、元々このツールでインストールされていなかった場合でも、更新できるものや Winget によって認識されるものを確認するのに非常に役立ちます。
主要なウィンゲットコマンドの完全なリスト
クライアントは、アプリケーションのライフサイクルと構成全体を網羅するように設計された一連の特定のコマンドをサポートしています。現在、最も重要な一般的なコマンドは次のとおりです。
| コマンド | 説明 |
|---|---|
install |
インストールする 構成されたソースから示されたアプリケーション。 |
show |
サンプル 詳細情報 パッケージの詳細 (エディター、バージョン、オリジンなど)。 |
source |
許可する 追加、削除、または更新 パッケージ リポジトリ。 |
search |
作る 検索 構成されたソース内のアプリケーション。 |
list |
を表示します インストールされているパッケージのリスト ウィンゲットによって認識されました。 |
upgrade |
更新する 特定のアプリケーション、または新しいバージョンがあるすべてのアプリケーション。 |
uninstall |
アンインストール 特定のアプリケーション。 |
hash |
計算する SHA256ハッシュ インストーラーから。 |
validate |
を確認してください マニフェストの有効性 コミュニティ リポジトリに送信する前に。 |
settings |
ファイルを開いて編集できるようにする ウィンゲット構成. |
features |
これは、 実験関数. |
export |
輸出 インストールされたパッケージのリストをファイルに保存します。 |
import |
一括インストール エクスポートされたファイルにリストされているすべてのパッケージ。 |
pin |
許可する アンカーバージョン パッケージが特定の時点を超えて更新されないようにします。 |
configure |
ファイルの実行元 宣言的な構成 システムを望ましい状態のままにします。 |
download |
インストーラーをダウンロードする アプリケーションを実行せずに実行します。 |
repair |
試す 修理業者 問題のある施設。 |
dscv3 |
関連コマンド PowerShell DSC v3 および望ましい状態構成リソース。 |
グローバルオプションと最もよく使用されるパラメータ
Wingetコマンドのほぼすべては、詳細情報の表示、プロキシの制御、警告の抑制など、動作を変更するグローバルオプションを受け入れます。特に重要なオプションをいくつか挙げます。
| オプシオン | 機能 |
|---|---|
-v, --version |
を表示します wingetクライアントの現在のバージョン. |
--info |
詳細なインストール情報 (ライセンス、プライバシー、グループ ポリシーなど) を返します。 |
-?, --help |
プレゼント 具体的な支援 コマンドの。 |
--wait |
ウィンゲットを作る キーを待つ 終了する前に、一時的なウィンドウで実行するときに便利です。 |
--logs, --open-logs |
デフォルトのフォルダを開きます。 ウィンゲットログ. |
--verbose, --verbose-logs |
をアクティブ化する 詳細な記録 デバッグ用。 |
--nowarn, --ignore-warnings |
隠す 警告メッセージ. |
--disable-interactivity |
無効化してみてください すべてのインタラクティブリクエスト 自動化された使用のため。 |
--proxy |
設定する HTTP/HTTPSプロキシ その実行中に使用されます。 |
--no-proxy |
ウィンゲットを強制する プロキシを使用しない たとえシステムで設定されている場合でも。 |
主な実用的な機能: 検索、インストール、リスト、更新
日常的な使用においては、Wingetは主に、Linuxのパッケージマネージャーを使うのと同様に、インストーラーを手動で操作することなくアプリケーションを管理できる、ごく直接的なコマンドを使うために利用されます。
利用可能なソフトウェアを見つけるには、 winget search <texto>これは、 名前、識別子、バージョン、および起源 検索に一致するものが表示されます。このリストは、インストールしたいパッケージの正確なIDを特定するのにも役立ちます。
インストールされているプログラムを確認するには、以下を実行します。 winget listこのコマンドは、Wingetが認識するすべてのアプリケーションを、ツールとともにインストールされたかどうかに関係なく表示し、 更新が必要な古いバージョンを検出する.
標準的なインストールは winget install NOMBRE_APP あるいは、 パッケージIDたとえば、次のようになり winget install Microsoft.VisualStudioCodeインストールに対話操作(EULA への同意、オプションの選択など)が必要な場合は、通常、可能な限り簡易モードまたはサイレント モードで実行されます。
インストーラーは、ライセンス契約への同意や画面上の確認を求めるためにプロセスを一時停止することがあります。プロンプトが表示されずに最初から最後までスムーズに動作させるには、次のようなパラメータを使用できます。 --silent y --accept-package-agreements --accept-source-agreements、 そのため 契約の承諾を強制し、不要なウィンドウを削除します。.
システムを最新の状態に保つために、wingetはソフトウェアをアップデートするいくつかの方法を提供しています。コマンド winget upgrade これ以上の面倒なことはせずに、それは明らかになります 新しいバージョンが利用可能なすべてのアプリケーションつつ winget upgrade NOMBRE_APP 特定のパッケージのみを更新します。
一度に全部やりたい場合は、 winget upgrade --all 新しいバージョンがあるすべてのパッケージを更新しようとします。ここで権限が関係してきます。ユーザーとして実行する場合、 吊り上げが必要な設備ごとにUAC通知が発行されます。管理者として実行すると、ダイアログ ボックスが表示されずに管理されます。
最後に、アンインストールも非常に簡単です winget uninstall NOMBRE_APPそして、あなたは 同じコマンドラインに複数のアプリケーションを含める winget がシステム内で認識する限り、それらは次々に削除されます。
あまり知られていないが非常に便利なコマンド
基本コマンドに加えて、winget には、多くのクイック ガイドでは気づかれない、多くのパッケージを操作する場合や識別エラーを回避する必要がある場合に非常に便利な機能がいくつか含まれています。
コマンド winget show NOMBRE_APP 見るために使われます インストール前にパッケージの詳細をすべて確認する: 発行元、特定のバージョン、ID、ソース、インストーラーの種類、そして場合によっては公式リンク。識別子でフィルタリングすることもできます。 winget show --id ID_PAQUETE 確実なものを目指す。
ライセンス契約への同意を待つ間にインストールが停止してしまうのではないかと心配な場合は、パラメータを追加することができます。 --accept-package-agreements y --accept-source-agreements a winget install のために 法的条件は自動的に承認されます。 ダイアログボックスなし。
これらのオプションを組み合わせると --silent例えば winget install NOMBRE_APP --accept-package-agreements --accept-source-agreements --silent、あなたは得る 完全に無人施設デプロイメント スクリプトや、他の作業を行う間 PC を稼働させたままにしておきたい場合に非常に便利です。
winget download コマンド: インストールせずにインストーラーをダウンロードする
状況によっては、アプリケーションインストーラーをダウンロードしても、すぐに実行したくない場合があります。たとえば、オフラインのマシンに移動したり、ローカルリポジトリを準備したり、インストール前に手動で内容を確認したりする場合などです。
それがコマンドの目的です。 winget download基本的な用途は winget download [[-q] <query>] [<options>]一般的なクエリと、ID、名前、またはモニカによるフィルターの両方をサポートし、選択内容に対応するインストーラー (1 つまたは複数) をダウンロードします。
パッケージがMicrosoft Storeから入手したもので、パッケージ化されたアプリケーション(MSIX、APPX、バンドルなど)である場合、`winget`コマンドは関連するライセンスファイルもダウンロードできます。これらの場合、コマンドを実行するにはEntra IDによる認証が必要であり、ライセンスファイルをオフラインで生成および取得するには、アカウントがグローバル管理者、ユーザー管理者、ライセンス管理者などのロールに属している必要があります。
オフラインライセンスを扱いたくない場合は、パラメータを使用できます。 --skip-license o --skip-microsoft-store-package-licenseウィンゲット インストーラーをダウンロードするだけで、ライセンスファイルを取得しようとしないでください。.
このコマンドでは、プラットフォームまたはアーキテクチャによるフィルタリングも可能です。 --platform 次のような値を選択できます。 Windows.Desktop, Windows.Universal o Windows.Holographic パラ 特定の種類のデバイスへのダウンロードを制限する.
同様に、 --architecture 示すことができます x86、x64、ARM、またはARM64 対象のCPUに適したインストーラーのみを選択します。これは、ファイルを現在のCPUとは異なるアーキテクチャを持つ他のコンピュータに移動する場合に特に便利です。
最も頻繁に使用されるオプションの中には winget download 含まれます:
-d, --download-directory: ダウンロードしたインストーラーが保存されるフォルダー。-m, --manifest: ダウンロード対象を記述する YAML マニフェストへのパス。--id,--name,--moniker: 結果を特定のパッケージに制限するためのフィルター。-v, --version: 最新のバージョンが不要な場合は、ダウンロードする正確なバージョンを指定します。-s, --source: 操作を特定のオリジンに制限します。--scope,--installer-type,--locale,--skip-dependenciesダウンロードする内容を詳細に制御するための詳細オプション。
実際の例としては次のようなものがあります。
winget download --id Microsoft.PowerToys --version 0.15.2
winget download --id Microsoft.WingetCreate --installer-type msix
winget download --id Microsoft.PowerToys --scope machine --architecture x64 --download-directory C:\Instaladores
Wingetと互換性のあるインストーラー形式
数千ものアプリケーションと一貫して動作するために、wingetは最新のパッケージインストーラーや従来のインストーラーなど、一般的なWindowsインストーラーの種類を多数認識します。
現在サポートされている形式は次のとおりです:
- 実行可能ファイル エグゼ サイレントインストールパラメータ付き(サイレント o サイレントウィズプログレス).
- 記録 ZIP ポータブル モードで展開されます。
- インストーラー イノセットアップ.
- インストーラー ヌルソフト(NSIS).
- パッケージ MSI y WIX.
- パッケージ化されたアプリ APPX y MSIX.
- インストーラータイプ やけど.
- アプリケーション ラップトップ (従来のインストールなしで、直接実行可能ファイル)。
この範囲のおかげで、wingetは、対応するリポジトリでマニフェストが正しく定義されている限り、最新のストアアプリケーションと従来のデスクトッププログラムの両方を管理できます。
WinGet と PowerShell によるスクリプト作成と自動化
タスクを自動化したり、複数のチームを管理したい場合は、Wingetと PowerShellと宣言型スクリプトそのためにマイクロソフトはモジュールを公開している Microsoft.WinGet.Client PowerShell ギャラリーでは、サービスと対話するための特定のコマンドレットが公開されています。
このモジュールを使用すると、純粋なPowerShellを使用してパッケージのインストール、更新、または修復を行うスクリプトを作成したり、wingetをCI/CDパイプラインに統合したり、新しいマシンをプロビジョニングするためのスクリプトに組み込んだりすることができます。
さらに、コマンドに関連付けられたYAML構成ファイル winget configure 1つの文書で説明できます:
- 前提条件(アサーション)、Windows の最小バージョンとして。
- リソースこれには、インストールするパッケージ、実行するスクリプト、システム設定などが含まれます。
簡略化された構成例には、Windows 10 の最小ビルドを設定するアサーションセクションと、Visual Studio Code、Google Chrome、および他のモジュールを準備するための PowerShell スクリプトを含むリソースセクションが含まれる場合があります。その YAML ファイルを入手したら、次のコマンドを実行するだけです。
winget configure --file ruta\a\winget.yaml
このように、たった1つのコマンドで、コンピュータに毎回同じアプリケーションと設定を適用できるため、企業環境、教室、研究室、あるいはフォーマット後の個人用PCなど、あらゆる場面に最適です。
リポジトリを追加してカスタムソースを操作する
Wingetはデフォルトでは、Microsoft StoreとGitHubで管理されているコミュニティリポジトリを主要なソースとして使用します。ただし、カタログを拡張したり、組織の内部パッケージを使用したりするために、追加のリポジトリを追加することもできます。
多くの企業環境では、自社のアプリケーション用のマニフェストを含む独自のRESTソースを作成し、ユーザーがまるでパブリックパッケージであるかのようにwingetを使用してインストールできるようにしています。ただし、バージョン、ライセンス、および配布は企業側で管理されます。
新しいフォントを追加するには、管理者として PowerShell を開き、次のようなコマンドを実行します。
winget source add --name MiRepositorio --arg https://url.de.mi.repo/api
このコマンドは、次のような追加オプションをサポートしています。 --type (オリジンタイプ、通常はREST) --trust-level (たとえば 信頼されている o なし)そして、 --accept-source-agreements、それはのために働く そのリポジトリの契約を自動的に受け入れる 手動で確認する必要はありません。
ソースが正しく追加されたことを確認するには、 winget source list 登録済みのソースのリストを確認します。不要になったソースは更新または削除することもできます。
開発者、ISV、企業向けのWinget
wingetはあらゆるユーザーにとって有益ですが、特にインストールや作業環境の標準化を必要とする開発者、ソフトウェアメーカー、IT管理者にとって真価を発揮します。
開発者は、必要なツール(エディタ、SDK、コンパイラ、各種ユーティリティなど)をファイルに記述することで、Windowsパッケージマネージャーにすべての依存関係を正しくインストールさせ、漏れやマシン間のバージョン不整合を防ぐことができます。
ソフトウェアベンダー(ISV)は、GitHub上のWingetコミュニティリポジトリにアクセスし、アプリケーションマニフェストをアップロードすることで、ツールがそれらをデフォルトソースに含めることができます。パッケージは自動的に検証され、品質を確保するために手動レビューを受けることも可能です。
企業環境において、WingetはセキュリティチームとITチームの作業を簡素化します。Microsoft Intuneやグループポリシーと連携して使用することで、インストールするソフトウェアの種類、ソース、およびインストール条件に関する厳格なポリシーを適用し、リスクを軽減するとともに、アップデートとセキュリティ強化の一貫したレベルを維持できます。
セキュリティ、証明書のアンカー、グループ ポリシー
Winget、Microsoft Store、およびその他のRESTソース間の接続は、中間者攻撃(MITM攻撃)や認証情報またはデータの盗難を防ぐため、証明書チェックとセキュリティメカニズムによって保護されています。
Microsoft Storeの具体的なケースでは、次のようなポリシーがあります。 BypassCertificatePinningForMicrosoftStore その Wingetがストア証明書ハッシュを検証するかどうかを確認します 既知の証明書のリストと照合します。組織がSSLインスペクション機能を備えたファイアウォールを使用しており、検証に支障をきたす可能性がある場合、これは重要です。
このポリシーのオプションは次のとおりです。
- 設定なし(デフォルト): winget は標準のパッケージ マネージャー設定を尊重し、ストアの証明書をチェックします。
- 有効にするMicrosoft Store証明書の検証は省略されていますが、これは一部のSSL検査シナリオでは必要になる場合があります。 MITM 攻撃のリスクが増大します。.
- 無効にする: Winget は、接続を開始する前に、証明書が実際にストアに属しているかどうかを検証する必要があります。
証明書ピンニングは、WingetクライアントとMicrosoft Store間の通信が容易に傍受または改ざんされないようにするための追加のセキュリティ層です。正当な理由なくこれを無効にすることは、セキュリティの観点から見て好ましくありません。
このポリシーに加え、Windows 11の各バージョンには、グループポリシー管理コンソール(GPMC)の構成オプションを拡張するWinget専用のADMX/ADMLテンプレートが含まれています。これらは、許可されるソース管理、ローカル開発(実験的機能、ローカルマニフェスト)、プロキシの実行と使用に関するポリシーなどのカテゴリに分類されています。
これらのテンプレートを使用するには、GitHub からファイルをダウンロードできます。 DesktopAppInstallerPolicies.zip 興味のあるWingetのバージョンに応じて、それを抽出してファイルをコピーします。 .admx y .adml 標準ルートに C:\Windows\PolicyDefinitions およびその言語サブフォルダに移動します。そこからGPMCに新しいオプションが表示され、 OU、サイト、またはドメイン全体に適用する.
デバッグ、ログ記録、新しいパッケージの送信
何らかの問題が発生した場合(ダウンロードの失敗、インストールの未完了、バージョン競合など)、winget は問題の原因特定に非常に役立つ詳細なログを生成します。
ログフォルダを開くには、以下のオプションを使用します。 --open-logs または活性化する --verbose-logs ツールが各操作に関するより多くの情報を保存するようにする。公式リポジトリ winget-cli また、 よくある問題と推奨される解決策のリスト新しい問題を開く前に、ここを確認することをお勧めします。
カタログに掲載されていないプログラムがある場合は、マニフェストを作成してコミュニティリポジトリに送信してください。そうすることで、あなただけでなく、他のユーザーや組織もWingetから簡単にインストールできるようになります。
ツール自体はオープンソースであり、リポジトリに保存されている。 microsoft/winget-cliこれはC++で書かれており、Visual Studio 2022でコンパイルされるように設計されています。貢献したい場合は、 貢献者ライセンス契約(CLA)に同意して署名する Microsoft からフォークのブランチから変更をプッシュします。
最終的に、Wingetを理解し使いこなすことで、Windows PCを「サーバー」や本格的な開発システムのように扱うことができるようになります。つまり、すべてをスクリプト化でき、すべてを再現可能にし、インストールする内容と方法を細かく制御できるため、不要なクリックや、バージョンが一致しないプログラム、あるいはどうやってコンピューターにインストールされたのか誰も分からないプログラムといった予期せぬ事態を回避できます。