Estoy ejecutando Windows 7 y cuando intento ejecutar un archivo por lotes, dice: "No se pudo verificar el editor. ¿Está seguro de que desea ejecutar este software?"
Entonces, cuando trato de firmarlo con mi certificado de firma de código, dice "Error de SignTool: este formato de archivo no se puede firmar porque no se reconoce".
Así que estoy atrapado entre una roca y un lugar difícil. ¿Hay alguna forma de eliminar cualquiera de los mensajes?
Respuestas:
Recibo un mensaje similar si ejecuto archivos por lotes (u otros ejecutables) desde una ubicación de red. Si este es el caso, puede considerar moverlo a una unidad local. Otra alternativa es utilizar un archivo por lotes separado en la unidad local para iniciar el archivo en la red. El archivo por lotes de inicio solo necesita tener una línea:
Windows no rechazará el archivo local, y una vez que el archivo se esté ejecutando, puede llamar a la versión de red sin problemas.
fuente
E:
es un disco mapeado en red?No firmas archivos por lotes. Parece que su archivo por lotes está llamando a otra cosa que debería firmarse.
Editar: ahora que ha publicado un archivo por lotes, podemos ver que se debe a la ubicación de la red. O, a veces sucederá si simplemente copia un archivo desde una ubicación de red. En el último caso, es porque Windows ha etiquetado el archivo a través de un flujo de datos alternativo para estar en alguna otra zona de Internet. Puede sortear esta de dos maneras:
type thefile.bat > %temp%\newfile.bat & type %temp%\newfile.bat > thefile.bat
fuente
Lo que está viendo es un mensaje general que proporciona Windows cada vez que intenta abrir cualquier archivo descargado. Lo que sucede es que cuando descargas un archivo, está etiquetado con una bandera que indica que proviene de Internet y, por lo tanto, es potencialmente peligroso. Cuando intenta ejecutar dicho archivo, Windows verifica si tiene una firma válida para determinar si se puede confiar en él.
Lo que puede hacer es quitar la bandera del archivo usando el botón Desbloquear en las propiedades del archivo, después de lo cual, Windows lo dejará solo cada vez que intente ejecutarlo:
El problema es que los archivos por lotes son archivos de texto que se pueden ejecutar. Si bien es posible firmar un archivo de texto, terminará agregando un montón de datos binarios al archivo que para un archivo por lotes es malo porque es un galimatías y causará problemas cuando el intérprete de comandos intente ejecutarlo. Comentar la firma tampoco funcionará porque la firma se corrompe.
Por lo tanto, firmar un archivo por lotes no va a funcionar.
Lo que debe hacer es descubrir por qué el sistema le está solicitando cuando intenta ejecutarlo. De manera predeterminada, Windows no pregunta antes de ejecutar archivos por lotes, por lo que debe tener una política especial o un programa de seguridad que lo bloquee. Verifique su (s) programa (s) de seguridad para ver si hay una configuración de verificación para la que puede deshabilitar o agregar una exclusión.
También verifique el contenido del archivo por lotes para ver si está ejecutando un ejecutable que no está firmado (aunque nuevamente, de manera predeterminada, Windows no solicita ejecutables a menos que se haya descargado o requiera privilegios elevados, así que verifique su configuración).
fuente
goto :eof
antes de la firma, pero eso alteraría el hash del archivo y haría que la firma no sea válida y, por lo tanto, el archivo esté dañado / inseguro. Sin embargo, supongo que podría tener la línea allí al final del archivo antes de firmarlo, y debería funcionar. Experimento interesante para probar ...También puede convertir el archivo .bat en un script de PowerShell, signtool admite la firma de estos archivos.
fuente