2010-06-08 16 views
0

Je tente de faire un script Ping avec vbs. J'ai besoin d'un script, ce ping (aucune limite de ping, le programme s'exécutera tout le temps) un nom d'ordinateur dans le réseau toutes les 2 secondes et enregistrer les résultats dans un fichier txt.Ping script avec boucle et enregistrer dans un txt

Par exemple:

06/08/2010 - 13:53:22 | L'ordinateur "..." est en ligne

06/08/2010 - 13:53:24 | L'ordinateur « ... » est déconnecté

Maintenant, j'essayer un peu:

strComputer = "TestPC" 

    Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._ 
    ExecQuery("select * from Win32_PingStatus where address = '"_ 
    & strComputer & "'") 
    For Each objStatus in objPing 
    If IsNull(objStatus.StatusCode) Or objStatus.StatusCode <> 0 Then 

    ..........   

    Next 

Et que je ne sais pas comment le faire. (Je suis nouveau avec vbs :-))

J'espère que quelqu'un peut m'aider.

saluer, matthias

+0

J'ai fait exactement cela dans Bash pour montrer mon fournisseur d'accès à quel point il suce :) – LukeN

+0

bonjour, ce qui est bash? – Sebastian

+0

Un langage de script shell pour les systèmes UNIX – LukeN

Répondre

4

Essayez cette

Option Explicit 

Dim strHost, strFile 

strHost = "www.google.com" '"127.0.0.1" 
strFile = "C:\Test.txt" 

PingForever strHost, strFile 

Sub PingForever(strHost, outputfile) 
    Dim Output, Shell, strCommand, ReturnCode 

    Set Output = CreateObject("Scripting.FileSystemObject").OpenTextFile(outputfile, 8, True) 
    Set Shell = CreateObject("wscript.shell") 
    strCommand = "ping -n 1 -w 300 " & strHost 
    While(True) 
     ReturnCode = Shell.Run(strCommand, 0, True)  
     If ReturnCode = 0 Then 
      Output.WriteLine Date() & " - " & Time & " | The Computer " & strHost & " is online" 
     Else 
      Output.WriteLine Date() & " - " & Time & " | The Computer " & strHost & " is offline" 
     End If 
     Wscript.Sleep 2000 
    Wend 
End Sub 
+0

merci ça marche bien :-) – Sebastian

1

vous mettez votre pings dans une boucle de quelque sorte et puis utilisez Wscript.Sleep 2000 dormir pendant 2 secondes.

Ensuite, vous utilisez le File System Object (FSO) pour écrire dans un fichier. L'information peut être trouvée here.

Edit: Quelque chose comme cela pourrait fonctionner:

Const OpenFileForAppending = 8 
Dim fso, ts 
Set fso = CreateObject("Scripting. FileSystemObject") 

While 1 > 0 ' loop forever  
    Set ts = fso.OpenTextFile("c:\temp\test.txt", OpenFileForAppending, True) 

    ' do your pinging code 

    'if ok 
     ts.WriteLine("OK") 
    'else 
     ts.WriteLine("Not OK") 
    'endif 

    ts.Close() 
    Wscript.Sleep 2000 
Wend 
+0

c'est une bonne information, mais je suis vraiment mauvais et nouveau dans vbs. Est-il possible que vous – Sebastian

+0

@matthias: Je ne suis pas très expérimenté avec les VBS mais j'ai ajouté un peu d'exemple de code qui pourrait fonctionner, au moins il devrait vous donner la structure de ce qui est –

+0

merci, je vais essayer, pouvez-vous me dire, comment je fais l'heure et la date dedans? – Sebastian

Questions connexes