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

Boucle infinie d'appel de scripts. [Résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 11-02-2011 à 12:20:45    

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
Reply

Marsh Posté le 11-02-2011 à 12:20:45   

Reply

Marsh Posté le 11-02-2011 à 13:15:26    

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.

Reply

Marsh Posté le 11-02-2011 à 14:01:45    

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.

Reply

Marsh Posté le 11-02-2011 à 14:46:05    

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.
 

Reply

Marsh Posté le 11-02-2011 à 14:59:43    

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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed