Distribuire criteri WDAC tramite script

Nota

Alcune funzionalità di Windows Defender controllo delle applicazioni (WDAC) sono disponibili solo in versioni specifiche di Windows. Altre informazioni sulla disponibilità delle funzionalità di Controllo applicazioni.

Questo articolo descrive come distribuire Windows Defender criteri WDAC (Application Control) tramite script. Le istruzioni seguenti usano PowerShell, ma possono funzionare con qualsiasi host di scripting.

È ora necessario convertire uno o più criteri WDAC in formato binario. In caso contrario, seguire la procedura descritta in Distribuzione di criteri WDAC (Application Control) Windows Defender.

Importante

A causa di un problema noto, è consigliabile attivare sempre i nuovi criteri di base WDAC firmati con un riavvio nei sistemi con l'integrità della memoria abilitata. Ignorare tutti i passaggi seguenti che usano CiTool, RefreshPolicy.exe o WMI per avviare un'attivazione dei criteri. Copiare invece il file binario dei criteri nei percorsi system32 ed EFI corretti e quindi attivare il criterio con un riavvio del sistema.

Questo problema non influisce sugli aggiornamenti dei criteri di base firmati già attivi nel sistema, sulla distribuzione di criteri non firmati o sulla distribuzione di criteri supplementari (firmati o non firmati). Inoltre, non influisce sulle distribuzioni in sistemi che non eseguono l'integrità della memoria.

Distribuzione di criteri per Windows 11 22H2 e versioni successive

È possibile usare CiTool della posta in arrivo per applicare i criteri in Windows 11 22H2 con i comandi seguenti. Assicurarsi di sostituire <Path to policy binary file to deploy> nell'esempio seguente con il percorso effettivo del file binario dei criteri WDAC.

# 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]

Distribuzione di criteri per Windows 11, Windows 10 versione 1903 e successive e Windows Server 2022 e versioni successive

Per usare questa procedura, scaricare e distribuire lo strumento di aggiornamento dei criteri WDAC a tutti gli endpoint gestiti. Assicurarsi che i criteri WDAC consentano lo strumento di aggiornamento dei criteri WDAC o utilizzino un programma di installazione gestito per distribuire lo strumento.

  1. Inizializzare le variabili che devono essere usate dallo script.

    # 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. Copiare Windows Defender file binario dei criteri WDAC (Application Control) nella cartella di destinazione.

    Copy-Item -Path $PolicyBinary -Destination $DestinationFolder -Force
    
  3. Ripetere i passaggi da 1 a 2 in base alle esigenze per distribuire altri criteri WDAC.

  4. Eseguire RefreshPolicy.exe per attivare e aggiornare tutti i criteri WDAC nell'endpoint gestito.

    & $RefreshPolicyTool
    

Distribuzione di criteri per tutte le altre versioni di Windows e Windows Server

Usare WMI per applicare criteri in tutte le altre versioni di Windows e Windows Server.

  1. Inizializzare le variabili che devono essere usate dallo script.

    # 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. Copiare Windows Defender file binario dei criteri WDAC (Application Control) nella destinazione.

    Copy-Item  -Path $PolicyBinary -Destination $DestinationBinary -Force
    
  3. Aggiornare e attivare i criteri WDAC tramite WMI

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

Distribuzione di criteri firmati

Se si usano criteri WDAC firmati, i criteri devono essere distribuiti nella partizione EFI del dispositivo oltre alle posizioni descritte nelle sezioni precedenti. I criteri WDAC non firmati non devono essere presenti nella partizione EFI.

  1. Montare il volume EFI e impostare la directory, se non esiste, in un prompt di PowerShell con privilegi elevati:

    $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. Copiare i criteri firmati nella cartella creata:

    Copy-Item -Path $PolicyBinary -Destination $EFIDestinationFolder -Force
    
  3. Riavviare il sistema.