App Control for Business を使用してパッケージ アプリを管理する

App Control for Business の一部の機能は、特定の Windows バージョンでのみ使用できます。 アプリ制御機能の可用性について詳しくは、こちらをご覧ください。

IT プロフェッショナル向けのこの記事では、アプリコントロール戦略全体の一部として、App Control for Business を使用してパッケージ化されたアプリを管理するのに役立つ概念と手順の一覧について説明します。

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

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

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

アプリ コントロールを使用したパッケージ 化されたアプリの管理

重要

パッケージ 化されたアプリを制御する場合は、署名者ルールまたはパッケージ ファミリ名 (PFN) 規則のどちらかを選択する必要があります。 App Control 基本ポリシーまたはその補足ポリシーのいずれかで パッケージ ファミリ名 (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 コマンドレットを使用して、新しいルールを既存のアプリコントロール ポリシー XML にマージします。

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

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

次に、 Merge-CIPolicy PowerShell コマンドレットを使用して、新しいルールを既存のアプリコントロール ポリシー 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 コマンドレットを使用して、新しいルールを既存のアプリ制御ポリシー XML にマージします。

アプリコントロール ウィザードを使用して PFN ルールを作成する

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

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

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

アプリ制御ウィザードから PFN ルールを作成する

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

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

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

アプリコントロール ウィザードからカスタム文字列を使用して PFN ルールを作成する