Distribuire i criteri di Controllo app tramite script

Nota

Alcune funzionalità di Controllo app per le aziende sono disponibili solo in versioni specifiche di Windows. Altre informazioni sulla disponibilità delle funzionalità di Controllo app.

Questo articolo descrive come distribuire i criteri di Controllo app per le aziende tramite script. Le istruzioni seguenti usano PowerShell, ma possono funzionare con qualsiasi host di scripting.

A questo punto è necessario convertire uno o più criteri di Controllo app in formato binario. In caso contrario, seguire i passaggi descritti in Distribuzione dei criteri di controllo delle app per le aziende.

Importante

A causa di un problema noto negli aggiornamenti Windows 11 precedenti alla 2024 (24H2), è consigliabile attivare sempre i nuovi criteri di base del controllo app 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 e Windows Server 2025 e versioni successive

È possibile usare CiTool della posta in arrivo per distribuire criteri firmati e non firmati in Windows 11 22H2 e Windows Server 2025 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 di Controllo app.

# 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 di Controllo app a tutti gli endpoint gestiti. Assicurarsi che i criteri di Controllo app consentano lo strumento di aggiornamento dei criteri di Controllo app o usi 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 il file binario dei criteri di Controllo app per le aziende 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 di Controllo app.

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

    & $RefreshPolicyTool
    

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

Usare WMI per distribuire i 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 il file binario dei criteri di Controllo app per le aziende nella destinazione.

    Copy-Item  -Path $PolicyBinary -Destination $DestinationBinary -Force
    
  3. Aggiornare e attivare i criteri di Controllo app 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 di Controllo app firmati, i criteri devono essere distribuiti nella partizione EFI del dispositivo.

  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.