Imposição de scripts com o Controlo de Aplicações para Empresas
Observação
Algumas capacidades do Controlo de Aplicações para Empresas só estão disponíveis em versões específicas do Windows. Saiba mais sobre a disponibilidade das funcionalidades do Controlo de Aplicações.
Importante
Opção 11 Desativada: a Imposição de Script não é suportada no Windows Server 2016 ou no Windows 10 1607 LTSB e não deve ser utilizada nessas plataformas. Se o fizer, resultará em comportamentos de imposição de script inesperados.
Descrição geral da imposição de scripts
Por predefinição, a imposição de scripts está ativada para todas as políticas de Controlo de Aplicações, a menos que a opção 11 Desativada:Imposição de Script esteja definida na política. A imposição do script do Controlo de Aplicações envolve um handshake entre um anfitrião de scripts otimizado, como o PowerShell, e o Controlo de Aplicações. No entanto, o anfitrião do script processa o comportamento de imposição real. Alguns anfitriões de scripts, como o Anfitrião de Aplicações HTML da Microsoft (mshta.exe), bloqueiam toda a execução de código se alguma política UMCI de Controlo de Aplicações estiver ativa. A maioria dos anfitriões de scripts pergunta primeiro ao Controlo de Aplicações se um script deve ser autorizado a ser executado com base nas políticas de Controlo de Aplicações atualmente ativas. Em seguida, o anfitrião do script bloqueia, permite ou altera a forma como o script é executado para proteger melhor o utilizador e o dispositivo.
A validação de scripts assinados é feita com a API WinVerifyTrust. Para passar a validação, a raiz da assinatura tem de estar presente no arquivo de raiz fidedigna no dispositivo e a política de Controlo de Aplicações tem de permitir. Este comportamento é diferente da validação do Controlo de Aplicações para ficheiros executáveis, o que não requer a instalação do certificado de raiz.
O Controlo de Aplicações partilha o registo de eventos AppLocker – MSI e Script para todos os eventos de imposição de scripts. Sempre que um anfitrião de scripts pergunta ao Controlo de Aplicações se um script deve ser permitido, é registado um evento com a resposta Controlo de Aplicações devolvido ao anfitrião de scripts. Para obter mais informações sobre os eventos de imposição de scripts do Controlo de Aplicações, veja Compreender os eventos do Controlo de Aplicações.
Observação
Quando um script é executado que não é permitido pela política, o Controlo de Aplicações gera um evento que indica que o script foi "bloqueado". No entanto, o comportamento real de imposição do script é processado pelo anfitrião do script e pode não bloquear completamente a execução do ficheiro.
Tenha também em atenção que alguns anfitriões de script podem alterar a forma como se comportam, mesmo que uma política de Controlo de Aplicações esteja apenas no modo de auditoria. Deve rever as informações específicas do anfitrião de scripts neste artigo e testar cuidadosamente no seu ambiente para garantir que os scripts que precisa de executar estão a funcionar corretamente.
Anfitriões de scripts otimizados que fazem parte do Windows
Windows PowerShell
As políticas de Controlo de Aplicações têm de permitir que todos os scripts do PowerShell (.ps1), módulos (.psm1) e manifestos (.psd1) sejam executados com direitos de Idioma Completo.
As políticas de Controlo de Aplicações também têm de permitir quaisquer módulos dependentes carregados por um módulo permitido e as funções do módulo têm de ser exportadas explicitamente pelo nome quando o Controlo de Aplicações é imposto. Os módulos que não especificam quaisquer funções exportadas (sem lista de nomes de exportação) continuam a ser carregados, mas não estão acessíveis funções de módulo. Os módulos que utilizam carateres universais (*) no respetivo nome não serão carregados.
Qualquer script do PowerShell que não seja permitido pela política de Controlo de Aplicações ainda é executado, mas apenas no Modo de Idioma Restrito.
O dot-sourcing do PowerShell não é recomendado. Em vez disso, os scripts devem utilizar módulos do PowerShell para fornecer funcionalidades comuns. Se um ficheiro de script permitido tentar executar ficheiros de script de origem de pontos, esses ficheiros de script também têm de passar na política.
O Controlo de Aplicações coloca o PowerShell interativo no Modo de Idioma Restrito se alguma política UMCI de Controlo de Aplicações for imposta e qualquer política ativa do Controlo de Aplicações ativar a imposição de scripts, mesmo que essa política esteja no modo de auditoria. Para executar o PowerShell interativo com direitos de Idioma Completo, tem de desativar a imposição de scripts para todas as políticas.
Para obter mais informações, veja About Language Modes and Constrained Language Mode ( Acerca dos Modos de Idioma e do Modo de Idioma Restrito).
VBscript, cscript e jscript
As políticas de Controlo de Aplicações têm de permitir a execução de todos os scripts com o Anfitrião de Script Baseado no Windows (wscript.exe) ou o Anfitrião de Script Baseado na Consola da Microsoft (cscript.exe). Caso contrário, o script é bloqueado.
Microsoft HTML Application Host (MSHTA) e MSXML
Toda a execução de código com MSHTA ou MSXML é bloqueada se alguma política de Controlo de Aplicações com imposição de script estiver ativa, mesmo que essa política esteja no modo de auditoria.
Objetos COM
O Controlo de Aplicações também impõe uma lista de permissões restrita para objetos COM que a política de Controlo de Aplicações pode expandir ou restringir ainda mais. A imposição de objetos COM não é afetada pela opção 11 Desativado:Imposição do Script. Para obter mais informações sobre como permitir ou negar objetos COM, veja Permitir o registo de objetos COM.
Scripts que não são controlados diretamente pelo Controlo de Aplicações
O Controlo de Aplicações não controla diretamente a execução de código através do Processador de Comandos do Windows (cmd.exe), incluindo .batficheiros de script /.cmd. No entanto, tudo o que um script de lote tentar executar está sujeito ao controlo de Controlo de Aplicações. Se não precisar de executar cmd.exe, recomenda-se bloqueá-lo imediatamente ou permitir apenas por exceção com base no processo de chamada. Veja Utilizar uma política do Controlo de Aplicações para Empresas para controlar plug-ins, suplementos e módulos específicos.
O Controlo de Aplicações não controla os scripts executados através de um anfitrião de scripts sem iluminação, como muitos motores Java ou Python de terceiros. Se a política de Controlo de Aplicações permitir a execução de um anfitrião de scripts não esclarido, permite implicitamente que todos os scripts sejam executados nesse anfitrião. Para anfitriões de scripts que não sejam da Microsoft, deve marcar ao fornecedor de software se os anfitriões de script são otimizados para a política de Controlo de Aplicações.