次の方法で共有


スクリプトを使用してアプリ制御ポリシーをデプロイする

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

この記事では、スクリプトを使用して App Control for Business ポリシーを展開する方法について説明します。 次の手順では PowerShell を使用しますが、任意のスクリプト ホストで動作できます。

これで、1 つ以上のアプリ制御ポリシーがバイナリ形式に変換されます。 そうでない場合は、「 App Control for Business ポリシーの展開」で説明されている手順に従います。

重要

2024 より前の更新プログラム (24H2) のWindows 11に関する既知の問題があるため、メモリ整合性が有効になっているシステムで再起動を行い、常に新しい署名済みアプリ制御ベース ポリシーをアクティブにする必要があります。 CiTool、RefreshPolicy.exe、または WMI を使用してポリシーのアクティブ化を開始する以下のすべての手順をスキップします。 代わりに、ポリシー バイナリを正しい system32 と EFI の場所にコピーし、システム再起動でポリシーをアクティブ化します。

この問題は、システムで既にアクティブになっている署名済みの基本ポリシー、署名されていないポリシーの展開、または補足ポリシーの展開 (署名済みまたは署名なし) の更新には影響しません。 また、メモリ整合性を実行していないシステムへのデプロイにも影響しません。

Windows 11 22H2 以降および Windows Server 2025 以降のポリシーの展開

受信トレイ CiTool を使用して、次のコマンドを使用して、Windows 11 22H2 および Windows Server 2025 に署名済みポリシーと署名なしポリシーを展開できます。 次の例では、必ず、App Control ポリシー バイナリ ファイルへの実際のパスに置き換えてください <Path to policy binary file to deploy>

# Policy binary files should be named as {GUID}.cip for multiple policy format files (where {GUID} = <PolicyId> from the Policy XML)
$PolicyBinary = "<Path to policy binary file to deploy>"
CiTool --update-policy $PolicyBinary [-json]

Windows 11、Windows 10 バージョン 1903 以降、および Windows Server 2022 以降のポリシーの展開

この手順を使用するには、 App Control ポリシー更新ツール をダウンロードして、すべてのマネージド エンドポイントに配布します。 アプリ制御ポリシーでアプリ制御ポリシー更新ツールが許可されていることを確認するか、マネージド インストーラーを使用してツールを配布します。

  1. スクリプトで使用する変数を初期化します。

    # Policy binary files should be named as {GUID}.cip for multiple policy format files (where {GUID} = <PolicyId> from the Policy XML)
    $PolicyBinary = "<Path to policy binary file to deploy>"
    $DestinationFolder = $env:windir+"\System32\CodeIntegrity\CIPolicies\Active\"
    $RefreshPolicyTool = "<Path where RefreshPolicy.exe can be found from managed endpoints>"
    
  2. App Control for Business ポリシー バイナリをコピー先フォルダーにコピーします。

    Copy-Item -Path $PolicyBinary -Destination $DestinationFolder -Force
    
  3. 必要に応じて手順 1 ~ 2 を繰り返して、より多くのアプリ制御ポリシーをデプロイします。

  4. RefreshPolicy.exe を実行して、マネージド エンドポイント上のすべてのアプリ制御ポリシーをアクティブ化して更新します。

    & $RefreshPolicyTool
    

他のすべてのバージョンの Windows および Windows Server のポリシーの展開

WMI を使用して、他のすべてのバージョンの Windows と Windows Server にポリシーを展開します。

  1. スクリプトで使用する変数を初期化します。

    # Policy binary files should be named as SiPolicy.p7b for Windows 10 versions earlier than 1903
    $PolicyBinary = "<Path to policy binary file to deploy>"
    $DestinationBinary = $env:windir+"\System32\CodeIntegrity\SiPolicy.p7b"
    
  2. App Control for Business ポリシー バイナリをコピー先にコピーします。

    Copy-Item  -Path $PolicyBinary -Destination $DestinationBinary -Force
    
  3. WMI を使用してアプリ制御ポリシーを更新してアクティブ化する

    Invoke-CimMethod -Namespace root\Microsoft\Windows\CI -ClassName PS_UpdateAndCompareCIPolicy -MethodName Update -Arguments @{FilePath = $DestinationBinary}
    

署名済みポリシーの展開

署名されたアプリ制御ポリシーを使用している場合は、デバイスの EFI パーティションにポリシーを展開する必要があります。

  1. EFI ボリュームをマウントし、ディレクトリが存在しない場合は、管理者特権の PowerShell プロンプトで作成します。

    $MountPoint = 'C:\EFIMount'
    $EFIDestinationFolder = "$MountPoint\EFI\Microsoft\Boot\CiPolicies\Active"
    $EFIPartition = (Get-Partition | Where-Object IsSystem).AccessPaths[0]
    if (-Not (Test-Path $MountPoint)) { New-Item -Path $MountPoint -Type Directory -Force }
    mountvol $MountPoint $EFIPartition
    if (-Not (Test-Path $EFIDestinationFolder)) { New-Item -Path $EFIDestinationFolder -Type Directory -Force }
    
  2. 署名済みポリシーを作成したフォルダーにコピーします。

    Copy-Item -Path $PolicyBinary -Destination $EFIDestinationFolder -Force
    
  3. システムを再起動します。