1 votes

Le fichier .exe de la console Windows ne s'exécute pas s'il a été téléchargé sur Internet.

J'ai un travail de nuit sur Windows Server 2003 qui se met automatiquement à jour en téléchargeant son .exe depuis Amazon S3. J'ai remarqué que lorsqu'il effectue le téléchargement et essaie d'exécuter le fichier .exe nouvellement téléchargé, il est immédiatement renvoyé à la ligne de commande sans exécuter quoi que ce soit.

Je peux vérifier cela en plaçant la nouvelle version du code directement sur le serveur et en la regardant s'exécuter avec succès, puis en la téléchargeant sur le serveur "update", en exécutant le bootstrapper puis en exécutant le .exe et en observant qu'il ne s'exécute pas.

Je ne peux que supposer que cela est dû au fait que Windows me protège contre l'exécution de code provenant de l'extérieur de sa zone de confiance. Comment faire pour configurer Windows de manière à autoriser l'exécution de code provenant de cet emplacement externe particulier ?

Gracias.

1voto

onit Points 191

Windows vérifie si un fichier a été ou non téléchargé depuis l'internet (ou développé à partir d'un fichier zip, même) en utilisant les flux de fichiers. Il existe un flux associé au fichier .exe qui dit effectivement "Je viens de www.example.com".

Si vous voulez le désactiver pour ce fichier, et puisqu'il s'agit de toute façon d'un travail par lot, vous pouvez supprimer le flux en utilisant la commande suivante

http://www.microsoft.com/technet/sysinternals/utilities/Streams.mspx

HTH

0voto

Peut-être en ajoutant votre URL S3 à votre zone de confiance ?

0voto

Dan Points 488

Essayez ceci : allez sur le fichier nouvellement téléchargé, faites un clic droit et affichez les propriétés, vérifiez s'il y a un bouton "Débloquer". Si vous téléchargez un exécutable, vous devez l'autoriser spécifiquement à s'exécuter. Je ne suis pas sûr de savoir comment faire cela dans script, donc cela ne résoudra pas votre problème mais peut vous rapprocher un peu plus.

0voto

Rob Howard Points 636

Si vous voulez désactiver la vérification des zones, définissez la variable d'environnement SEE_MASK_NOZONECHECKS=1, mais ne le faites pas. Exécutez votre exécutable via ce script à la place :

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")

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X