IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Erreur lancement Script VBS


Sujet :

VBScript

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Erreur lancement Script VBS
    Bonjour,

    Je suis alternance et je fais de la supervision avec Nagios. Mon tuteur m'a demandé de superviser la DFS de Windows, je me suis renseigné et c'est finalement possible : https://exchange.nagios.org/director...ackLog/details

    Sur le site de Nagios Exchange, j'ai trouvé un script VBS, impossible de lancer sous Windows server 2016, j'ai un message d'erreur qui apparaît :

    Nom : Erreur.PNG
Affichages : 597
Taille : 9,1 Ko


    De plus, quand j'essaye de l'éxécuter par mon serveur Centos 7 avec NRPE, le message d'erreur est :

    Nom : error nagios_censored.jpg
Affichages : 567
Taille : 11,0 Ko

    Je vous partage le script utilisé :

    Nom : script.PNG
Affichages : 675
Taille : 67,0 Ko

    je vous souhaite une bonne journée !

    Cordialement,
    Maxime

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Salut Maxime91, bienvenue sur DVP

    Un copier/coller du code serait plus pratique qu'une captrue d'écrcran, cela nous permettrai à nous aussi de faire du copier/coller plutôt que de retaper ton code

    Essais une conversion plus grande, Clng ou Cdbl devrait être bon.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Script copié/collé
    Bonjour ProgElect,

    Merci de ta réponse, j'ai essayer d'utiliser tes deux solutions mais toujours le même problème.

    Voici le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    strComputer = "." 
    statecount = 0
    mbcount = 0
    counter = 0
    BadGroupName = ""
    Allgood = ""
    Dim state(5)
    state(0) = "Uninitialized"
    state(1) = "Initialized"
    state(2) = "Initial Sync"
    state(3) = "Auto Recovery"
    state(4) = "Normal"
    state(5) = "In Error"
    const intOK = 0
    const intWarning = 1	
    const intCritical = 2
    const intUnknown = 3	
     
     
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\MicrosoftDfs") 
    Set colItems = objWMIService.ExecQuery( _
        "SELECT * FROM DfsrReplicatedFolderInfo",,48) 
    For Each objItem in colItems 
    'Check State
    If objItem.State = 4 then
    'State Good, Check Conflict Size
    If CInt(objItem.CurrentConflictSizeInMb) < CInt(WScript.Arguments.Item(0)) then
    'Conflict Size Good, Check if first variable addition
     
    If Allgood = "" then
    Allgood = "State - " & state(objItem.State) & "  " & objItem.ReplicatedFolderName & " - " & objItem.CurrentConflictSizeInMb & "MB out of synch" & Chr(10)
    else
    Allgood = Allgood & "State - " & state(objItem.State) & "  " & objItem.ReplicatedFolderName & " - " & objItem.CurrentConflictSizeInMb & "MB out of synch" & Chr(10)
    end if
     
    else
    'Conflict Size Bad, Check if first variable addition
    mbcount = mbcount + 1
    If BadGroupName = "" then
    BadGroupName = objItem.ReplicatedFolderName & " - " & objItem.CurrentConflictSizeInMb & "MB out of synch"
    else
    BadGroupName = BadGroupName & " / " & objItem.ReplicatedFolderName & " - " & objItem.CurrentConflictSizeInMb & "MB out of synch; -"
    end if
     
    end if
     
     
    else
    'State Bad, Check if first variable addition
    statecount = statecount + 1
    If BadGroupName = "" then
    BadGroupName = objItem.ReplicatedFolderName & " - " & state(objItem.State) & Chr(10)
    else
    BadGroupName = BadGroupName & " , " & objItem.ReplicatedFolderName & " - " & state(objItem.State) & Chr(10)
    end if
     
    end if
    counter = counter + 1
    Next
     
      if statecount > 0 then
        wscript.echo "CRITICAL - " & statecount & " Replication Group(s) Not in Normal state.  - " & BadGroupName
    	wscript.echo BadGroupName
        wscript.quit(intCritical)
      else
        if mbcount > 0 then
        wscript.echo "Warning - " & mbcount & " Outside of conflict size in MB specified." & BadGroupName
    	wscript.echo BadGroupName
        wscript.quit(intWarning)
      else
        wscript.echo counter & " Replication groups passed, all under " & CInt(WScript.Arguments.Item(0)) & "MB synch difference."
    	wscript.echo Allgood
        wscript.quit(intOK)
    	end if
      end if

  4. #4
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Re

    Sachant que:
    CurrentConflictSizeInMb en Type uint32 = plage 0 à 4 294 967 295

    Alors que Cint renvoie un entier dans la plage -32 768 à 32 767 <---- trop petit
    Clng converti en entier plage de -2 147 483 648 à 2 147 483 647 <---- trop petit
    Ccur converti en décimale plage comprise entre -922 337 203 685 477,5808 et 922 337 203 685 477,5807 <--- suffisamment grand

    Essais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Ccur(objItem.CurrentConflictSizeInMb) < Ccur(WScript.Arguments.Item(0)) then
    Reste encor un doute, quelle valeur peut prendre l'une et l'autre des valeurs: CurrentConflictSizeInMb et Item(0).
    Peut être à vérifier avec cette ligne pour debuguer, juste avant la ligne If .... Then
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "objItem.CurrentConflictSizeInMb = " & objItem.CurrentConflictSizeInMb & vbNewline & "WScript.Arguments.Item(0) = " & WScript.Arguments.Item(0)

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 33
    Points : 54
    Points
    54
    Par défaut
    Bonjour,
    WScript.Arguments.Item(0) permet de récupérer des paramètres en entrée du fichier vbscript

    test.vbs argument

  6. #6
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Salut

    objItem.CurrentConflictSizeInMb est de type numérique
    Es tu sûr que Arguments.Item(0) est lui aussi de type numérique ?
    Citation Envoyé par ProgElecT
    Reste encor un doute, quelle valeur peut prendre l'une et l'autre des valeurs: CurrentConflictSizeInMb et Item(0).
    Peut être à vérifier avec cette ligne pour debuguer, juste avant la ligne If .... Then
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "objItem.CurrentConflictSizeInMb = " & objItem.CurrentConflictSizeInMb & vbNewline & "WScript.Arguments.Item(0) = " & WScript.Arguments.Item(0)

  7. #7
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Salut

    Pour vérifier, en debug, les arguments passés au lancement du programme, ajoutes ces quelque lignes en tout début de ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim RecupArguments
    If wscript.Arguments.length >= 2 then
    	RecupArguments = wscript.FullName & vbNewLine & "Le/les argument(s) sont:"
     
    	For T = 0 to wscript.Arguments.length-1
    		RecupArguments = RecupArguments & vbnewline & "Arg. N°" & T+1 & " " & wscript.arguments(T)
    	Next
    	MsgBox RecupArguments, vbinformation, T & " argument(s)"
    	Else
    	MsgBox "Le programme ""Argument.vbs"" a été lancé sans aucun argument.", vbinformation
    End If

Discussions similaires

  1. [XL-2013] Erreur automation script vbs
    Par Terim dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 29/10/2014, 16h11
  2. Erreur au lancement à distance script VBS
    Par samworld dans le forum VBScript
    Réponses: 0
    Dernier message: 04/01/2013, 10h54
  3. Erreur script VBS avec les "dossiers virtuels" Vista
    Par Aquafresh dans le forum Windows Vista
    Réponses: 2
    Dernier message: 04/10/2007, 18h08
  4. Gestion erreur SQL Serveur dans un Script VBS
    Par jayan dans le forum VBScript
    Réponses: 3
    Dernier message: 08/02/2007, 14h06
  5. erreur script vbs
    Par france38 dans le forum VBScript
    Réponses: 4
    Dernier message: 14/10/2006, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo