次の方法で共有


ビジネス ポリシーのアプリコントロールを削除する

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

アプリ制御ポリシーの削除

1 つ以上のアプリ制御ポリシーを削除したり、デプロイしたすべてのアプリコントロール ポリシーを削除したりする場合があります。 この記事では、アプリ制御ポリシーを削除するさまざまな方法について説明します。

重要

署名された基本アプリ制御ポリシー

削除しようとしている基本ポリシーが署名済みのアプリ制御ポリシーである場合は、最初にオプション 6 Enabled:Unsigned System Integrity Policy を含む署名付き置換ポリシーをデプロイする必要があります。

置き換えポリシーには、置き換えるポリシーと同じ PolicyId と、既存のポリシー以上のバージョンが必要です。 置き換えポリシーには、UpdatePolicySigners> も含まれている<必要があります。

有効にするには、このポリシーに、置き換える元のポリシーの <UpdatePolicySigners> セクションに含まれる証明書で署名する必要があります。

その後、ポリシーの UEFI 保護が非アクティブ化されるように、コンピューターを再起動する必要があります。 これを行わないと、ブート開始エラーが発生します。

署名済みの追加のアプリ制御ポリシーは、署名されていないポリシーと同じ方法で削除できます。前述の手順に従う必要はありません

ポリシーを削除する前に、最初に展開に使用するメソッド (グループ ポリシーや MDM など) を無効にする必要があります。 そうしないと、ポリシーがコンピューターに再デプロイされる可能性があります。

ポリシーを削除する前にポリシーを効果的に非アクティブにするには、まずポリシーを、次の変更を含む新しいポリシーに置き換えることができます。

  1. ポリシー規則を "許可 *" ルールに置き換えます。
  2. オプション 3 [有効]:[監査モード] を設定して、ポリシーを監査モードのみに変更します。
  3. オプション 11 を無効に設定する:スクリプトの適用
  4. すべての COM オブジェクトを許可します。 「App Control ポリシーで COM オブジェクトの登録を許可する」を参照してください。
  5. 該当する場合は、オプション 0 Enabled:UMCI を削除して、ポリシーをカーネル モードにのみ変換します。

CiTool.exe を使用してアプリ制御ポリシーを削除する

Windows 11 2022 Update 以降では、CiTool.exe を使用してアプリ制御ポリシーを削除できます。 管理者特権のコマンド ウィンドウで、次のコマンドを実行します。 PolicyId GUID というテキストを、削除するアプリ制御ポリシーの実際の PolicyId に置き換えてください。

CiTool.exe -rp "{PolicyId GUID}" -json

Windows 11 2024 更新以降、署名されていないポリシーは、再起動を必要とせずに CiTool.exe を使用して削除できます。 ただし、以前のバージョンの Windows では、削除プロセスを完了するために再起動が必要です。

Intuneなどの MDM ソリューションを使用してアプリ制御ポリシーを削除する

モバイル デバイス管理 (MDM) ソリューション (Microsoft Intune など) を使用して、ApplicationControl CSP を使用してクライアント コンピューターからアプリ制御ポリシーを削除できます。

ApplicationControl CSP の使用に関する具体的な情報については、MDM ソリューション プロバイダーに問い合わせてください。

次に、コンピューターを再起動します。

スクリプトを使用してアプリ制御ポリシーを削除する

スクリプトを使用してアプリ制御ポリシーを削除するには、スクリプトでコンピューターからポリシー ファイルを削除する必要があります。 複数のポリシー形式 (1903 以降) のアプリ制御ポリシーについては、次の場所にあるポリシー ファイルを探します。 PolicyId GUID は、削除するアプリ制御ポリシーの実際の PolicyId に置き換えてください。

  • <EFI システム パーティション>\Microsoft\Boot\CiPolicies\Active\{PolicyId GUID}.cip
  • <OS ボリューム>\Windows\System32\CodeIntegrity\CiPolicies\Active\{PolicyId GUID}.cip

上記の 2 つの場所に加えて、 単一のポリシー形式のアプリ制御ポリシーについては、次の場所にある可能性がある SiPolicy.p7b というファイルも検索します。

  • <EFI システム パーティション>\Microsoft\Boot\SiPolicy.p7b
  • <OS ボリューム>\Windows\System32\CodeIntegrity\SiPolicy.p7b

次に、コンピューターを再起動します。

1 つのアプリ制御ポリシーを削除するためのサンプル スクリプト

