次の方法で共有


Windows Defender アプリケーション コントロールを使用してパッケージ 化されたアプリを管理する

Windows Defender Application Control (WDAC) の一部の機能は、特定の Windows バージョンでのみ使用できます。 WDAC 機能の可用性について詳しくは、こちらをご覧ください。

IT プロフェッショナル向けのこの記事では、全体的なアプリケーション制御戦略の一環として、Windows Defender Application Control (WDAC) を使用してパッケージ化されたアプリを管理するのに役立つ概念と手順の一覧について説明します。

従来の Windows アプリとパッケージ 化されたアプリの比較

アプリケーション制御を採用する際の最大の課題は、従来の Windows アプリ (win32 アプリとも呼ばれます) の強力なアプリ ID の欠如です。 一般的な win32 アプリは、アプリのインストールに使用されるインストーラー、1 つ以上の exes、dll、またはスクリプトなど、複数のコンポーネントで構成されます。 アプリは、ユーザーがアプリとして理解する機能を提供するために連携する数百または数千の個々のバイナリで構成できます。 そのコードの一部はソフトウェア発行元によって署名され、一部は他の企業によって署名される場合があり、一部は署名されていない可能性があります。 コードの多くは、一般的な一連のインストーラーによってディスクに書き込まれる場合がありますが、既にインストールされていて、必要に応じてダウンロードされているものもあります。 一部のバイナリには、製品名や製品バージョンなどの共通のリソース ヘッダー メタデータがありますが、その情報を共有しないファイルもあります。 そのため、"アプリの Foo を許可する" などのルールを表現できるようにしたい一方で、これは Windows が従来の Windows アプリに対して本質的に理解しているものではありません。 代わりに、アプリを構成するすべてのファイルを許可するために、多くの WDAC ルールを作成する必要がある場合があります。

一方、パッケージ化されたアプリ ( MSIX とも呼ばれます) は、アプリを構成するすべてのファイルが同じ ID を共有し、共通の署名を持っていることを確認します。 そのため、パッケージ化されたアプリでは、1 つの WDAC 規則でアプリ全体を制御できます。

WDAC を使用したパッケージ アプリの管理

重要

パッケージ 化されたアプリを制御する場合は、署名者ルールまたはパッケージ ファミリ名 (PFN) 規則のどちらかを選択する必要があります。 WDAC 基本ポリシーまたはその補足ポリシーのいずれかで パッケージ ファミリ名 (PFN) 規則が使用されている場合は、 すべての パッケージ アプリを PFN 規則を使用して排他的に制御する必要があります。 PFN 規則を、特定の基本ポリシーのスコープ内の署名ベースの規則と組み合わせることはできません。 これは、[スタート] メニューのような多くの受信トレイ システム アプリに影響します。 Windows 11 の PFN ルールではワイルドカードを使用して、ルールの作成を簡略化できます。

パッケージ 化されたアプリの署名ベースのルールの作成

MSIX アプリを構成するすべてのファイルは、共通のカタログ署名で署名されます。 署名者ルールは、MSIX アプリのインストーラー ファイル (.msix または .msixbundle) から、またはアプリのインストール フォルダーにある %ProgramFiles%\WindowsApps\ にある AppxSignature.p7x ファイルから 、New-CIPolicyRule PowerShell コマンドレットを使用して作成できます。 次に、例を示します。

MSIX/MSIXBUNDLE から署名者ルールを作成する

$FilePath = $env:USERPROFILE+'\Downloads\WDACWizard_2.1.0.1_x64_8wekyb3d8bbwe.MSIX'
$Rules = New-CIPolicyRule -DriverFilePath $FilePath -Level Publisher

次に、 Merge-CIPolicy PowerShell コマンドレットを使用して、新しいルールを既存の WDAC ポリシー XML にマージします。

AppxSignature.p7x から署名者ルールを作成する

$FilePath = $env:ProgramFiles+'\WindowsApps\Microsoft.WDAC.WDACWizard_2.1.0.1_x64__8wekyb3d8bbwe\AppxSignature.p7x'
$Rules = New-CIPolicyRule -DriverFilePath $FilePath -Level Publisher

次に、 Merge-CIPolicy PowerShell コマンドレットを使用して、新しいルールを既存の WDAC ポリシー XML にマージします。

パッケージ アプリの PackageFamilyName ルールの作成

PowerShell から PFN ルールを作成する

現在インストールされているパッケージ アプリから PFN ルールを直接作成するには、 Get-AppXPackage コマンドレットと New-CIPolicyRule PowerShell コマンドレットを使用します。 次に、例を示します。

# Query for the packaged apps. This example looks for all packages from Microsoft.
$Packages = Get-AppXPackage -Name Microsoft.*
foreach ($Package in $Packages)
{
   $Rules += New-CIPolicyRule -Package $Package
}

次に、 Merge-CIPolicy PowerShell コマンドレットを使用して、新しいルールを既存の WDAC ポリシー XML にマージします。

WDAC ウィザードを使用して PFN ルールを作成する

インストールされている MSIX アプリから PFN ルールを作成する

次の手順に従って、システムにインストールされているアプリの WDAC PFN 規則を作成します。

  1. WDAC ウィザード[ポリシー署名規則] ページで、[カスタム規則の追加] を選択します。
  2. チェックされていない場合は、 Usermode ルール をルール スコープとしてチェックします。
  3. ルール アクションの [許可] または [拒否 ] を選択します。
  4. [ルールの種類] で [ パッケージ アプリ ] を選択します。
  5. [ パッケージ名] フィールドに、検索する文字列値を入力します。 検索文字列では、または * ワイルドカードを使用?できます。 次に、[検索] を選択 します
  6. 結果ボックスで、ルールを作成する 1 つ以上のアプリをオンにします。
  7. [ 規則の作成] を選択します
  8. 必要なその他のルールを作成し、ウィザードを完了します。

WDAC ウィザードから PFN ルールを作成する

カスタム文字列を使用して PFN 規則を作成する

カスタム文字列値を使用して PFN 規則を作成するには、次の手順に従います。

  1. 前の例の手順 1 ~ 4 を繰り返します。
  2. [ カスタム パッケージ ファミリを使用する] というラベルの付いたボックスをオンにします。 [ 検索 ] ボタンのラベルが [作成] に変わります。
  3. [ パッケージ名] フィールドに、PFN 規則の文字列値を入力します。 Windows 11 デバイスを対象とする場合は、または * ワイルドカードを使用?できます。 次に、[作成] を選択します
  4. 結果ボックスで、ルールを作成する 1 つ以上のアプリをオンにします。
  5. [ 規則の作成] を選択します
  6. 必要なその他のルールを作成し、ウィザードを完了します。

WDAC ウィザードからカスタム文字列を使用して PFN 規則を作成する