Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
976 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] Boucle infinie d'appel de scripts.

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Boucle infinie d'appel de scripts.

n°2056068
slr56
Tout problème a sa solution.
Posté le 11-02-2011 à 12:20:45  profilanswer
 

Bonjour,
 
Je vous présente la situation.
 
J'ai 3 fichiers : appli.bat, appli.msi, appli.vbs
 
 
Appli.bat permet de lancer l'installation globale qui consiste à appeler appli.msi et quand celui-ci à terminer, le bat appelle le vbs.
 
Le MSI copie des fichiers dans C:\Windows. OK
 
Ensuite, le Vbs, lance l'application qui a été installé pour permettre à celle-ci de créer un fichier XML.
L'application se ferme, et le VBS donne les droits de lecture et écriture au groupe "tout le monde" sur un répertoire et un fichier précis dans C:\Windows.
 
Cela fonctionne également.
 
En revanche ce qui me surpend, c'est que le vbs se lance en boucle même si je l'exécute manuellement. Et là, ça s'emballe au point de devoir forcer le redémarrage du poste.
 
Voici le script VBS :

Code :
  1. On error resume Next
  2. Dim WshShell, Group_Name
  3. SMC_Dlg_path = "C:\Windows\SMC_Dlg.exe"
  4. Stop_Process = "%COMSPEC% /c Echo Y| taskkill /IM SMC_Dlg.exe /T /F"
  5. Set WshShell = CreateObject("WScript.Shell" )
  6. BTL_directory = "C:\Windows\BTL"
  7. MCS6_file = "C:\Windows\MCS6xx32.xml"
  8. strComputer="."
  9. Set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2" )
  10. Set colItems = objWMI.ExecQuery("SELECT * FROM Win32_Account Where SID = 'S-1-1-0'" )
  11. For Each objItem in colItems
  12. Group_Name = Group_Name & objItem.Name
  13. Next
  14. WshShell.run SMC_Dlg_path, 5
  15. wscript.sleep 4000
  16. WshShell.run Stop_Process
  17. wscript.sleep 1000
  18. WshShell.Run("%COMSPEC% /k Echo Y| CACLS " & BTL_directory & " /T /C /G " & chr(34) & Group_Name & chr(34) & ":c" )
  19. wscript.sleep 3000
  20. WshShell.Run("%COMSPEC% /k Echo Y| CACLS " & MCS6_file & " /T /C /G " & chr(34) & Group_Name & chr(34) & ":c" )
  21. wscript.sleep 10000
  22. Set WshShell = nothing


 
Le problème se passe lorsque le script arrive sur les lignes surlignées.


Message édité par slr56 le 11-02-2011 à 15:00:36
mood
Publicité
Posté le 11-02-2011 à 12:20:45  profilanswer
 

n°2056087
billgatesa​nonym
Posté le 11-02-2011 à 13:15:26  profilanswer
 

Peut-être (je n'ai pas testé) que ce serait à cause des SendKeys qui suivent les Run.
 
Le SendKey va s'adresser à qui ?
A la fenêtre qui à le focus, et qui est ... ?
S'il adresse à l'Explorateur de fichiers, alors, il risque de relancer le VBS, lequel va refaire un SendKey, etc.

n°2056093
slr56
Tout problème a sa solution.
Posté le 11-02-2011 à 14:01:45  profilanswer
 

merci billgatesanonym mais j'avais oublié de retirer les Sendkey dans le poste ci-dessus, le problème ne vient pas de là. :(
 
Même sans les sendkey, le problème persiste.

n°2056113
slr56
Tout problème a sa solution.
Posté le 11-02-2011 à 14:46:05  profilanswer
 

Je viens de faire un test. Si je place le VBS dans un autre répertoire et que je l'exécute manuellement, ça fonctionne.
 

n°2056124
slr56
Tout problème a sa solution.
Posté le 11-02-2011 à 14:59:43  profilanswer
 

Bon, j'ai trouvé la solution.
 
Il falait que je mette, dans le .bat :
 
cscript %~dp0monscript.vbs au lieu de cscript monscript.vbs
 :ange:  
 
Tout ça pour ça. Je me disais bien aussi que je n'avais pas fait de boucle dans mes scripts. ^^


Message édité par slr56 le 11-02-2011 à 15:00:16

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] Boucle infinie d'appel de scripts.

 

Sujets relatifs
vérifierr stppp uune boucle d'étoile croissanteutilisation de sous fonction dans un objet et appel de methode dedans
boucle for pythonProbleme : Tableau perd ses valeurs une fois sortie de la boucle
Les scripts et outils en ligne qui vous facilitent la vie :o)Besoin d'aide sur une boucle "if else if else"
Batch : Compteur dans une boucle forScan d'un dossier image, lecture des images une par une en boucle
[SQLServer] appel de fonction avec un déclencheur sql server 2008Greasemonkey Boucle executée une seule fois
Plus de sujets relatifs à : [Résolu] Boucle infinie d'appel de scripts.


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR