CSP ApplicationControl

As políticas de Controlo de Aplicações para Empresas podem ser geridas a partir de um servidor MDM ou localmente através do PowerShell através da Ponte WMI através do fornecedor de serviços de configuração (CSP) applicationControl. O CSP applicationControl foi adicionado no Windows 10, versão 1903. Este CSP fornece capacidades de diagnóstico expandidas e suporte para várias políticas (introduzidas no Windows 10, versão 1903). Também fornece suporte para a implementação de políticas (introduzida no Windows 10, versão 1709) sem reinício. Ao contrário do CSP do AppLocker, o CSP applicationControl deteta corretamente a presença da opção sem reinício e, consequentemente, não agenda um reinício.

As políticas existentes do Controlo de Aplicações para Empresas implementadas com o nó Integridade de Código do CSP do AppLocker podem agora ser implementadas com o URI CSP applicationControl. Embora a implementação da política de Controlo de Aplicações com o CSP do AppLocker continue a ser suportada, todo o trabalho de novas funcionalidades será feito apenas no CSP ApplicationControl.

A lista seguinte mostra os nós do fornecedor de serviços de configuração ApplicationControl:

Políticas

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
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 identificador exclusivo global (GUID).

Propriedades da estrutura de descrição:

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

Políticas/{GUID de Política}

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
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
Nomenclatura de Nó Dinâmico UniqueName: o CSP applicationControl impõe que o segmento "ID" de um determinado URI de política seja o mesmo GUID que o ID da política no blob de políticas.

Políticas/{GUID de Política}/Política

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
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 da política codificado como base64. O valor suportado é um ficheiro binário, convertido do ficheiro XML de política pelo cmdlet ConvertFrom-CIPolicy.

O valor predefinido está vazio.

Propriedades da estrutura de descrição:

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

Políticas/{GUID da Política}/PolicyInfo

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
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 ✅
Windows SE ✅
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)
Tipo de acesso Obter
Políticas/{GUID da Política}/PolicyInfo/FriendlyName
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
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 Indicada pelo GUID da Política.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato chr (cadeia)
Tipo de acesso Obter
Políticas/{GUID da Política}/PolicyInfo/IsAuthorized
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
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 motor de imposição no sistema.

Os valores suportados são os seguintes:

  • Verdadeiro: indica que a política está autorizada a ser carregada pelo motor de imposição no sistema.
  • Falso: indica que a política não está autorizada a ser carregada pelo motor de imposição no sistema. Este valor é o valor predefinido.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Políticas/{GUID da Política}/PolicyInfo/IsBasePolicy
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
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 Suplementar.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Políticas/{GUID da Política}/PolicyInfo/IsDeployed
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
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 é implementada no sistema (no computador físico)

Os valores suportados são os seguintes:

  • Verdadeiro: indica que a política é implementada no sistema e está presente no computador físico.
  • Falso: indica que a política não está implementada no sistema e não está presente no computador físico. Este valor é o valor predefinido.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Políticas/{GUID da Política}/PolicyInfo/IsEffective
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
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 motor de imposição e em vigor)

Os valores suportados são os seguintes:

  • Verdadeiro: indica que a política é carregada pelo motor de imposição e está em vigor num sistema.
  • Falso: indica que a política não é carregada pelo motor de imposição e não está em vigor num sistema. Este valor é o valor predefinido.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Políticas/{GUID da Política}/PolicyInfo/IsSystemPolicy
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
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 de Sistema, é uma política gerida pela Microsoft como parte do SO.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Políticas/{GUID da Política}/PolicyInfo/PolicyOptions
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
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

PolicyOptions da Política Indicada pelo GUID da Política.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato chr (cadeia)
Tipo de acesso Obter
Políticas/{GUID da Política}/PolicyInfo/Status
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
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 Estado Atual da Política Indicada pelo GUID da Política.

O valor predefinido é 0, o que indica que a política status é OK.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato int
Tipo de acesso Obter
Políticas/{GUID da Política}/PolicyInfo/Versão
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
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. Ao analisar, utilize um uint64 como o tipo de dados que contém.

Propriedades da estrutura de descrição:

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

Tokens

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
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 ✅
Windows SE ✅
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ário utilizado para diferenciar tokens.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato node
Tipo de acesso Obter
Nomenclatura de Nó Dinâmico 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 ✅
Windows SE ✅
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 do token codificado como base64. O valor suportado é um ficheiro binário, obtido a partir 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 ✅
Windows SE ✅
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 pelo 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 ✅
Windows SE ✅
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 Estado Atual do Token Indicado pelo 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 ✅
Windows SE ✅
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 pelo 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 seguinte fornece o resultado desta política com base em diferentes valores de nós IsAuthorized, IsDeployed e IsEffective:

