Share via


Rimuovere i criteri WDAC (Application Control) Windows Defender

Nota

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

Rimozione di criteri WDAC

Potrebbe verificarsi un momento in cui si desidera rimuovere uno o più criteri WDAC o rimuovere tutti i criteri WDAC distribuiti. Questo articolo descrive i vari modi per rimuovere i criteri WDAC.

Importante

Criteri WDAC firmati

Se il criterio che si sta tentando di rimuovere è un criterio WDAC firmato, è prima necessario distribuire un criterio di sostituzione firmato che includa l'opzione 6 Enabled:Unsigned System Integrity Policy.

I criteri di sostituzione devono avere lo stesso PolicyId di quello che sta sostituendo e una versione uguale o maggiore dei criteri esistenti. I criteri di sostituzione devono includere <anche UpdatePolicySigners>.

Per rendere effettivo, questo criterio deve essere firmato con un certificato incluso nella <sezione UpdatePolicySigners> del criterio originale che si vuole sostituire.

È quindi necessario riavviare il computer in modo che la protezione UEFI dei criteri venga disattivata. Se non si esegue questa operazione, si verificherà un errore di avvio dell'avvio.

Prima di rimuovere qualsiasi criterio, è necessario disabilitare il metodo usato per distribuirlo ,ad esempio Criteri di gruppo o MDM. In caso contrario, il criterio potrebbe ridistribuire nel computer.

Per rendere un criterio effettivamente inattivo prima di rimuoverlo, è prima possibile sostituire il criterio con uno nuovo che include le modifiche seguenti:

  1. Sostituire le regole dei criteri con le regole "Consenti *".
  2. Impostare l'opzione 3 Abilitato:Modalità di controllo per modificare i criteri solo in modalità di controllo;
  3. Impostare l'opzione 11 Disabled:Script Enforcement;
  4. Consenti tutti gli oggetti COM. Vedere Allow COM object registration in a WDAC policy (Consenti registrazione di oggetti COM in un criterio WDAC);
  5. Se applicabile, rimuovere l'opzione 0 Enabled:UMCI per convertire i criteri solo in modalità kernel.

Importante

Dopo aver rimosso un criterio, riavviare il computer per renderlo effettivo. Non è possibile rimuovere i criteri WDAC senza riavviare il dispositivo.

Rimuovere i criteri WDAC usando CiTool.exe

A partire dall'aggiornamento Windows 11 2022, è possibile rimuovere i criteri WDAC usando CiTool.exe. Da una finestra di comando con privilegi elevati eseguire il comando seguente. Assicurarsi di sostituire il GUID PolicyId di testo con l'effettivo PolicyId dei criteri WDAC che si desidera rimuovere:

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

Riavviare quindi il computer.

Rimuovere i criteri WDAC usando soluzioni MDM come Intune

È possibile usare una soluzione MDM (Mobile Gestione dispositivi), ad esempio Microsoft Intune, per rimuovere i criteri WDAC dai computer client usando il CSP ApplicationControl.

Per informazioni specifiche sull'uso del CSP ApplicationControl, consultare il provider di soluzioni MDM.

Riavviare quindi il computer.

Rimuovere i criteri WDAC tramite script

Per rimuovere i criteri WDAC tramite script, lo script deve eliminare i file di criteri dal computer. Per i criteri WDAC con più formati di criteri (1903+), cercare i file dei criteri nei percorsi seguenti. Assicurarsi di sostituire il GUID PolicyId con l'effettivo PolicyId dei criteri WDAC da rimuovere.

  • <Partizione> di sistema EFI\Microsoft\Boot\CiPolicies\Active\{PolicyId GUID}.cip
  • <Volume> del sistema operativo\Windows\System32\CodeIntegrity\CiPolicies\Active\{PolicyId GUID}.cip

Per i criteri WDAC in formato singolo, oltre alle due posizioni precedenti, cercare anche un file denominato SiPolicy.p7b disponibile nei percorsi seguenti:

  • <Partizione> di sistema EFI\Microsoft\Boot\SiPolicy.p7b
  • <Volume> del sistema operativo\Windows\System32\CodeIntegrity\SiPolicy.p7b

Riavviare quindi il computer.

Script di esempio per eliminare un singolo criterio WDAC

# Set PolicyId GUID to the PolicyId from your WDAC 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

Nota

È necessario eseguire lo script come amministratore per rimuovere i criteri WDAC nel computer.

Rimuovere i criteri WDAC che causano errori di arresto dell'avvio

Un criterio WDAC che blocca i driver critici di avvio può causare un errore di arresto dell'avvio (BSOD), anche se questo può essere attenuato impostando l'opzione 10 Abilitato:Controllo di avvio in caso di errore nei criteri. Inoltre, i criteri WDAC firmati proteggono i criteri da manipolazioni amministrative e malware che hanno ottenuto l'accesso a livello amministrativo al sistema. Per questo motivo, i criteri WDAC firmati sono intenzionalmente più difficili da rimuovere rispetto ai criteri non firmati anche per gli amministratori. La manomissione o la rimozione di un criterio WDAC firmato causerà l'esecuzione di un BSOD.

Per rimuovere un criterio che causa errori di arresto dell'avvio:

  1. Se il criterio è un criterio WDAC firmato , disattivare Avvio protetto dal menu DEL BIOS UEFI. Per assistenza nell'individuazione di dove disattivare l'avvio protetto all'interno del menu del BIOS, consultare il produttore dell'apparecchiatura originale (OEM).
  2. Accedere al menu Opzioni di avvio avanzate nel computer e scegliere l'opzione Disabilita l'imposizione della firma del driver. Per istruzioni sull'accesso al menu Opzioni di avvio avanzate durante l'avvio, consultare l'OEM. Questa opzione sospenderà tutti i controlli di integrità del codice, incluso WDAC, per una singola sessione di avvio.
  3. Avviare Windows normalmente e accedere. Rimuovere quindi i criteri WDAC usando lo script.
  4. Se l'avvio protetto è stato disattivato nel passaggio 1 precedente e l'unità è protetta da BitLocker, sospendere la protezione BitLocker e quindi attivare Avvio protetto dal menu DEL BIOS UEFI.
  5. Riavviare il computer.

Nota

Se l'unità è protetta da Bitlocker, potrebbero essere necessarie le chiavi di ripristino di Bitlocker per eseguire i passaggi da 1 a 2 precedenti.