Exécution de script VBS bloquée sous Windows 10
Publier cette question au nom de GNU Octave en essayant de résoudre les problèmes d'exécution. Récemment, une poignée d’utilisateurs Windows ont installé le logiciel et n’ont pas pu l’exécuter. Souvent, ils ne reçoivent pas d'erreurs, de messages ou de commentaires utiles, ils double-cliquent sur l'icône de démarrage et rien ne se passe .
Dans un cas récent, nous avons pu travailler avec l'utilisateur pour limiter le problème à son système incapable d'exécuter des scripts VBS. Octave utilise un octave.vbsfichier (appelé avec wscript) pour définir le chemin et les variables d'environnement et démarrer le programme.
Tentatives de diagnostic en cours:
- L'utilisateur a créé un script de test simple sur son bureau selon cet exemple pour afficher simplement une boîte de dialogue système. Il est incapable d'exécuter le script et n'obtient aucune fenêtre contextuelle ou message d'erreur.
- S'il avait déplacé le fichier à différents endroits, comme
C:\temple même dossier qu'Octave, etc., et le fichier ne s'exécuterait pas. - Vérifié l'existence de wscript en le faisant exécuter à
wscriptpartir de la boîte de dialogue d'exécution, et la boîte de dialogue "Paramètres de l'hôte de script Windows" est apparue. - Un clic droit sur le fichier de script et la vérification de Ouvrir avec montrent que l'association de fichier par défaut est avec "l'hôte de script basé sur Microsoft Windows" comme il se doit (et un clic ne produit aucune exécution de script.)
- Maj-clic droit et «exécuter en tant qu'administrateur» ne fait aucune différence.
- La désactivation temporaire de la protection antivirus en temps réel ne fait aucune différence.
- Vérifié les entrées de registre pour s'assurer qu'il n'y a pas de clé Enabled = 0 selon cet article (il n'y en a pas).
Quelqu'un peut-il fournir des conseils sur les paramètres Windows ou autres qui empêcheraient les scripts vbs de s'exécuter, et comment nous pouvons résoudre ce problème? Ou quelles autres choses à vérifier pour identifier le problème? Existe-t-il un nouveau paramètre de sécurité par défaut dans Windows ou des mises à jour qui en tiennent compte?
L'utilisateur exécute Windows 10 Home et Windows Defender intégré et les dernières mises à jour. Ce n'est pas un système géré. Aucun paramètre de sécurité spécial n'a jamais été modifié délibérément / sciemment par lui. Informations sur la version ci-dessous:
- Spécifications Windows:
- Édition: Windows 10 Famille
- Version: 2004
- Installé le: 2020-01-10
- Version du système d'exploitation: 19041.421
- Expérience: Windows Feature Experience Pack 120.2212.31.0
Pour référence, le fil de discussion original avec ce problème peut être trouvé sur le forum de discussion Octave , mais je pense avoir capturé toutes les informations pertinentes ci-dessus.
EDIT: Ajout d'une note à partir d'une discussion de liste de mainteneurs - pour les utilisateurs qui ne peuvent pas exécuter un fichier vbs pour une raison quelconque, le octave.batfichier est toujours présent sur le système, situé dans le mingw64/bindossier. Un utilisateur peut modifier les raccourcis du bureau pour pointer vers ce fichier au lieu du octave.vbsfichier et l'octave devrait s'exécuter sans problème, bien qu'il puisse y avoir des changements esthétiques avec des fenêtres d'invite de commande supplémentaires visibles parfois.
Réponses
Sur la base du journal ProcMon , il a été constaté que wscript.exe chargeait 4 modules logiciels antivirus (3 modules Avast et 1 module McAfee IOfficeAntiVirus).
Le module McAfee IOfficeAntiVirus est le coupable le plus probable qui empêche l' wscript.exeexécution de scripts.
La désinstallation complète de McAfee devrait résoudre le problème.
Diagnostic
Assurez-vous que cela "%SystemRoot%\System32\WScript.exe"existe. Vous pouvez vérifier cela avec l'explorateur de fichiers (appuyez sur WIN+ E) - tapez le chemin %SystemRoot%\System32dans la zone de texte de l'explorateur de fichiers pour afficher ce répertoire, puis recherchez WScript.exe-le.
Ouvrez une fenêtre de commande (appuyez sur WIN+ Rpuis sur Entrée cmd.exe) et tapez ce qui suit:
ftype | find /I "VBS"
Cela devrait donner le résultat:
VBSFile="%SystemRoot%\System32\WScript.exe" "%1" %*
Puis vérifier
assoc .vbs
qui devrait montrer:
.vbs=VBSFile
Réparer
Si l'un des éléments ci-dessus n'est pas correctement défini, votre fichier VBS ne fonctionnera pas. Pour corriger le type de fichier (FTYPE), exécutez simplement la commande
ftype VBSFile="%SystemRoot%\System32\WScript.exe" "%1" %*
Pour corriger l'association, exécutez la commande
assoc .vbs=VBSFile
Si tout est correctement défini et que le problème persiste, il est probable qu'un logiciel anti-malware bloque l'exécution - dans ce cas, regardez la réponse donnée par w32sh.
Je ne sais pas si cela va aider ou non, mais je voulais partager mon expérience dans la résolution de symptômes similaires observés après la mise à niveau de mon appareil avec les spécifications suivantes
- Édition Windows 10 Professionnel
- Version 2004
- Build du système d'exploitation 19041.450
- Découvrez Windows Feature Experience Pack 120.2212.31.0
L'appareil n'a qu'un seul VBScript qui est censé fonctionner au démarrage mais qui a cessé de le faire juste après la mise à niveau. Il convient également de mentionner que le script n'existait pas lorsque les mises à niveau précédentes ont été installées, donc à ce stade, je ne peux pas dire si le problème est spécifique à la version 2004 ou s'il s'agit d'un problème qui concerne les mises à niveau W10 en général.
Le problème observé est qu'au lieu d'être exécuté au démarrage, Notepad ++ ouvrait une page affichant le contenu du script. J'ai également remarqué que l'icône associée au fichier contenant le script avait été remplacée par l'icône Notepad ++ après la mise à niveau.
Je suis donc allé vérifier l'association de fichier dans l'interface utilisateur W10 (Démarrer> Paramètres> Applications> Applications par défaut> Choisir les applications par défaut par type de fichier), et ici j'ai pu voir que l'extension .vbs était déjà attribuée à "Microsoft Windows Based Script Hôte". J'ai ensuite changé l'application par défaut en sélectionnant à nouveau manuellement "Hôte de script basé sur Microsoft Windows", puis soudainement le fichier a commencé à afficher l'icône générée par Microsoft pour les éléments .vbs.
De là, j'ai pu exécuter le script manuellement et automatiquement au démarrage.
D'un côté, j'ai également vu mon AV bloquer certaines commandes PowerShell (mais pas toutes) lorsqu'il est appelé directement à partir d'un module Excel VBA, mais cela n'a jamais eu d'impact sur l'exécution du script susmentionné.
Vous devriez vérifier s'il n'y a pas d'autre antivirus qui bloque l'exécution de votre fichier vbs!