Metodo applicationcontrol CSP

Windows Defender i criteri WDAC (Application Control) possono essere gestiti da un server MDM o in locale tramite PowerShell tramite il bridge WMI tramite il provider di servizi di configurazione ApplicationControl (CSP). Il CSP ApplicationControl è stato aggiunto in Windows 10 versione 1903. Questo provider di servizi di configurazione offre funzionalità di diagnostica estese e supporto per più criteri (introdotti in Windows 10 versione 1903). Fornisce anche il supporto per la distribuzione dei criteri (introdotta in Windows 10 versione 1709) senza riavvio. A differenza del CSP AppLocker, il provider di servizi di configurazione ApplicationControl rileva correttamente la presenza di un'opzione di non riavvio e di conseguenza non pianifica un riavvio.

I criteri WDAC (Application Control) Windows Defender esistenti distribuiti usando il nodo CodeIntegrity del CSP di AppLocker possono ora essere distribuiti usando l'URI CSP ApplicationControl. Anche se la distribuzione dei criteri WDAC con il CSP AppLocker continuerà a essere supportata, tutte le nuove funzionalità verranno eseguite solo nel CSP ApplicationControl.

L'elenco seguente mostra i nodi del provider di servizi di configurazione ApplicationControl:

Criteri

Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Policies

Inizio di un sottoalbero che contiene tutti i criteri.

Ogni criterio è identificato dall'identificatore univoco globale (GUID).

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato node
Tipo accesso Ottieni

Criteri/{GUID criteri}

Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}

GUID del criterio.

Ogni nodo GUID dei criteri contiene un nodo Criteri e un nodo PolicyInfo corrispondente.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato node
Tipo accesso Ottieni
Denominazione dinamica dei nodi UniqueName: il provider di servizi di configurazione ApplicationControl impone che il segmento "ID" di un determinato URI di criteri sia lo stesso GUID dell'ID criterio nel BLOB dei criteri.

Criteri/{GUID criteri}/Criteri

Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/Policy

Il file binario dei criteri codificato come base64. Il valore supportato è un file binario, convertito dal file XML dei criteri dal cmdlet ConvertFrom-CIPolicy.

Il valore predefinito è vuoto.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato b64
Tipo accesso Aggiungere, eliminare, ottenere, sostituire

Criteri/{GUID criteri}/PolicyInfo

Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo

Informazioni Descrizione dei criteri indicati dal GUID.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato node
Tipo accesso Ottieni
Criteri/{GUID criteri}/PolicyInfo/BasePolicyId
Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/BasePolicyId

BasePolicyId del criterio indicato dal GUID dei criteri.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato chr (stringa)
Tipo accesso Ottieni
Criteri/{GUID criteri}/PolicyInfo/FriendlyName
Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/FriendlyName

Nome descrittivo del criterio indicato dal GUID dei criteri.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato chr (stringa)
Tipo accesso Ottieni
Criteri/{GUID criteri}/PolicyInfo/IsAuthorized
Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsAuthorized

Indica se il criterio indicato dal GUID è autorizzato a essere caricato dal motore di imposizione nel sistema.

I valori supportati sono i seguenti:

  • True: indica che il criterio è autorizzato a essere caricato dal motore di imposizione nel sistema.
  • False: indica che il criterio non è autorizzato a essere caricato dal motore di imposizione nel sistema. Questo valore è il valore predefinito.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato bool
Tipo accesso Ottieni
Criteri/{GUID criteri}/PolicyInfo/IsBasePolicy
Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsBasePolicy

TRUE/FALSE se il criterio è un criterio di base rispetto a un criterio supplementare.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato bool
Tipo accesso Ottieni
Criteri/{GUID criteri}/PolicyInfo/IsDeployed
Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsDeployed

Indica se i criteri indicati dal GUID vengono distribuiti nel sistema (nel computer fisico)

I valori supportati sono i seguenti:

  • True: indica che il criterio è distribuito nel sistema ed è presente nel computer fisico.
  • False: indica che i criteri non sono distribuiti nel sistema e non sono presenti nel computer fisico. Questo valore è il valore predefinito.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato bool
Tipo accesso Ottieni
Criteri/{GUID criteri}/PolicyInfo/IsEffective
Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsEffective

Indica se il criterio indicato dal GUID è valido nel sistema (caricato dal motore di imposizione e in vigore)

I valori supportati sono i seguenti:

  • True: indica che il criterio è caricato dal motore di imposizione ed è attivo in un sistema.
  • False: indica che il criterio non è caricato dal motore di imposizione e non è attivo in un sistema. Questo valore è il valore predefinito.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato bool
Tipo accesso Ottieni
Criteri/{GUID criteri}/PolicyInfo/IsSystemPolicy
Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsSystemPolicy

