J'exécute Windows 7 et lorsque j'essaie d'exécuter un fichier de commandes, il dit: «L'éditeur n'a pas pu être vérifié. Voulez-vous vraiment exécuter ce logiciel?»
Ainsi, lorsque j'essaie de le signer avec mon certificat de signature de code, il indique «Erreur SignTool: ce format de fichier ne peut pas être signé car il n'est pas reconnu».
Je suis donc coincé entre un rocher et un endroit dur. Existe-t-il un moyen d'éliminer l'un ou l'autre des messages?
Réponses:
J'obtiens un message similaire si j'exécute des fichiers batch (ou d'autres exécutables) à partir d'un emplacement réseau. Si tel est le cas, vous pouvez envisager de le déplacer vers un lecteur local. Une autre alternative consiste à utiliser un fichier de commandes distinct sur le lecteur local pour lancer celui sur le réseau. Le fichier batch de lancement n'a besoin que d'une seule ligne:
Windows ne rechignera pas sur le fichier local, et une fois que ce fichier est en cours d'exécution, il peut appeler la version réseau sans problème.
la source
E:
est donc un lecteur mappé réseau?Vous ne signez pas de fichiers batch. Il semble que votre fichier de commandes appelle quelque chose d'autre qui devrait être signé.
Modifier: Maintenant que vous avez publié un fichier de commandes, nous pouvons voir que c'est à cause de l'emplacement réseau. Ou, parfois, cela se produira si vous copiez simplement un fichier à partir d'un emplacement réseau. Dans ce dernier cas, c'est parce que Windows a marqué le fichier via un autre flux de données pour se trouver dans une autre zone Internet. Vous pouvez contourner celle-ci de deux manières:
type thefile.bat > %temp%\newfile.bat & type %temp%\newfile.bat > thefile.bat
la source
Ce que vous voyez est une invite générale que Windows fournit chaque fois que vous essayez d’ouvrir à tout moment un fichier téléchargé. Ce qui se passe, c'est que lorsque vous téléchargez un fichier, il est marqué d'un indicateur qui indique qu'il provient d'Internet et qu'il est donc potentiellement dangereux. Lorsque vous essayez d'exécuter un tel fichier, Windows vérifie s'il a une signature valide afin de déterminer s'il peut être approuvé.
Ce que vous pouvez faire est de supprimer l'indicateur du fichier en utilisant le bouton Débloquer dans les propriétés du fichier, après quoi Windows vous laissera tranquille chaque fois que vous essayez de l'exécuter:
Le problème est que les fichiers batch sont des fichiers texte qui peuvent être exécutés. Bien qu'il soit possible de signer un fichier texte, il finira par ajouter un tas de données binaires au fichier qui, pour un fichier de commandes, est mauvais car il est du charabia et causera des problèmes lorsque l'interpréteur de commandes tentera de l'exécuter. La mise en commentaire de la signature ne fonctionnera pas non plus, car alors la signature est corrompue.
Par conséquent, la signature d'un fichier de commandes ne fonctionnera pas.
Ce que vous devez faire est de comprendre pourquoi le système vous invite lorsque vous essayez de l'exécuter. Par défaut, Windows ne demande pas avant d'exécuter des fichiers batch, vous devez donc avoir une stratégie spéciale ou un programme de sécurité qui le bloque. Vérifiez vos programmes de sécurité pour voir s'il existe un paramètre de vérification pour lequel vous pouvez désactiver ou ajouter une exclusion.
Vérifiez également le contenu du fichier de commandes pour voir s'il exécute un exécutable qui n'est pas signé (mais encore une fois, par défaut, Windows ne demande pas d'exécutables sauf s'il a été téléchargé ou nécessite des privilèges élevés, alors vérifiez vos paramètres).
la source
goto :eof
avant la signature, mais cela modifierait le hachage du fichier et rendrait la signature invalide et donc le fichier comme corrompu / non sécurisé. Je suppose que vous pourriez avoir la ligne à la fin du fichier avant de le signer, et cela devrait fonctionner. Expérience intéressante à essayer…Vous pouvez également convertir le fichier .bat en un script PowerShell, signtool prend en charge la signature de ces fichiers.
la source