ApplicationControl CSP

Windows Defenderアプリケーション制御 (WDAC) ポリシーは、MDM サーバーから管理することも、ApplicationControl 構成サービス プロバイダー (CSP) を介して WMI ブリッジ経由で PowerShell を使用してローカルに管理することもできます。 ApplicationControl CSP は、バージョン 1903 Windows 10に追加されました。 この CSP は、拡張された診断機能と複数のポリシーのサポートを提供します (Windows 10 バージョン 1903 で導入)。 また、再起動なしでポリシーの展開 (Windows 10 バージョン 1709 で導入) のサポートも提供します。 AppLocker CSP とは異なり、ApplicationControl CSP は再起動なしオプションの存在を正しく検出し、その結果、再起動をスケジュールしません。

AppLocker CSP の CodeIntegrity ノードを使用してデプロイされた既存の Windows Defender アプリケーション制御 (WDAC) ポリシーを、ApplicationControl CSP URI を使用してデプロイできるようになりました。 AppLocker CSP を使用した WDAC ポリシーの展開は引き続きサポートされますが、すべての新機能は ApplicationControl CSP でのみ実行されます。

次の一覧は、ApplicationControl 構成サービス プロバイダー ノードを示しています。

Policies

適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Policies

すべてのポリシーを含むサブツリーの先頭。

各ポリシーは、グローバル一意識別子 (GUID) によって識別されます。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 node
アクセスの種類 [ゲームをゲット] を選びます

Policies/{Policy GUID}

適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}

ポリシーの GUID。

各ポリシー GUID ノードには、ポリシー ノードと対応する PolicyInfo ノードが含まれています。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 node
アクセスの種類 [ゲームをゲット] を選びます
動的ノードの名前付け UniqueName: ApplicationControl CSP は、特定のポリシー URI の "ID" セグメントがポリシー BLOB のポリシー ID と同じ GUID であることを強制します。

Policies/{Policy GUID}/Policy

適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/Policy

base64 としてエンコードされたポリシー バイナリ。 サポートされる値はバイナリ ファイルであり、ConvertFrom-CIPolicy コマンドレットによってポリシー XML ファイルから変換されます。

既定値は空です。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 b64
アクセスの種類 追加、削除、取得、置換

Policies/{Policy GUID}/PolicyInfo

適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo

GUID によって示されるポリシーを記述する情報。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 node
アクセスの種類 [ゲームをゲット] を選びます
Policies/{Policy GUID}/PolicyInfo/BasePolicyId
適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/BasePolicyId

ポリシー GUID によって示されるポリシーの BasePolicyId。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 chr (string)
アクセスの種類 [ゲームをゲット] を選びます
Policies/{Policy GUID}/PolicyInfo/FriendlyName
適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/FriendlyName

ポリシー GUID によって示されるポリシーの FriendlyName。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 chr (string)
アクセスの種類 [ゲームをゲット] を選びます
Policies/{Policy GUID}/PolicyInfo/IsAuthorized
適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsAuthorized

GUID によって示されるポリシーが、システム上の強制エンジンによって読み込まれる権限があるかどうか。

サポートされる値は次のとおりです。

  • True: ポリシーがシステム上の強制エンジンによって読み込まれる権限があることを示します。
  • False: ポリシーがシステム上の強制エンジンによって読み込まれる権限を持たないことを示します。 この値が既定値です。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 bool
アクセスの種類 [ゲームをゲット] を選びます
Policies/{Policy GUID}/PolicyInfo/IsBasePolicy
適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsBasePolicy

ポリシーが基本ポリシーと補足ポリシーの場合は TRUE/FALSE。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 bool
アクセスの種類 [ゲームをゲット] を選びます
Policies/{Policy GUID}/PolicyInfo/IsDeployed
適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsDeployed

GUID によって示されるポリシーがシステム (物理マシン上) に展開されるかどうか

サポートされる値は次のとおりです。

  • True: ポリシーがシステムに展開され、物理マシンに存在することを示します。
  • False: ポリシーがシステムに展開されておらず、物理マシンに存在しないことを示します。 この値が既定値です。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 bool
アクセスの種類 [ゲームをゲット] を選びます
Policies/{Policy GUID}/PolicyInfo/IsEffective
適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsEffective

GUID によって示されるポリシーがシステムで有効であるかどうか (適用エンジンによって読み込まれ、有効)

サポートされる値は次のとおりです。

  • True: ポリシーが適用エンジンによって読み込まれ、システムに対して有効であることを示します。
  • False: ポリシーが適用エンジンによって読み込まれず、システムに対して有効ではないことを示します。 この値が既定値です。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 bool
アクセスの種類 [ゲームをゲット] を選びます
Policies/{Policy GUID}/PolicyInfo/IsSystemPolicy
適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsSystemPolicy

