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 :

[VBS] Problème reponse PING


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut [VBS] Problème reponse PING
    Bonjour a tous,

    je m'arrache les cheveux sur un problème que je n'arrive pas a comprendre. Je souhaiterais pingé un serveur et récupérer la réponse. Cette portion de code le fait très bien en local sur ma machine :

    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
     
    strComputer = "10.169.6.16"
     
    On Error Resume Next
    msgbox (strComputer)
    Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}!\\").ExecQuery("select * from Win32_PingStatus where address = '" & strComputer & "'")
    For Each objStatus in objPing
    If objStatus.Statuscode = 0 Then
                    msgbox (objStatus.Statuscode)
                    msgbox ("TEST OK")
            else
                    msgbox (objStatus.StatusCode)
                    msgbox ("TEST NOK")
            End If
    Next
    Mais dès que j'exporte le script sur ma machine de prod , il ne fonctionne plus. La 1ere msgbox ne me renvois meme plus le statusCode du ping, ce qui signifie que la requete ne s'effectue meme pas. Au final, j'ai toujours un résultat "TEST OK"...

    Ma machine de test est un WinXP et la machine de prod un Winserveur 2000. Y aurait il un rapport? Comment trouver une alternative si cette méthode ne fonctionne pas sous Win2000?

    Merci pour votre aide et bonne journée...

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Voici le lien vers l'aide MSDN pour l'objet Win32_PingStatus:
    https://msdn.microsoft.com/library/d...pingstatus.asp

    On peut lire en bas de la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Requirements
     
    Client        Requires Windows Vista or Windows XP.
    Server        Requires Windows Server "Longhorn" or Windows Server 2003.
    MOF           Declared in Wmipicmp.mof.
    DLL           Requires Wmipicmp.dll.
    Namespace     Defined in \root\cimv2.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Infos
    Merci beaucoup Cedric,
    j'aurais pu en effet me renseigner sur la MSDN.
    Est il possible a ton avis d'ajouter une dll pour rendre cette fonctionnalité disponible sur un win2000? ou comment puis je faire pour tester une connexion a partir d'une machine sur win2000?

    Bonne journée.

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Voila ce que j'ai trouvé sur le site de microsoft (http://www.microsoft.com/technet/scr...es/wmifaq.mspx):

    Q 6. Why does my script run on one version of Windows but not on another?

    This is typically due to the fact that classes, properties, or methods introduced in newer versions of Windows might not be available on previous versions of the operating system.
    To verify availability, look in the Requirements section for each class in the
    WMI Software Developer Kit (SDK) in the MSDN library (http://msdn.microsoft.com/library/default.asp).
    For example, the requirements for the Win32_PingStatus class indicate that it requires Windows XP or Windows Server 2003. Because of this, scripts that attempt to access the Win32_PingStatus class on Windows 2000 will fail with a “Class not found” error.
    Likewise, some WMI data providers, such as the SNMP Provider, are either not available in all operating systems or are not part of the default installation of WMI. SDK topics that refer to these providers have a note pointing to the topic “Operating System Availability of WMI Components” in the “About WMI” section.
    For a list of the standard WMI providers, see “WMI Providers” under the WMI Reference section.
    In general, when a new provider is added to a new version of Windows its functionality will not be made available to previous versions of Windows.
    For example, the Win32_PingStatus class defined by the Ping provider is unlikely to be made available for Windows 2000.
    This is usually due to the fact that the provider takes advantage of capabilities found in the new version of Windows that simply do not exist in previous versions.


    Le lien vers le Microsoft Windows 2000 Scripting Guide: http://www.microsoft.com/technet/scr....mspx?mfr=true

    Après ça je ne peut pas plus t'aider, je n'ai jamais travaillé sous windows 2000.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Cloture
    Ok merci pour ces infos.

    Grace à elle j'ai trouvé la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    strComputer = "10.169.6.16"
     
    'Ping version Win2000
    Set objShell = CreateObject("WScript.Shell")
    Set objScriptExec = objShell.Exec( _
        "ping -n 2 -w 1000 " & strComputer)
    strPingResults = LCase(objScriptExec.StdOut.ReadAll)
    If InStr(strPingResults, "perdus = 0") Then
            msgbox (strComputer & " repond au ping !")
    Else
        msgbox (strComputer & " na pas repondu au ping!")
    End If
    Voila, ce code fonctionne je l'ai récupéré et mis en forme a partir du site MicroSoft.

    Merci pour vos aides précisieuses.

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Super, ça fonctionne...
    Merci pour ce script,
    je n'y connais pas grand-chose, mais je l'ai modifié pour mes besoins perso sans grand problèmes. Je suis en effet "superviseur" Pronote dans mon lycée et ça me permet de voir dès le lancement de mon PC que le serveur fonctionne correctement. Je l'ai envoyé à mes collègues les plus "branchés".
    Voilà ce que ça donne (n'hésitez pas à critiquer car j'ai mis 2 serveurs à tester séparés par une virgule dont l'un avec le port. Ai-je bien fait?)

    Par contre, comment empêcher la fenêtre "d'invite de commande" de s'afficher même brièvement?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    strComputer = "64.117.46.7,64.117.46.7:49300 "
     
    'Ping version Win2000
    Set objShell = CreateObject("WScript.Shell")
    Set objScriptExec = objShell.Exec( _
        "ping -n 2 -w 1000 " & strComputer)
    strPingResults = LCase(objScriptExec.StdOut.ReadAll)
    If InStr(strPingResults, "perdus = 0") Then
            msgbox (" PRONOTE fonctionne !")
    Else
        msgbox (" PRONOTE ne fonctionne pas !")
    End If

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de PING
    Par sitirna dans le forum Dépannage et Assistance
    Réponses: 3
    Dernier message: 12/01/2007, 18h59
  2. problème de ping
    Par mamiberkof dans le forum Administration
    Réponses: 6
    Dernier message: 29/10/2006, 00h17
  3. [VMWare] problème de ping entre hôtes
    Par Eusebius dans le forum Développement
    Réponses: 3
    Dernier message: 04/07/2006, 08h56
  4. [VBS]Problème de syntaxe??
    Par MicheMTP13 dans le forum VBScript
    Réponses: 5
    Dernier message: 23/03/2006, 09h38
  5. [VBS]Problème de chemin avec les " " (espace)
    Par pierre1256 dans le forum VBScript
    Réponses: 3
    Dernier message: 16/02/2006, 18h53

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