CSP ApplicationControl

As políticas do Controle de Aplicativos para Empresas podem ser gerenciadas de um servidor MDM ou localmente usando o PowerShell por meio da Ponte WMI por meio do provedor de serviços de configuração ApplicationControl (CSP). O CSP ApplicationControl foi adicionado no Windows 10, versão 1903. Esse CSP fornece recursos de diagnóstico expandidos e suporte para várias políticas (introduzidas no Windows 10, versão 1903). Ele também fornece suporte para implantação de política (introduzida no Windows 10, versão 1709) sem reinicialização. Ao contrário do CSP do AppLocker, o CSP ApplicationControl detecta corretamente a presença da opção sem reinicialização e, consequentemente, não agenda uma reinicialização.

As políticas existentes do Controle de Aplicativos para Empresas implantadas usando o nó CodeIntegrity do CSP do AppLocker agora podem ser implantadas usando o URI do CSP ApplicationControl. Embora a implantação de política de Controle de Aplicativos usando o CSP do AppLocker continue a ter suporte, todo o trabalho de novos recursos será feito apenas no CSP ApplicationControl.

A lista a seguir mostra os nós do provedor de serviços de configuração ApplicationControl:

Políticas

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies

Início de uma subárvore que contém todas as políticas.

Cada política é identificada pelo GUID (identificador global exclusivo).

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato node
Tipo de acesso Obter

Policies/{Policy GUID}

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}

O GUID da política.

Cada nó GUID de política contém um nó de política e um nó PolicyInfo correspondente.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato node
Tipo de acesso Obter
Nomeação de Nós Dinâmicos UniqueName: o CSP ApplicationControl impõe que o segmento "ID" de um determinado URI de política seja o mesmo GUID que a ID da política no blob de política.

Policies/{Policy GUID}/Policy

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/Policy

O binário de política codificado como base64. O valor com suporte é um arquivo binário, convertido do arquivo XML de política pelo cmdlet ConvertFrom-CIPolicy.

O valor padrão está vazio.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato b64
Tipo de acesso Adicionar, Excluir, Obter, Substituir

Policies/{Policy GUID}/PolicyInfo

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo

Informações que descrevem a política indicada pelo GUID.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato node
Tipo de acesso Obter
Policies/{Policy GUID}/PolicyInfo/BasePolicyId
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/BasePolicyId

O BasePolicyId da política indicada pelo GUID da política.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato chr (cadeia de caracteres)
Tipo de acesso Obter
Policies/{Policy GUID}/PolicyInfo/FriendlyName
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/FriendlyName

O FriendlyName da política indicado pelo GUID da política.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato chr (cadeia de caracteres)
Tipo de acesso Obter
Policies/{Policy GUID}/PolicyInfo/IsAuthorized
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsAuthorized

Se a política indicada pelo GUID está autorizada a ser carregada pelo mecanismo de imposição no sistema.

Os valores com suporte são os seguintes:

  • True: indica que a política está autorizada a ser carregada pelo mecanismo de imposição no sistema.
  • False: indica que a política não está autorizada a ser carregada pelo mecanismo de imposição no sistema. Esse valor é o valor padrão.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Policies/{Policy GUID}/PolicyInfo/IsBasePolicy
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsBasePolicy

VERDADEIRO/FALSO se a Política for uma Política Base versus uma Política Complementar.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Policies/{Policy GUID}/PolicyInfo/IsDeployed
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsDeployed

Se a política indicada pelo GUID é implantada no sistema (no computador físico)

Os valores com suporte são os seguintes:

  • True: indica que a política foi implantada no sistema e está presente no computador físico.
  • False: indica que a política não está implantada no sistema e não está presente no computador físico. Esse valor é o valor padrão.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Policies/{Policy GUID}/PolicyInfo/IsEffective
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsEffective

Se a Política indicada pelo GUID é Efetiva no sistema (carregada pelo mecanismo de imposição e em vigor)

Os valores com suporte são os seguintes:

  • True: Indica que a política é carregada pelo mecanismo de imposição e está em vigor em um sistema.
  • False: indica que a política não é carregada pelo mecanismo de imposição e não está em vigor em um sistema. Esse valor é o valor padrão.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Policies/{Policy GUID}/PolicyInfo/IsSystemPolicy
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsSystemPolicy

VERDADEIRO/FALSO se a Política for uma Política do Sistema, essa é uma política gerenciada pela Microsoft como parte do sistema operacional.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Policies/{Policy GUID}/PolicyInfo/PolicyOptions
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/PolicyOptions

As PolicyOptions da política indicadas pelo GUID de política.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato chr (cadeia de caracteres)
Tipo de acesso Obter
Policies/{Policy GUID}/PolicyInfo/Status
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/Status

O status atual da política indicado pelo GUID da política.

O valor padrão é 0, o que indica que o status da política é OK.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato int
Tipo de acesso Obter
Policies/{Policy GUID}/PolicyInfo/Version
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/Version

Versão da política indicada pelo GUID, como uma cadeia de caracteres. Ao analisar, use um uint64 como o tipo de dados recipiente.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato chr (cadeia de caracteres)
Tipo de acesso Obter

Tokens

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Tokens

Início de uma subárvore que contém todos os tokens.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato node
Tipo de acesso Obter

Tokens/{ID}

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Tokens/{ID}

ID arbitrária usada para diferenciar tokens.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato node
Tipo de acesso Obter
Nomeação de Nós Dinâmicos UniqueName: o CSP ApplicationControl impõe que o segmento "ID" de um determinado URI de token seja exclusivo.

tokens/{ID}/token

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/Token

