Estou executando o Windows 7 e quando tento executar um arquivo em lotes, ele diz: "O editor não pôde ser verificado. Tem certeza de que deseja executar este software?"
Portanto, quando tento assiná-lo com meu certificado de assinatura de código, ele diz "Erro no SignTool: este formato de arquivo não pode ser assinado porque não é reconhecido".
Então, eu estou preso entre uma rocha e um lugar difícil. Existe uma maneira de eliminar qualquer mensagem?
Respostas:
Recebo uma mensagem semelhante se executar arquivos em lote (ou outros executáveis) de um local de rede. Se for esse o caso, considere movê-lo para uma unidade local. Outra alternativa é usar um arquivo em lotes separado na unidade local para iniciar o arquivo na rede. O arquivo em lotes de inicialização precisa ter apenas uma linha:
O Windows não aceita o arquivo local e, uma vez executado, pode chamar a versão da rede sem problemas.
fonte
E:
é uma unidade mapeada em rede?Você não assina arquivos em lote. Parece que seu arquivo em lote está chamando outra coisa que deve ser assinada.
Editar: agora que você postou um arquivo em lotes, podemos ver que é por causa do local da rede. Ou, às vezes, acontecerá se você simplesmente copiar um arquivo de um local de rede. No último caso, é porque o Windows marcou o arquivo por meio de um Fluxo de dados alternativo em outra zona da Internet. Você pode contornar essa de duas maneiras:
type thefile.bat > %temp%\newfile.bat & type %temp%\newfile.bat > thefile.bat
fonte
O que você vê é um prompt geral que o Windows fornece sempre que você tenta abrir qualquer momento do arquivo que foi baixado. O que acontece é que, quando você baixa um arquivo, ele é marcado com uma bandeira que indica que ele veio da Internet e, portanto, é potencialmente perigoso. Quando você tenta executar esse arquivo, o Windows verifica se ele possui uma assinatura válida para determinar se é confiável.
O que você pode fazer é remover o sinalizador do arquivo usando o botão Desbloquear nas propriedades do arquivo, após o qual o Windows o deixará em paz sempre que você tentar executá-lo:
O problema é que arquivos em lote são arquivos de texto que podem ser executados. Embora seja possível assinar um arquivo de texto, ele acabará anexando um monte de dados binários ao arquivo, o que para um arquivo em lotes é ruim porque é sem sentido e causa problemas quando o interpretador de comandos tenta executá-lo. Comentar a assinatura também não funcionará porque a assinatura fica corrompida.
Portanto, assinar um arquivo em lotes não funcionará.
O que você precisa fazer é descobrir por que o sistema o solicita ao tentar executá-lo. Por padrão, o Windows não pergunta antes de executar arquivos em lote; portanto, você deve ter uma política ou programa de segurança especial bloqueando-o. Verifique seu (s) programa (s) de segurança para ver se há uma configuração de verificação na qual você pode desativar ou adicionar uma exclusão.
Verifique também o conteúdo do arquivo em lotes para ver se está executando um executável que não está assinado (embora, novamente, por padrão, o Windows não solicite executáveis, a menos que tenha sido baixado ou exija privilégios elevados, verifique suas configurações).
fonte
goto :eof
antes da assinatura, mas isso alteraria o hash do arquivo e tornaria a assinatura inválida e, portanto, o arquivo como corrompido / inseguro. Suponho que você possa ter a linha no final do arquivo antes de assiná-lo, e deve funcionar. Experiência interessante para tentar ...Você também pode converter o arquivo .bat em um script do PowerShell, pois o signtool suporta a assinatura desses arquivos.
fonte