Windows環境におけるアプリケーションパッケージ(Appx/MSIX)の管理には、PowerShellのAppxモジュールが利用されます。本稿では、日常的な管理業務で頻繁に使用するパッケージの検索、削除、およびリセット機能に焦点を当てて解説します。
1. 主要なAppx管理コマンド
以下のコマンドレットは、システムにインストールされたアプリケーションのライフサイクルを管理するために設計されています。
- Get-AppxPackage: インストール済みのパッケージ情報を取得します。
- Remove-AppxPackage: 指定したパッケージをアンインストールします。
- Reset-AppxPackage: アプリケーションの状態を初期設定に復元します。
これらのコマンドは、-Verboseや-ErrorActionといった共通パラメータをサポートしています。
2. Get-AppxPackage: パッケージの探索
システムの構成を把握するためには、このコマンドで絞り込みを行います。特定のユーザーや、全ユーザーを対象とした検索が可能です。
# 全ユーザーのインストール済みアプリ一覧を取得 Get-AppxPackage -AllUsers # 特定の名称を持つアプリを検索 Get-AppxPackage -Name "*Contoso*"
3. Remove-AppxPackage: パッケージの削除
不要なアプリケーションを削除する際は、対象のPackageFullNameを指定します。削除時には、アプリケーションデータの保持・破棄を選択できます。
# 特定のパッケージを削除 Remove-AppxPackage -Package "Microsoft.ExampleApp_1.0.0.0_x64__8wekyb3d8bbwe"
※ 全ユーザー対象で削除を行う場合は、管理者権限が必要です。
4. Reset-AppxPackage: 状態のリセット
アプリが正しく動作しない場合、このコマンドでクリーンな状態に戻すことができます。
Reset-AppxPackage -Package "Microsoft.ExampleApp_1.0.0.0_x64__8wekyb3d8bbwe"
5. パッケージ情報と絞り込みのコツ
Get-AppxPackageの出力には多くのフィールドが含まれますが、直接パラメータとして使用できるのは主にNameやPublisherです。それ以外の情報を条件にする場合は、パイプラインを通じてFindstrなどを活用します。
検索例
依存関係(Dependencies)が設定されているパッケージを確認する場合:
Get-AppxPackage | findstr Dependencies
また、Findstrコマンドを活用すると、より高度なテキスト検索が可能です。例えば、特定の文字列を含まない行のみを抽出する場合には/Vオプションが有効です。
# 特定の文字列を除外して検索 Get-AppxPackage | findstr /V "Microsoft"
補足: 重要なフィールドの理解
- PackageFullName: バージョンやアーキテクチャを含む一意の識別子。削除コマンドで必須となります。
- NonRemovable: システム必須アプリ(例:
Microsoft.SecHealthUI)はTrueとなっており、通常の削除コマンドでは対象外となります。 - SignatureKind: 「System」「Store」「Developer」の3種類があり、アプリの出所を示します。