O binário de token codificado como base64. O valor com suporte é um arquivo binário, obtido do OneCoreDeviceUnlockService.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato b64
Tipo de acesso Adicionar, Excluir, Obter, Substituir

Tokens/{ID}/TokenInfo

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo

Informações que descrevem o token indicado pela ID correspondente.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato node
Tipo de acesso Obter
Tokens/{ID}/TokenInfo/Status
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo/Status

O status atual do token indicado pela ID do token.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato int
Tipo de acesso Obter
Tokens/{ID}/TokenInfo/Type
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo/Type

O tipo de token indicado pela ID do token.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato int
Tipo de acesso Obter

Valores IsAuthorized, IsDeployed e IsEffective

A tabela a seguir fornece o resultado dessa política com base em diferentes valores de nós IsAuthorized, IsDeployed e IsEffective:

IsAuthorized IsDeployed ÉEficaz Resultante
True True True A política está em execução no momento e em vigor.
True True False A política requer uma reinicialização para entrar em vigor.
True False True A política requer uma reinicialização para ser descarregada da CI.
False True True Inacessível.
True False False *Inacessível.
False True False *Inacessível.
False False True Inacessível.
False False False *Inacessível.

* denota um estado intermediário válido; no entanto, se uma transação MDM resultar nessa configuração de estado, isso END_COMMAND_PROCESSING resultará em uma falha.

Diretrizes de uso do Microsoft Intune

Para clientes que usam o gerenciamento autônomo ou híbrido do Intune com o Configuration Manager para implantar políticas personalizadas por meio do CSP ApplicationControl, consulte Implantar políticas do Controle de Aplicativos para Empresas usando o Microsoft Intune.

Diretrizes genéricas de uso do servidor MDM

Para usar o CSP ApplicationControl sem usar o Intune, você deve:

  1. Conheça o GUID de uma política gerada, que pode ser encontrada no xml de política como <PolicyID> ou <PolicyTypeID> para sistemas anteriores a 1903.
  2. Converta as políticas em formato binário usando o ConvertFrom-CIPolicy cmdlet para serem implantadas. A política binária pode ser assinada ou não assinada.
  3. Crie um nó de política (um blob codificado em Base64 da representação de política binária) usando a certutil -encode ferramenta de linha de comando.

Abaixo está um exemplo de invocação de certutil:

certutil  -encode WinSiPolicy.p7b WinSiPolicy.cer

Uma alternativa ao uso do certutil seria usar a seguinte invocação do PowerShell:

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

Implantar políticas

Para implantar uma nova política básica usando o CSP, execute um ADD em ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy usando o nó de política codificado em Base64 como {Data}. Consulte a seção Formato no Exemplo 1 abaixo.

Para implantar a política básica e as políticas complementares:

  1. Execute um ADD em ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy usando o nó de política codificado em Base64 como {Data} com o GUID e os dados de política para a política base.
  2. Repita para cada política básica ou suplementar (com seu próprio GUID e dados).

O exemplo a seguir mostra a implantação de duas políticas básicas e uma política complementar (que já especifica a política básica que complementa e não precisa que isso seja refletido no ADD).

Exemplo 1: adicionar política de primeira 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>

Exemplo 2: adicionar política de segunda 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>

Exemplo 3: Adicionar política complementar

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

Obter políticas

Execute um GET usando o GUID de uma política implantada para interrogar/inspecionar a própria política ou informações sobre ela.

A tabela a seguir exibe o resultado da operação Get em nós diferentes:

Nós Obter Resultados
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy raw p7b
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/Version Versão da política
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsEffective A política está em vigor
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsDeployed A política está no sistema
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsAuthorized A política está autorizada no sistema
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/Status A implantação foi bem-sucedida
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/FriendlyName Nome amigável de acordo com a política

Um exemplo do comando Get é:

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

Excluir políticas

Exclusão sem reinicialização

Após a exclusão, as políticas implantadas por meio do CSP ApplicationControl são removidas do sistema, mas permanecem em vigor até a próxima reinicialização. Para executar funcionalmente uma exclusão sem reinicialização, primeiro substitua a política existente por uma política Permitir Tudo (encontrada em C:\Windows\schemas\CodeIntegrity\ExamplePolicies\AllowAll.xml) e, em seguida, exclua a política atualizada. Essa sequência impedirá imediatamente que qualquer coisa seja bloqueada e desativará totalmente a política na próxima reinicialização.

Políticas não assinadas

Para excluir uma política não assinada, execute uma EXCLUSÃO em ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy.

Políticas assinadas

Observação

Por padrão, uma política assinada só pode ser substituída por outra política assinada. Portanto, executar um DELETE em ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy não é suficiente para excluir uma política assinada.

Para excluir uma política assinada:

  1. Substitua-a por uma atualização assinada, permitindo uma política não assinada.
  2. Implante outra atualização com a política Permitir Tudo não assinada.
  3. Execute a exclusão.

Um exemplo do comando Excluir é:

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

Diretrizes de uso do PowerShell e da ponte WMI

O CSP ApplicationControl também pode ser gerenciado localmente no PowerShell ou por meio de scripts de sequência de tarefas do Configuration Manager usando o Provedor de Ponte WMI.

Configuração para usar a Ponte WMI

  1. Converta sua política de controle de aplicativos em Base64.

  2. Abra o PowerShell no contexto do Sistema Local (por meio do PSExec ou algo semelhante).

  3. Usar a interface WMI:

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

Implantando uma política por meio da Ponte WMI

Execute o comando a seguir. PolicyID é um GUID que pode ser encontrado no xml de política e deve ser usado aqui sem chaves.

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

Consultando todas as políticas por meio da Ponte WMI

Get-CimInstance -Namespace $namespace -ClassName $policyClassName

Referência de provedor de serviços de configuração