TRUE/FALSE se il criterio è un criterio di sistema, si tratta di un criterio gestito da Microsoft come parte del sistema operativo.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato bool
Tipo accesso Ottieni
Criteri/{GUID criteri}/PolicyInfo/PolicyOptions
Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/PolicyOptions

PolicyOptions del criterio indicato dal GUID dei criteri.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato chr (stringa)
Tipo accesso Ottieni
Criteri/{GUID criteri}/PolicyInfo/Status
Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/Status

Stato corrente dei criteri indicati dal GUID dei criteri.

Il valore predefinito è 0, che indica che lo stato dei criteri è OK.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato int
Tipo accesso Ottieni
Criteri/{GUID criteri}/PolicyInfo/Version
Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/Version

Versione del criterio indicato dal GUID, come stringa. Durante l'analisi usa un uint64 come tipo di dati contenitore.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato chr (stringa)
Tipo accesso Ottieni

Token

Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Tokens

Inizio di un sottoalbero che contiene tutti i token.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato node
Tipo accesso Ottieni

Token/{ID}

Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Tokens/{ID}

ID arbitrario usato per distinguere i token.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato node
Tipo accesso Ottieni
Denominazione dinamica dei nodi UniqueName: il provider di servizi di configurazione ApplicationControl impone che il segmento "ID" di un determinato URI del token sia univoco.

Token/{ID}/Token

Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/Token

Token binario codificato come base64. Il valore supportato è un file binario, ottenuto da OneCoreDeviceUnlockService.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato b64
Tipo accesso Aggiungere, eliminare, ottenere, sostituire

Token/{ID}/TokenInfo

Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo

Informazioni Descrizione del token indicato dall'ID corrispondente.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato node
Tipo accesso Ottieni
Token/{ID}/TokenInfo/Status
Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo/Status

Stato corrente del token indicato dall'ID token.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato int
Tipo accesso Ottieni
Token/{ID}/TokenInfo/Type
Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1903 [10.0.18362] e versioni successive
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo/Type

Tipo di token indicato dall'ID token.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato int
Tipo accesso Ottieni

Valori IsAuthorized, IsDeployed e IsEffective

La tabella seguente fornisce il risultato di questo criterio in base ai diversi valori dei nodi IsAuthorized, IsDeployed e IsEffective:

Isauthorized IsDeployed IsEffective Risultante
True True True I criteri sono attualmente in esecuzione ed è attivo.
True True False Per rendere effettivo il criterio, è necessario un riavvio.
True False True I criteri richiedono un riavvio per lo scaricamento da CI.
False True True Non raggiungibile.
True False False *Non raggiungibile.
False True False *Non raggiungibile.
False False True Non raggiungibile.
False False False *Non raggiungibile.

* indica uno stato intermedio valido; tuttavia, se una transazione MDM genera questa configurazione dello stato, il END_COMMAND_PROCESSING risultato sarà un errore.

Linee guida sull'utilizzo di Microsoft Intune

Per i clienti che usano Intune gestione autonoma o ibrida con Configuration Manager per distribuire criteri personalizzati tramite applicationcontrol CSP, vedere Distribuire criteri di controllo delle applicazioni Windows Defender usando Microsoft Intune.

Linee guida generiche sull'utilizzo del server MDM

Per usare il provider di servizi di configurazione ApplicationControl senza usare Intune, è necessario:

  1. Conoscere il GUID di un criterio generato, disponibile nel file xml dei criteri come <PolicyID> o <PolicyTypeID> per i sistemi pre-1903.
  2. Convertire i criteri in formato binario usando il ConvertFrom-CIPolicy cmdlet per la distribuzione. I criteri binari possono essere firmati o non firmati.
  3. Creare un nodo dei criteri (un BLOB con codifica Base64 della rappresentazione dei criteri binari) usando lo strumento da certutil -encode riga di comando.

Di seguito è riportata una chiamata certutil di esempio:

certutil  -encode WinSiPolicy.p7b WinSiPolicy.cer

Un'alternativa all'uso di certutil consiste nell'usare la chiamata di PowerShell seguente:

[Convert]::toBase64String($(Get-Content -Encoding Byte -ReadCount 0 -Path <bin file>))

Distribuire i criteri

Per distribuire un nuovo criterio di base usando il provider di servizi di configurazione, eseguire un'aggiunta in ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy usando il nodo criteri con codifica Base64 come {Data}. Fare riferimento alla sezione Formato nell'esempio 1 seguente.

Per distribuire criteri di base e criteri supplementari:

  1. Eseguire un'istruzione ADD in ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy usando il nodo criteri con codifica Base64 come {Data} con il GUID e i dati dei criteri per i criteri di base.
  2. Ripetere per ogni criterio di base o supplementare (con i propri GUID e dati).

