※本記事はマイクロソフト社員によって公開されています。
概要
本ブログ記事では、App Control for Business (日本語名: ビジネス向けアプリ コントロール) の基本的な構成方法について、よくお問い合わせいただくご質問内容も踏まえてご紹介します。
なお、App Control for Business についての詳細な情報は弊社公開情報に記載があるため、本ブログ記事では公開情報のご紹介も交えながら App Control for Business の構成方法を説明します。
※本ブログ記事では以下の条件を前提に説明をしますのであらかじめご了承ください。
- お問い合わせの比較的多い、ユーザーモードの実行可能ファイルの制御について言及します。
- App Control for Business は Windows Server でも利用可能ですが、本ブログ記事では Windows 11 のようなクライアント OS について言及します。
- 本ブログ記事で紹介するスクリプトについてはあくまでサンプル コードであり、実運用を踏まえた実装や動作検証等を別途ご実施ください。
App Control for Business とは
App Control for Business は、Windows 上でドライバーやアプリケーションなどの実行可能ファイル (例:.exe / .dll / .sys) の実行を制御する機能です。
制御可能なファイルの種類は以下の公開情報をご参照ください。
App Control for Business および AppLocker 機能の可用性
以前は Windows Defender Application Control (WDAC) や Microsoft Defender Application Control と呼ばれていましたが、2026 年現在は App Control for Business に名称が統一されています。
設定は OS 全体に適用され、デバイス上のすべてのアプリケーションを制御できます。
App Control for Business についての機能概要につきましては、以下の公開情報が参考になりますので是非ご参考にしていただければと思います。
App Control for Business と AppLocker の概要 - ビジネス向けアプリ コントロール
Windows では同様にアプリケーションの実行を制御する機能として AppLocker があります。
AppLocker についても上記の公開情報の AppLocker の項目へ記載がありますので、併せてご確認いただければと思います。
加えて、App Control for Business と AppLocker について比較した表も以下の公開情報へ記載されています。
App Control for Business および AppLocker 機能の可用性
App Control for Business と AppLocker の概要 - App Control または AppLocker を使用するタイミングを選択する にも記載がありますが、現在、AppLocker ではセキュリティ修正のみが行われており、新機能の追加については App Control for Business において継続的に行われているため、基本的には App Control for Business を利用して実行可能ファイルの実行制御を行うことをお勧めします。
ただし、AppLocker はユーザーやグループ単位での実行可能ファイルの実行制御ができますので、システム全体で実行可能ファイルの制御を希望しない場合は AppLocker を用いるなど、場合に応じて使い分けると良いです。
また、App Control for Business と AppLocker は共存して動作することができます。
App Control for Business と AppLocker が共存する場合、両方で許可されたときのみ実行可能ファイルは実行できます。
対して、App Control for Business と AppLocker のいずれかで実行可能ファイルの実行がブロックされる場合は、実行可能ファイルの実行はできません。
この動作を応用することで、App Control for Business で大まかなルールを作成し、AppLocker を用いて実行可能ファイルの実行制御を微調整していく、ということも可能です。
App Control for Business の設定について
App Control for Business の設定は XML 形式のポリシー ファイルを作成したうえで、XML ファイルをバイナリ変換して端末へ適用する、という流れが一般的な手順です。
App Control for Business のポリシー作成において、よくある作成方法として以下の方法があります。
- Windows に既定で存在するサンプル ポリシーを拡張してポリシーを作成する
- ゴールデン コンピューターを用意してポリシーを作成する
どちらの方法が良いか、ということは状況によって異なりますが「1. Windows に既定で存在するサンプル ポリシーを拡張してポリシーを作成する」でポリシーの構成を行うケースが多いものと考えています。
そのため、本ブログ記事では「1. Windows に既定で存在するサンプル ポリシーを拡張してポリシーを作成する」について集中的に説明します。
なお、「2. ゴールデン コンピューターを用意してポリシーを作成する」についての設定方法について簡単に説明をすると、マスターとなるゴールデン コンピューターを構築したうえで、C: 配下に含まれる実行可能ファイルを走査してポリシーを作成する方法です。
ただし、この方法は C: 配下のファイルをすべて走査するため、ポリシー ファイルの生成に時間を要することに加えて、C: 配下の実行可能ファイルの許可ルールがすべてポリシー ファイルへ記載されるため、ポリシーのファイル サイズがとても大きくなってしまいます。
特に Intune から App Control for Business のファイルを配信する場合は、Intune より配信可能なファイル サイズに制限があることから App Control for Business のポリシーを配信できなくなるようなケースもありますのでご留意いただければと思います。
ゴールデン コンピューターを用意したポリシーの作成方法については、英語の公開ブログではありますが、以下のブログが参考になりますので、ゴールデン コンピューターを用意したポリシーの作成を行う場合はぜひご参考ください。
Getting Started with Windows 10 Device Guard – Part 1 of 2
Getting Started with Windows 10 Device Guard – Part 2 of 2
それでは、以下より「1. Windows に既定で存在するサンプル ポリシーを拡張してポリシーを作成する」の方法でのポリシーの構成方法について説明します。
App Control for Business のポリシーの生成方法は大きく分けて以下の生成方法があります。
- PowerShell スクリプトを用いた生成方法
- App Control for Business Wizard を用いた生成方法
ただし、App Control for Business Wizard につきましては、ライセンスの都合上現状有姿での提供となっており、ソフトウェア自体に対する技術サポートが提供されておりませんので、本ブログ記事では「1. PowerShell スクリプトを用いた生成方法」について説明します。
ポリシーの種類
App Control for Business のポリシーには以下の種類があります。
- Single policy
- Multiple policy
上記について、「1. Single policy」については App Control for Business のポリシーを単一のファイルで表現する際に利用され、主に Windows Server 2016, Windows Server 2019, Windows 10 Enterprise LTSC 2019 などの OS において利用されていました。
また、Single policy の App Control for Business のポリシーは C:\Windows\System32\CodeIntegrity 配下のフォルダーへ SiPolicy.p7b という名前で配置して動作させる特徴があります。
ただし、Windows 10 バージョン 1903 および Windows Server 2022 より新しい OS では「2. Multiple policy」が利用可能であり、特に制約がなければ、より柔軟なポリシーの構成や管理が可能な「2. Multiple policy」を使用することをお勧めします。
そのため、本ブログ記事でも Multiple policy を前提に説明します。
なお、Multiple policy のポリシー ファイルは C:\Windows\System32\CodeIntegrity\CIPolicies\Active 配下のフォルダーへ {<PolicyID>}.cip というファイル名で配置されますが、この先の説明で Multiple policy についてお伝えしますのでここでは詳細の説明はしません。
ところで、App Control for Business は実行可能ファイルの実行制御を行う機能ですが、例外的にアプリケーションの実行制御を目的としない AppId Tagging policy というポリシーもあります。
このポリシーを使用すると、App Control for Business の設定に基づいてプロセスにタグを付与できます。
ただし、このポリシーはアプリケーションの実行を制御するものではなく、タグ付けのみを行います。
なぜこのようなポリシーがあるのかというと、Windows Firewall にはプロセスに付与されたタグを基にファイアウォールのルールを定義する機能があるためです。
例えば、特定のタグが付与されたプロセスからの HTTP 通信を許可または拒否する、といったシナリオを実現する際に、このポリシーを利用できます。(参考: App Control tagging policies)。
Base policy と Supplemental Policy
App Control for Business のポリシーの説明を行いましたので、Base policy と Supplemental policy について説明を行います。
Multiple policy を構成するポリシーとして、さらに Base policy と Supplemental policy というポリシーがあります。
Base policy は文字通りベースとなるポリシーであり、Supplemental policy は Base policy を拡張するポリシーです。
特に複雑な制御を行わない場合は Base policy のみで十分であり、Supplemental policy の作成は必須ではありません。
どのような場合に Supplemental policy を必要とするかということについて例を挙げて考えてみます。
例えばある会社で、会社全体では kaisya.exe の実行を許可しており、総務部では kaisya.exe に加えて soumu.exe の実行許可をして、労務部でも同様に roumu.exe の実行を許可するというシナリオがあったとします。
この場合、Base policy として kaisya.exe を許可し、Supplemental policy として soumu.exe の実行許可をしている総務部専用の policy と roumu.exe の実行を許可している労務部専用のポリシーを作成したうえで、総務部では kaisya.exe を許可している Base policy + soumu.exe を許可している Supplemental policy を適用し、労務部では kaisya.exe を許可している Base policy + roumu.exe を許可している Supplemental policy を適用することで、会社全体で共通するポリシーは Base policy にまとめて各部署専用のポリシーは Supplemental policy へ切り出す、というような運用ができます。
上記について詳細は ビジネス ポリシーに複数のアプリ制御を使用する へ記載がありますので、ぜひご参考にしていただければと思います。
今回は Supplemental Policy の作成については説明はしませんので、上記の公開情報を参考に構成していただければと思います。
ポリシーの大まかな種類の説明は以上です。
以下では具体的なポリシーの設定について説明します。
App Control for Business の状態
App Control for Business のポリシーを適用する手順を説明する前に、App Control for Business が構成されているかを確認する方法についてお伝えします。
App Control for Business の状態はシステム情報 (msinfo32) の [システムの要約] のうち “ビジネス向けアプリコントロール ポリシー” および “ビジネス向けアプリコントロールのユーザー モード ポリシー” にて確認することができます。
“ビジネス向けアプリコントロール ポリシー” はカーネル モードで動作するドライバー等の実行可能ファイルを制御する際に利用し、”ビジネス向けアプリコントロールのユーザー モード ポリシー” はユーザー モードで動作する実行可能ファイルを制御する際に利用します。
“ビジネス向けアプリコントロール ポリシー” は Windows 11 において既定で “強制” となっており、”ビジネス向けアプリコントロールのユーザー モード ポリシー” は既定で “監査” もしくは “無効” となっています。
このように App Control for Business の構成には “無効”, “監査”, “強制” の 3 つの状態が存在します。
“強制” の状態では、実行可能ファイルはブロックされます。
“監査” の状態では、実行可能ファイルは実際にはブロックされず、イベントログへ “もし強制状態であればこの実行可能ファイルは実行をブロックされていた” のような趣旨のイベントが発生します。
“無効” は文字通り App Control for Business の構成が行われていないことを示します。
とりあえずポリシーを適用してみる
ここでは Windows に既定で存在するサンプル ポリシーを利用して App Control for Business を構成する手順を紹介します。
今回は PowerShell コマンドで App Control for Business を構成します。
App Control for Business の構成自体は以下のコマンド レットを実行し、OS を再起動することで構成が完了します。
1 | $DefaultWindowsPolicy=$env:windir+"\schemas\CodeIntegrity\ExamplePolicies\DefaultWindows_Enforced.xml" |
上記について少し丁寧に説明をします。
上記の PowerShell コマンドでは Windows に既定で存在するサンプル ポリシーを利用して App Control for Business を構成しているわけですが、サンプル ポリシーは %OSDrive%\Windows\schemas\CodeIntegrity\ExamplePolicies 配下に存在します。%OSDrive%\Windows\schemas\CodeIntegrity\ExamplePolicies には様々なサンプル ポリシーが存在します。
各サンプル ポリシーの詳細な説明は以下の公開情報にありますのでぜひご参考にしていただければと思います。
App Control for Business の基本ポリシーの例
ここでは Windows に既定で存在する実行ファイルは実行を許可するポリシーである DefaultWindows_Enforced.xml を利用して App Control for Business を構成します。
なお、サンプル ポリシーとして DefaultWindows_Enforced.xml のほかに DefaultWindows_Enforced.xml もありますが、_Enforced を含むポリシーは “強制” のポリシーであり _Audit を含むポリシーは “監査” のポリシーです。
App Control for Business の構成を行うためには、ポリシーファイルである xml ファイルをバイナリ変換したうえで所定の場所へ配置する必要があります。ConvertFrom-CIPolicy コマンドレットが App Control for Business の xml ファイルをバイナリ ファイルへ変換するコマンドとなっており、前述の計 6 行のコマンドを実行しますと %OSDrive%\Windows\System32\CodeIntegrity\CIPolicies\Active 配下へ {<ポリシー ID>}.cip というファイル名のファイルが作成されます。
なお、ConvertFrom-CIPolicy へコマンドの詳細の記載があります。
OS を再起動しますと前述の通り msinfo32 にて App Control for Business が強制になっていることが確認できます。
この状態で利用の許可されていない 3rd パーティ製のアプリケーションの実行を行うと App Control for Business によってアプリケーションの実行が制御されます。
App Control for Business のオプションを追加してみる
App Control for Business にはオプションという概念があります。
オプションを利用することで、App Control for Business のポリシーを強制モードにする、や、スクリプトに対する App Control for Business の制御が行われないようにする、といった、App Control for Business のポリシー全体の特性を決めるような設定ができます。
詳細は 表 1. ビジネス 向けアプリ制御ポリシー - ポリシー ルール オプション へ記載がありますのでぜひご参考にしてみてください。
ここではスクリプトを用いて App Control for Business のポリシーへオプションを追加する方法について記載します。
以下にサンプル スクリプトを記載しますが Set-RuleOption コマンドにてオプションを追加しています。
オプション 3 というのがオプション Audit mode を示します。
オプションの番号と機能の対応も 表 1. ビジネス 向けアプリ制御ポリシー - ポリシー ルール オプション へ記載があります。
以下のコマンドでは、もともと強制モードのポリシーである DefaultWindows_Enforced.xml へ Audit mode のポリシーを追加したので、DefaultWindows_Enforced.xml のポリシーは Audit mode で動作するようになります。
ぜひコマンドを実行し、OS を再起動のうえ、App Control for Business が監査モードで動作することをご確認いただければと思います。
1 | $DefaultWindowsPolicy=$env:windir+"\schemas\CodeIntegrity\ExamplePolicies\DefaultWindows_Enforced.xml" |
なお、Set-RuleOption へコマンドの詳細の記載があります。
上記ではオプションを追加するコマンドをご紹介しましたが、以下のように記載することでオプションを削除することもできます。
1 | Set-RuleOption -FilePath $DefaultWindowsPolicy -Option 3 -Delete |
App Control for Business のルールを追加してみる
App Control for Business にはルールという概念があります。
ルールを利用することで、特定のパスのファイルの実行は許可するようにしたり、特定の署名を持ったアプリの実行を許可する、などの制御ができます。
詳細は 表 2. App Control for Business ポリシー - ファイル ルール レベル へ記載がありますのでぜひご参考にしてみてください。
ここではスクリプトを用いて App Control for Business のポリシーへルールを追加する方法について記載します。
以下にサンプル スクリプトを記載しますが Merge-CIPolicy コマンドレットに対して -Rules オプションを指定してルールを追加しています。
例では $Rules 変数へ FilePath ルールで C:\my\* と C:\my2\* の実行許可を行っております。
1 | $DefaultWindowsPolicy=$env:windir+"\schemas\CodeIntegrity\ExamplePolicies\DefaultWindows_Enforced.xml" |
なお、Merge-CIPolicy へコマンドの詳細の記載があります。
実行を拒否するポリシーは以下のように記載することで生成することができます。
1 | $Rules += New-CIPolicyRule -FilePathRule 'C:\my\*' -Deny |
おわり
今回のブログでは App Control for Business の構成のために必要な基本的な概念の説明と具体的な設定方法についてご説明をいたしましたがいかがでしたでしょうか。
本ブログ記事が皆様の理解に役立つことになれば幸いです。