Erreur de compilation

Bonjour,

J'ai trouvé un script en VBS qui devrait me créer un point de restauration. Je voudrais le placer dans le planificateur de tâches pour créer régulièrement des points de restauration.

==== If WScript.Arguments.Count = 0 Then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "wscript.exe", Chr(34) & WScript.ScriptFullName &
Chr(34) & "Run", , "runas", 1
Else
GetObject(" winmgmts:\.rootdefault:Systemrestore ").CreateRestorePoint
InputBox(" Point de restauration manuel par script "), 0, 100
Msgbox(" Point de restauration créé! ")
End If
====

Mais là, si je l'exécute j'ai le message d'erreur :
Ligne=1, Caract=11, Erreur=Fin d'instruction attendue, Code=800A0401, Source=Erreur de compilartion Microsoft VBScript.

Et comme je n'y connais rien en vbs, merci de m'aider !

7 réponses

  1. Merci de me répondre. J'avais effectivement regarder pour poster un code en vbs, mais j'avais pas trouvé.
    J'y met donc des balises js en espérant que ça suffise
    ==== If WScript.Arguments.Count = 0 Then 
    Set objShell = CreateObject("Shell.Application") 
    objShell.ShellExecute "wscript.exe", Chr(34) & WScript.ScriptFullName & 
    Chr(34) & "Run", , "runas", 1 
    Else 
    GetObject(" winmgmts:\.rootdefault:Systemrestore ").CreateRestorePoint 
    InputBox(" Point de restauration manuel par script "), 0, 100 
    Msgbox(" Point de restauration créé! ") 
    End If 
    ==== 
    0
    1. Modérateur
      Donc ton souci vient du début de ton script ...(et de la fin)
      retire les ====
      0
  2. Merci jordane45 pour ton aide !

    Tout d'abord, quand j'ouvre le "planificateur de tâche", j'ai les messages : l'image de la tâche est endommagée ou a été manipulée.mcupdate
    et
    l'image de la tâche est endommagée ou a été manipulée.Reminders - Thierry

    Si je test la tâche ci dessus, soit
    If WScript.Arguments.Count = 0 Then
    Set objShell = CreateObject("Shell.Application")
    objShell.ShellExecute "wscript.exe", Chr(34) & WScript.ScriptFullName &
    Chr(34) & "Run", , "runas", 1
    Else
    GetObject(" winmgmts:\.rootdefault:Systemrestore ").CreateRestorePoint
    InputBox(" Point de restauration manuel par script "), 0, 100
    Msgbox(" Point de restauration créé! ")
    End If

    J'ai le message d'erreur :
    Ligne = 3
    Caract.=72
    Erreur=Erreur de syntaxe
    Code=800A03EA
    Source=Errer de compilation Microsoft VBScript
    0
    1. Modérateur

      Tout d'abord, quand j'ouvre le "planificateur de tâche", j'ai les messages

      Aucun rapport avec la "programmation" mais avec le fonctionnement de ton ordi.....
      Une rapide recherche sur le net m'a permit de tomber sur ces deux choses :

      https://www.numerama.com/discussions/t/repair-tasks-le-petit-utilitaire-bien-utile-pour-reparer-les-taches-planifiees-windows-corrompues/37285/

      http://www.forum-vista.net/forum/topic12801.html

      Pour ce qui est de l'erreur dans ton code ....
      Commence par placer la commande dans une varible puis affiche la pour voir ce qu'elle contient
      cmd = "wscript.exe", Chr(34) & WScript.ScriptFullName & Chr(34) & "Run", , "runas", 1
      msgbox cmd
      objShell.ShellExecute  cmd
      
      0
  3. Pour ce qui est des erreurs au lancement du planificateur de tâches, en utilisant l'utilitaire pour réparer les tâches planifiées, je n'ai plus de message !
    Peut-être que grâce à ça, la restauration se refera automatiquement ???!!!

    Pour ce qui est de l'erreur dans mon code, je ne comprends pas ce que je dois faire ............. !?
    Par acquis de conscience, je enregistré tes 4 lignes ci-dessus au format vbs puis exécuté à l'aide du planificateur de tâches.
    J'ai l'erreur :
    Ligne = 1
    Caract. = 20
    Erreur = Fin d'instruction attendue
    Code = 800A0401
    Source = Erreur de compilation Microsoft VBS
    0
    1. Modérateur
      Je n'avais pas bien regardé la ligne de code en question...

      Mais :
      1 - Pour tester un code ... il faut déjà le faire sans passer par le planificateur de tâches
      2 - Eviter les retours à la ligne et bien séparer les & par des espaces avant et après.
      => En recopiant ton code d'origine .. il semble qu'il manquait un espace après le troisième &

      Donc...
      Ton code d'origine :
      If WScript.Arguments.Count = 0 Then
       Set objShell = CreateObject("Shell.Application")
       objShell.ShellExecute "wscript.exe", Chr(34) & WScript.ScriptFullName & Chr(34) & "Run", , "runas", 1
      Else
       GetObject(" winmgmts:\.rootdefault:Systemrestore ").CreateRestorePoint
       InputBox(" Point de restauration manuel par script "), 0, 100
       Msgbox(" Point de restauration créé! ")
      End If
      

      Fonctionne parfaitement....
      Tu n'as qu'à tester le vbs directement pour t'en rendre compte.
      0
  4. Merci jordane45.
    J'ai exécuter le script en vbs à partir du planificateur de tâches, et j'ai le message :
    Il n'y a pas de moteur de script pour l'extension de fichier ".vbsRun"
    0
    1. Mais l'extension est bien ".vbs" !!!!???
      Il n'y aurait pas un paramètre pour activer le moteur vbs dans le registre ??
      0
      1. Modérateur
        Si le script VBS fonctionne lorsque tu le lances à la main ... c'est qu'il marche.
        Pour les erreurs liées au planificateur de tâches ...cela relève du SYSTEME et non de la programmation...
        0
    2. En double-cliquant sur l’icône du script, j'ai le même message d'erreur ..........
      0
      1. @jordane45J'ai été vérifier les clés du registre comme noté dans le lien, et elles sont toutes ok !
        0
      2. Modérateur
        @t671poste une question dans le forum windows ( correspondant à ta version).
        0