IsAuthorized IsDeployed IsEffective Resultante
True True True A política está atualmente em execução e está em vigor.
True True False A política requer um reinício para entrar em vigor.
True False True A política requer um reinício para descarregar da CI.
False True True Não acessível.
True False False *Não Acessível.
False True False *Não Acessível.
False False True Não acessível.
False False False *Não Acessível.

* indica um estado intermediário válido; no entanto, se uma transação MDM resultar nesta configuração de estado, resultará END_COMMAND_PROCESSING numa falha.

Orientações de Utilização do Microsoft Intune

Para os clientes que utilizam Intune gestão autónoma ou híbrida com Configuration Manager implementar políticas personalizadas através do CSP applicationControl, consulte Implementar políticas de Controlo de Aplicações para Empresas com Microsoft Intune.

Orientações Genéricas de Utilização do Servidor MDM

Para utilizar o CSP ApplicationControl sem utilizar Intune, tem de:

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

Segue-se uma invocação certutil de exemplo:

certutil  -encode WinSiPolicy.p7b WinSiPolicy.cer

Uma alternativa à utilização do certutil seria utilizar a seguinte invocação do PowerShell:

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

Implementar Políticas

Para implementar uma nova política base com o CSP, execute um ADD em ./Vendor/MSFT/ApplicationControl/Policies/POLICY GUID/Policy com o nó de política codificada em Base64 como {Data}. Veja a secção Formatar no Exemplo 1 abaixo.

Para implementar políticas de base e políticas suplementares:

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

O exemplo seguinte mostra a implementação de duas políticas de base e uma política suplementar (que já especifica a política base que complementa e não precisa que seja refletida no ADD).

Exemplo 1: Adicionar a primeira política 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 suplementar

<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 com o GUID de uma política implementada para interrogar/inspecionar a própria política ou informações sobre a mesma.

A tabela seguinte apresenta o resultado da operação Obter em nós diferentes:

Nós Obter Resultados
./Vendor/MSFT/ApplicationControl/Policies/POLICY GUID/Policy p7b não processado
./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 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 implementaçã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>

Eliminar políticas

Eliminação Sem Reinício

Após a eliminação, as políticas implementadas através do CSP applicationControl são removidas do sistema, mas permanecem em vigor até ao próximo reinício. Para fazer funcionalmente uma eliminação sem reinício, substitua primeiro a política existente por uma política Permitir Tudo (encontrada em C:\Windows\schemas\CodeIntegrity\ExamplePolicies\AllowAll.xml) e, em seguida, elimine a política atualizada. Esta sequência impedirá imediatamente que tudo seja bloqueado e desative totalmente a política no próximo reinício.

Políticas Não Assinadas

Para eliminar uma política não assinada, execute um DELETE em ./Vendor/MSFT/ApplicationControl/Policies/POLICY GUID/Policy.

Políticas Assinadas

Observação

Uma política assinada por predefinição só pode ser substituída por outra política assinada. Por conseguinte, a execução de um DELETE em ./Vendor/MSFT/ApplicationControl/Policies/POLICY GUID/Policy não é suficiente para eliminar uma política assinada.

Para eliminar uma política assinada:

  1. Substitua-a por uma atualização assinada que permita uma política não assinada.
  2. Implemente outra atualização com a política Permitir Tudo não assinada.
  3. Efetue a eliminação.

Um exemplo do comando Delete é:

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

PowerShell and WMI Bridge Usage Guidance

O CSP applicationControl também pode ser gerido localmente a partir do PowerShell ou através do scripting de sequência de tarefas do Configuration Manager com o Fornecedor de Bridge WMI.

Configuração para utilizar a Ponte WMI

  1. Converta a política de Controlo de Aplicações em Base64.

  2. Abra o PowerShell no contexto do Sistema Local (através de PSExec ou algo semelhante).

  3. Utilizar a Interface WMI:

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

Implementar uma política através da Ponte WMI

Execute o seguinte comando. PolicyID é um GUID que pode ser encontrado no xml de política e deve ser utilizado aqui sem chavetas.

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

Consultar todas as políticas através da Ponte WMI

Get-CimInstance -Namespace $namespace -ClassName $policyClassName

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