Execução de script VBS bloqueada no Windows 10
Postando esta questão em nome do GNU Octave tentando solucionar problemas de execução. Recentemente, alguns usuários do Windows instalaram o software e não conseguiram executá-lo. Freqüentemente, eles não recebem erros, mensagens ou comentários úteis, clicam duas vezes no ícone de inicialização e nada acontece .
Em um caso recente, conseguimos trabalhar com o usuário para restringir o problema à incapacidade de seu sistema de executar scripts VBS. O Octave usa um octave.vbsarquivo (chamado com wscript) para definir o caminho e as variáveis de ambiente e iniciar o programa.
Tentativas de diagnóstico atuais:
- O usuário criou um script de teste simples em sua área de trabalho de acordo com este exemplo para apenas abrir uma caixa de diálogo do sistema. Ele não consegue executar o script e não recebe pop-up ou mensagem de erro.
- Ele moveu o arquivo para locais diferentes, como
C:\tempa mesma pasta do Octave, etc., e o arquivo não seria executado. - Verificou a existência do wscript fazendo-o executar a
wscriptpartir da caixa de diálogo Executar e a caixa de diálogo "Configurações do Host de Script do Windows" apareceu. - Clicar com o botão direito no arquivo de script e marcar Abrir com mostra que a associação de arquivo padrão é com "host de script baseado no Microsoft Windows" como deveria ser (e clicar em que não produz a execução do script).
- Clique com o botão direito do mouse e 'executar como administrador' não faz diferença.
- Desativar temporariamente a proteção em tempo real do Antivirus não faz diferença.
- Entradas de registro verificadas para ter certeza de que não há chave Enabled = 0 de acordo com este artigo (não há).
Alguém pode fornecer orientações sobre quais configurações do Windows ou outras configurações impediriam a execução de scripts vbs e como podemos corrigir esse problema? Ou que outras coisas devem ser verificadas para identificar o problema? Há alguma nova configuração de segurança padrão no Windows ou vem com atualizações que explicam isso?
O usuário está executando o Windows 10 Home, o Windows Defender integrado e as atualizações mais recentes. Não é um sistema gerenciado. Nenhuma configuração especial de segurança foi alterada deliberadamente / conscientemente por ele. Informações da versão abaixo:
- Especificações do Windows:
- Edição: Windows 10 Home
- Versão: 2004
- Instalado em: 2020-01-10
- Versão do SO: 19041.421
- Experiência: Windows Feature Experience Pack 120.2212.31.0
Para referência, o tópico de discussão original com este problema pode ser encontrado no fórum de discussão Octave , mas acho que capturei todas as informações relevantes acima.
EDITAR: Adicionando uma nota de uma discussão da lista de mantenedores - para usuários que não podem executar um arquivo vbs por qualquer motivo, o octave.batarquivo ainda está presente no sistema, localizado na mingw64/binpasta. Um usuário pode alterar os atalhos da área de trabalho para apontar para aquele arquivo em vez do octave.vbsarquivo e o oitavo deve ser executado sem problemas, embora possa haver algumas mudanças estéticas com janelas de prompt de comando adicionais visíveis às vezes.
Respostas
Com base no log do ProcMon , foi descoberto que wscript.exe estava carregando 4 módulos de software antivírus (3 Avast e 1 módulo McAfee IOfficeAntiVirus).
O módulo McAfee IOfficeAntiVirus é o culpado mais provável, que está bloqueando a wscript.exeexecução de scripts.
Desinstalar completamente o McAfee deve resolver o problema.
Diagnóstico
Certifique-se de que "%SystemRoot%\System32\WScript.exe"existe. Você pode verificar isso com o explorador de arquivos (pressione WIN+ E) - digite o caminho %SystemRoot%\System32na caixa de texto do explorador de arquivos para visualizar esse diretório e, em seguida, procure por WScript.exelá.
Abra uma janela de comando (pressione WIN+ e Rdepois digite cmd.exe) e digite o seguinte:
ftype | find /I "VBS"
Isso deve dar o resultado:
VBSFile="%SystemRoot%\System32\WScript.exe" "%1" %*
Então, verifique
assoc .vbs
que deve mostrar:
.vbs=VBSFile
Consertar
Se alguma das opções acima não estiver configurada corretamente, o arquivo VBS não será executado. Para corrigir o tipo de arquivo (FTYPE) basta executar o comando
ftype VBSFile="%SystemRoot%\System32\WScript.exe" "%1" %*
Para corrigir a associação, execute o comando
assoc .vbs=VBSFile
Se tudo estiver configurado corretamente e o problema ainda persistir, é provável que o software anti-malware esteja bloqueando a execução - nesse caso, verifique a resposta que w32sh deu.
Não sei se isso vai ajudar ou não, mas gostaria de compartilhar minha experiência na resolução de sintomas semelhantes observados após atualizar meu dispositivo para as especificações a seguir
- Edição Windows 10 Pro
- Versão 2004
- OS build 19041.450
- Experimente o Windows Feature Experience Pack 120.2212.31.0
O dispositivo tem apenas um VBScript que deveria estar em execução na inicialização, mas parou de funcionar logo após a atualização. Também vale a pena mencionar que o script não existia quando as atualizações anteriores foram instaladas, portanto, neste estágio, não posso dizer se o problema é específico da versão 2004 ou se este é um problema que pertence às atualizações do W10 em geral.
O problema observado é que em vez de ser executado na inicialização, o Notepad ++ estava abrindo uma página exibindo o conteúdo do script. Também notei que o ícone associado ao arquivo que contém o script foi alterado para o ícone do Notepad ++ após a atualização.
Então, fui verificar a associação do arquivo na IU do W10 (Iniciar> Configurações> Aplicativos> Aplicativos padrão> Escolha os aplicativos padrão por tipo de arquivo) e aqui pude ver que a extensão .vbs já estava atribuída ao "Script baseado no Microsoft Windows Hospedeiro". Em seguida, alterei o aplicativo padrão selecionando manualmente "Host de script baseado no Microsoft Windows" novamente e, de repente, o arquivo começou a exibir o ícone gerado pela Microsoft para itens .vbs.
A partir daí, consegui executar o script manual e automaticamente na inicialização também.
Por outro lado, uma observação: também vi meu AV bloqueando alguns comandos do PowerShell (mas não todos) quando chamado diretamente de um módulo VBA do Excel, mas isso nunca impactou a execução do script mencionado anteriormente.
Você deve verificar se não há outro antivírus que bloqueie a execução do seu arquivo vbs!