O Windows console .exe não será executado se for baixado da Internet

1

Eu tenho um trabalho noturno no Windows Server 2003 que se atualiza automaticamente baixando o .exe do Amazon S3. Eu notei que quando ele executa o download e tenta executar o .exe recém-baixado, ele é imediatamente retrocedido de volta para a linha de comando sem realmente executar nada.

Eu posso verificar isso colocando a nova versão do código diretamente no servidor e vendo-a ser executada com sucesso, então carregue-a no servidor de "atualização", executando o bootstrapper e executando o .exe e observando a falha na execução.

Só posso supor que isso se deva ao fato de o Windows estar me protegendo contra a execução de códigos fora da sua zona confiável. Como um fella vai configurá-lo para permitir que o código dessa localização externa específica seja executado?

Obrigado!

    
por Jason Kester 03.05.2010 / 01:27

4 respostas

1

O Windows controla se um arquivo foi ou não baixado da Internet (ou expandido de um arquivo zip, até mesmo) pelo uso de fluxos de arquivos. Há um fluxo associado ao .exe que efetivamente diz "Eu vim de www.example.com".

Se você quiser desabilitá-lo para esse arquivo, e como é um trabalho em lotes, você pode excluir o fluxo usando

link

HTH

    
por 05.05.2010 / 20:07
0

Talvez adicionando seu URL S3 à sua zona confiável?

    
por 03.05.2010 / 04:24
0

Tente isto: vá para o arquivo recém-baixado, clique com o botão direito do mouse e aumente as propriedades, verifique se há um botão 'Desbloquear'. Se você baixar um executável, você precisa permitir que ele seja executado. Não tenho certeza de como fazer isso no script, então isso não corrigirá seu problema, mas poderá aproximá-lo um pouco mais.

    
por 03.05.2010 / 04:45
0

Se você quiser desabilitar a verificação de zona, defina a variável de ambiente SEE_MASK_NOZONECHECKS = 1, mas não o faça. Execute o seu executável através deste script:

set oShell= CreateObject("Wscript.Shell")

set oEnv = oShell.Environment("PROCESS")

oEnv("SEE_MASK_NOZONECHECKS") = 1

oShell.Run "c:\myexecutablepath\myexecutable.exe",0,True

oEnv.Remove("SEE_MASK_NOZONECHECKS")
    
por 03.05.2010 / 05:58