ポリシーがシステム ポリシーの場合は TRUE/FALSE。これは、OS の一部として Microsoft によって管理されるポリシーです。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 bool
アクセスの種類 [ゲームをゲット] を選びます
Policies/{Policy GUID}/PolicyInfo/PolicyOptions
適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/PolicyOptions

ポリシー GUID によって示されるポリシーの PolicyOptions。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 chr (string)
アクセスの種類 [ゲームをゲット] を選びます
Policies/{Policy GUID}/PolicyInfo/Status
適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/Status

ポリシー GUID によって示されるポリシーの現在の状態。

既定値は 0 で、ポリシーの状態が OKであることを示します。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 int
アクセスの種類 [ゲームをゲット] を選びます
Policies/{Policy GUID}/PolicyInfo/Version
適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/Version

GUID によって示されるポリシーのバージョンを文字列として示します。 解析する場合は、含まれているデータ型として uint64 を使用します。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 chr (string)
アクセスの種類 [ゲームをゲット] を選びます

トークン

適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Tokens

すべてのトークンを含むサブツリーの先頭。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 node
アクセスの種類 [ゲームをゲット] を選びます

Tokens/{ID}

適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Tokens/{ID}

トークンを区別するために使用される任意の ID。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 node
アクセスの種類 [ゲームをゲット] を選びます
動的ノードの名前付け UniqueName: ApplicationControl CSP は、特定のトークン URI の "ID" セグメントが一意であることを強制します。

Tokens/{ID}/Token

適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/Token

base64 としてエンコードされたトークン バイナリ。 サポートされる値はバイナリ ファイルであり、OneCoreDeviceUnlockService から取得されます。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 b64
アクセスの種類 追加、削除、取得、置換

Tokens/{ID}/TokenInfo

適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo

対応する ID によって示されるトークンを記述する情報。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 node
アクセスの種類 [ゲームをゲット] を選びます
Tokens/{ID}/TokenInfo/Status
適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo/Status

トークン ID によって示されるトークンの現在の状態。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 int
アクセスの種類 [ゲームをゲット] を選びます
Tokens/{ID}/TokenInfo/Type
適用範囲 エディション 対象となる OS
✅ デバイス
❌ ユーザー
✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10、バージョン 1903 [10.0.18362] 以降
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo/Type

トークン ID によって示されるトークンの種類。

説明フレームワークのプロパティ:

プロパティ名 プロパティ値
形式 int
アクセスの種類 [ゲームをゲット] を選びます

IsAuthorized、IsDeployed、IsEffective の各値

次の表は、IsAuthorized、IsDeployed、IsEffective ノードのさまざまな値に基づいて、このポリシーの結果を示しています。

IsAuthorized IsDeployed IsEffective 結果
True True True ポリシーは現在実行中であり、有効です。
True True False ポリシーを有効にするには、再起動が必要です。
True False True ポリシーでは、CI からアンロードするために再起動が必要です。
False True True 到達不能。
True False False *到達できません。
False True False *到達できません。
False False True 到達不能。
False False False *到達できません。

* は有効な中間状態を表します。ただし、MDM トランザクションによってこの状態構成が行われると、 END_COMMAND_PROCESSING は失敗します。

Microsoft Intune使用ガイダンス

Configuration Manager Intuneスタンドアロンまたはハイブリッド管理を使用して ApplicationControl CSP 経由でカスタム ポリシーをデプロイする場合は、「Microsoft Intuneを使用してアプリケーション制御ポリシー Windows Defender展開する」を参照してください。

MDM サーバーの一般的な使用ガイダンス

Intuneを使用せずに ApplicationControl CSP を使用するには、次の手順を実行する必要があります。

  1. 生成されたポリシーの GUID を把握します。これは、1903 より前のシステムの場合と<PolicyTypeID>同じポリシー <PolicyID> xml で確認できます。
  2. 展開するには、 コマンドレットを使用してポリシーを ConvertFrom-CIPolicy バイナリ形式に変換します。 バイナリ ポリシーは、署名または署名されていない可能性があります。
  3. コマンド ライン ツールを使用して、ポリシー ノード (バイナリ ポリシー表現の Base64 でエンコードされた BLOB) を certutil -encode 作成します。

certutil 呼び出しのサンプルを次に示します。

certutil  -encode WinSiPolicy.p7b WinSiPolicy.cer

certutil を使用する代わりに、次の PowerShell 呼び出しを使用します。

[Convert]::toBase64String($(Get-Content -Encoding Byte -ReadCount 0 -Path <bin file>))

ポリシーの展開

CSP を使用して新しい基本ポリシーをデプロイするには、Base64 でエンコードされたポリシー ノードを {Data} として使用して、 ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy に対して ADD を実行します。 以下の例 1 の「書式」セクションを参照してください。