# Set PolicyId GUID to the PolicyId from your App Control policy XML
$PolicyId = "{PolicyId GUID}"

# Initialize variables
$SinglePolicyFormatPolicyId = "{A244370E-44C9-4C06-B551-F6016E563076}"
$SinglePolicyFormatFileName = "\SiPolicy.p7b"
$MountPoint =  $env:SystemDrive+"\EFIMount"
$SystemCodeIntegrityFolderRoot = $env:windir+"\System32\CodeIntegrity"
$EFICodeIntegrityFolderRoot = $MountPoint+"\EFI\Microsoft\Boot"
$MultiplePolicyFilePath = "\CiPolicies\Active\"+$PolicyId+".cip"

# Mount the EFI partition
$EFIPartition = (Get-Partition | Where-Object IsSystem).AccessPaths[0]
if (-Not (Test-Path $MountPoint)) { New-Item -Path $MountPoint -Type Directory -Force }
mountvol $MountPoint $EFIPartition

# Check if the PolicyId to be removed is the system reserved GUID for single policy format.
# If so, the policy may exist as both SiPolicy.p7b in the policy path root as well as
# {GUID}.cip in the CiPolicies\Active subdirectory
if ($PolicyId -eq $SinglePolicyFormatPolicyId) {$NumFilesToDelete = 4} else {$NumFilesToDelete = 2}

$Count = 1
while ($Count -le $NumFilesToDelete)
{

    # Set the $PolicyPath to the file to be deleted, if exists
    Switch ($Count)
    {
        1 {$PolicyPath = $SystemCodeIntegrityFolderRoot+$MultiplePolicyFilePath}
        2 {$PolicyPath = $EFICodeIntegrityFolderRoot+$MultiplePolicyFilePath}
        3 {$PolicyPath = $SystemCodeIntegrityFolderRoot+$SinglePolicyFormatFileName}
        4 {$PolicyPath = $EFICodeIntegrityFolderRoot+$SinglePolicyFormatFileName}
    }

    # Delete the policy file from the current $PolicyPath
    Write-Host "Attempting to remove $PolicyPath..." -ForegroundColor Cyan
    if (Test-Path $PolicyPath) {Remove-Item -Path $PolicyPath -Force -ErrorAction Continue}

    $Count = $Count + 1
}

# Dismount the EFI partition
mountvol $MountPoint /D

コンピューター上のアプリ制御ポリシーを削除するには、管理者としてスクリプトを実行する必要があります。

ブート停止エラーの原因となっているアプリ制御ポリシーを削除する

ブート クリティカルなドライバーをブロックするアプリ制御ポリシーでは、ブート停止エラー (BSOD) が発生する可能性がありますが、これはポリシーでオプション 10 Enabled:Boot Audit On Failure を設定することで軽減できます。 さらに、署名されたアプリ制御ポリシーは、システムへの管理レベルのアクセス権を取得した管理操作やマルウェアからポリシーを保護します。 このため、署名されたアプリコントロールポリシーは、管理者であっても署名されていないポリシーよりも意図的に削除するのが困難です。 署名されたアプリ制御ポリシーを改ざんまたは削除すると、BSOD が発生します。

ブート停止エラーの原因となっているポリシーを削除するには:

  1. ポリシーが 署名された アプリ制御ポリシーの場合は、 UEFI BIOS メニューからセキュア ブートをオフにします。 BIOS メニュー内のセキュア ブートをオフにする場所の特定については、元の機器メーカー (OEM) に問い合わせてください。
  2. コンピューターの [高度なブート オプション] メニューにアクセスし、[ ドライバー署名の適用を無効にする] オプションを選択します。 起動時に [高度なブート オプション] メニューにアクセスする手順については、OEM に問い合わせてください。 このオプションは、1 回のブート セッションに対して、App Control を含むすべてのコード整合性チェックを一時停止します。
  3. Windows を正常に起動し、サインインします。 次に、 スクリプトを使用してアプリ制御ポリシーを削除します。
  4. 上記の手順 1 でセキュア ブートをオフにし、ドライブが BitLocker によって保護されている場合は、 BitLocker 保護を一時停止 してから、UEFI BIOS メニューからセキュア ブートをオンにします。
  5. コンピューターを再起動します。

ドライブが Bitlocker によって保護されている場合は、上記の手順 1 から 2 を実行するために Bitlocker 回復キーが必要な場合があります。