L'esempio seguente illustra la distribuzione di due criteri di base e di un criterio supplementare (che specifica già i criteri di base che integra e non è necessario che si rifletta in ADD).

Esempio 1: Aggiungere il primo criterio di base

<Add>
    <CmdID>1</CmdID>
    <Item>
        <Target>
            <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{Base1GUID}/Policy</LocURI>
        </Target>
        <Meta>
             <Format xmlns="syncml:metinf">b64</Format>
        </Meta>
        <Data> {Base1Data} </Data>
    </Item>
</Add>

Esempio 2: Aggiungere il secondo criterio di base

<Add>
    <CmdID>1</CmdID>
    <Item>
        <Target>
            <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{Base2GUID}/Policy</LocURI>
        </Target>
        <Meta>
            <Format xmlns="syncml:metinf">b64</Format>
        </Meta>
        <Data> {Base2Data} </Data>
    </Item>
</Add>

Esempio 3: Aggiungere criteri supplementari

<Add>
    <CmdID>1</CmdID>
    <Item>
        <Target>
            <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{Supplemental1GUID}/Policy</LocURI>
        </Target>
        <Meta>
            <Format xmlns="syncml:metinf">b64</Format>
        </Meta>
        <Data> {Supplemental1Data} </Data>
    </Item>
</Add>

Ottenere i criteri

Eseguire un get usando il GUID di un criterio distribuito per interrogare/esaminare il criterio stesso o le informazioni su di esso.

Nella tabella seguente viene visualizzato il risultato dell'operazione Get su nodi diversi:

Nodi Ottenere risultati
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy raw p7b
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/Version Versione dei criteri
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsEffective Il criterio è attivo
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsDeployed Il criterio nel sistema
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsAuthorized Il criterio è autorizzato nel sistema
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/Status La distribuzione ha avuto esito positivo
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/FriendlyName Nome descrittivo per i criteri

Un esempio di comando Get è:

 <Get>
    <CmdID>1</CmdID>
        <Item>
            <Target>
                <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{PolicyGUID}/Policy</LocURI>
            </Target>
        </Item>
 </Get>

Eliminare i criteri

Eliminazione senza riavvio

Dopo l'eliminazione, i criteri distribuiti tramite applicationcontrol CSP vengono rimossi dal sistema, ma rimangono attivi fino al riavvio successivo. Per eseguire in modo funzionale un'eliminazione senza riavvio, sostituire prima di tutto i criteri esistenti con un criterio Consenti tutto (disponibile in C:\Windows\schemas\CodeIntegrity\ExamplePolicies\AllowAll.xml) e quindi eliminare i criteri aggiornati. Questa sequenza impedirà immediatamente il blocco e la disattivazione completa dei criteri al riavvio successivo.

Criteri non firmati

Per eliminare un criterio non firmato, eseguire UN DELETE in ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy.

Criteri firmati

Nota

Un criterio firmato per impostazione predefinita può essere sostituito solo da un altro criterio firmato. Pertanto, l'esecuzione di un'istruzione DELETE in ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy non è sufficiente per eliminare un criterio firmato.

Per eliminare un criterio firmato:

  1. Sostituirlo con un aggiornamento firmato che consente criteri non firmati.
  2. Distribuire un altro aggiornamento con criteri Consenti tutto senza segno.
  3. Eseguire l'eliminazione.

Un esempio di comando Delete è:

   <Delete>
     <CmdID>1</CmdID>
        <Item>
            <Target>
                  <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{PolicyGUID}/Policy</LocURI>
            </Target>
        </Item>
   </Delete>

Indicazioni sull'utilizzo di PowerShell e bridge WMI

Il provider di servizi di configurazione ApplicationControl può anche essere gestito localmente da PowerShell o tramite script della sequenza di attività di Configuration Manager tramite il provider bridge WMI.

Installazione per l'uso del bridge WMI

  1. Convertire i criteri WDAC in Base64.

  2. Aprire PowerShell nel contesto del sistema locale (tramite PSExec o qualcosa di simile).

  3. Usare l'interfaccia WMI:

    $namespace = "root\cimv2\mdm\dmmap"
    $policyClassName = "MDM_ApplicationControl_Policies01_01"
    $policyBase64 = "<base64policy>"
    

Distribuzione di un criterio tramite il bridge WMI

Eseguire il comando seguente. PolicyID è un GUID che può essere trovato nel file xml dei criteri e deve essere usato qui senza parentesi graffe.

New-CimInstance -Namespace $namespace -ClassName $policyClassName -Property @{ParentID="./Vendor/MSFT/ApplicationControl/Policies";InstanceID="<PolicyID>";Policy=$policyBase64}

Esecuzione di query su tutti i criteri tramite il bridge WMI

Get-CimInstance -Namespace $namespace -ClassName $policyClassName

Riferimento del provider di servizi di configurazione