基本ポリシーと補足ポリシーを展開するには:

  1. Base64 でエンコードされたポリシー ノードを {Data} として使用し、基本ポリシーの GUID とポリシー データを使用して、 ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/ Policy に対して ADD を実行します。
  2. (独自の GUID とデータを使用して) 基本ポリシーまたは補足ポリシーごとに繰り返します。

次の例は、2 つの基本ポリシーと補足ポリシーのデプロイを示しています (これは、追加する基本ポリシーを既に指定しており、ADD に反映されている必要はありません)。

例 1: 基本ポリシーを追加する

<Add>
    <CmdID>1</CmdID>
    <Item>
        <Target>
            <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{Base1GUID}/Policy</LocURI>
        </Target>
        <Meta>
             <Format xmlns="syncml:metinf">b64</Format>
        </Meta>
        <Data> {Base1Data} </Data>
    </Item>
</Add>

例 2: 2 番目の基本ポリシーを追加する

<Add>
    <CmdID>1</CmdID>
    <Item>
        <Target>
            <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{Base2GUID}/Policy</LocURI>
        </Target>
        <Meta>
            <Format xmlns="syncml:metinf">b64</Format>
        </Meta>
        <Data> {Base2Data} </Data>
    </Item>
</Add>

例 3: 補足ポリシーを追加する

<Add>
    <CmdID>1</CmdID>
    <Item>
        <Target>
            <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{Supplemental1GUID}/Policy</LocURI>
        </Target>
        <Meta>
            <Format xmlns="syncml:metinf">b64</Format>
        </Meta>
        <Data> {Supplemental1Data} </Data>
    </Item>
</Add>

ポリシーを取得する

デプロイされたポリシーの GUID を使用して GET を実行し、ポリシー自体またはポリシーに関する情報を調べます。

次の表に、さまざまなノードでの Get 操作の結果を示します。

ノード 結果を取得する
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy raw p7b
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/Version ポリシーのバージョン
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsEffective ポリシーが有効か
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsDeployed システム上のポリシー
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsAuthorized ポリシーがシステムで承認されているか
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/Status デプロイが成功しましたか
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/FriendlyName ポリシーごとのフレンドリ名

Get コマンドの例を次に示します。

 <Get>
    <CmdID>1</CmdID>
        <Item>
            <Target>
                <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{PolicyGUID}/Policy</LocURI>
            </Target>
        </Item>
 </Get>

ポリシーを削除する

再起動なしの削除

削除時に、ApplicationControl CSP 経由でデプロイされたポリシーはシステムから削除されますが、次回の再起動まで有効なままです。 再起動なしの削除を機能させるには、まず既存のポリシーを [すべて許可] ポリシー (C:\Windows\schemas\CodeIntegrity\ExamplePolicies\AllowAll.xml にあります) に置き換え、更新されたポリシーを削除します。 このシーケンスにより、何もブロックされず、次回の再起動時にポリシーが完全に無効になります。

署名されていないポリシー

署名されていないポリシーを削除するには、 ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy で DELETE を実行します。

署名済みポリシー

既定では、署名済みポリシーは別の署名済みポリシーにのみ置き換えることができます。 そのため、署名されたポリシーを削除するには、 ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy で DELETE を実行するだけでは不十分です。

署名済みポリシーを削除するには:

  1. 署名されていないポリシーを許可する署名付き更新プログラムに置き換えます。
  2. 署名されていない [すべて許可] ポリシーを使用して別の更新プログラムを展開します。
  3. 削除を実行します。

Delete コマンドの例を次に示します。

   <Delete>
     <CmdID>1</CmdID>
        <Item>
            <Target>
                  <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{PolicyGUID}/Policy</LocURI>
            </Target>
        </Item>
   </Delete>

PowerShell と WMI ブリッジの使用に関するガイダンス

ApplicationControl CSP は、PowerShell からローカルで管理することも、WMI ブリッジ プロバイダーを使用してConfiguration Managerのタスク シーケンス スクリプトを使用して管理することもできます。

WMI ブリッジを使用するためのセットアップ

  1. WDAC ポリシーを Base64 に変換します。

  2. ローカル システム コンテキスト (PSExec など) で PowerShell を開きます。

  3. WMI インターフェイスを使用する:

    $namespace = "root\cimv2\mdm\dmmap"
    $policyClassName = "MDM_ApplicationControl_Policies01_01"
    $policyBase64 = "<base64policy>"
    

WMI Bridge を使用したポリシーの展開

次のコマンドを実行します。 PolicyID は、ポリシー xml で見つけられる GUID であり、ここで中かっこなしで使用する必要があります。

New-CimInstance -Namespace $namespace -ClassName $policyClassName -Property @{ParentID="./Vendor/MSFT/ApplicationControl/Policies";InstanceID="<PolicyID>";Policy=$policyBase64}

WMI Bridge を使用してすべてのポリシーのクエリを実行する

Get-CimInstance -Namespace $namespace -ClassName $policyClassName

構成サービス プロバイダーのリファレンス