Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2328 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Voir si un pc est allumé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Voir si un pc est allumé

n°911019
chepa_jeml​s
Posté le 30-11-2004 à 08:59:36  profilanswer
 

Bonjour à tous,
 
Depuis un petit temps je cherche ma façon de voir, via un script vbs, si un pc est allumé!!(un genre de ping en fait)
 
Mais j'aimerai qu'il me sorte une donnée exploitable (par ex 1 si allumé et 0 si pas allumé)
 
Merci de votre aide,
 
Damien

mood
Publicité
Posté le 30-11-2004 à 08:59:36  profilanswer
 

n°911488
chepa_jeml​s
Posté le 30-11-2004 à 20:08:23  profilanswer
 

J'ai une boucle qui me permet de voir tous les pc's du réseau!
 
Ce que je voudrais, c'est incorporé dans la boucle un test pour voir si le pc est allumé

n°911622
red factio​n
Posté le 30-11-2004 à 22:26:08  profilanswer
 

Demande a didier :lol:

n°911805
chepa_jeml​s
Posté le 01-12-2004 à 07:02:23  profilanswer
 

Je le poste dés que je suis au cours... En fait mon script contact l'annuaire du serveur du domaine! De là j'ai la liste de tous les pcs concernés par mon domaine.
 
Ensuite, je voudrais que a chaque foi que je lis une ordinateur dans la boucle, que je puisse vérifier si il est allumé ou pas

n°911870
chepa_jeml​s
Posté le 01-12-2004 à 10:41:23  profilanswer
 

Code :
  1. Dim args, oWinNT, oDomain
  2. Set Shell = WScript.CreateObject("WScript.Shell" )
  3. domain="domjemelle"
  4. Wscript.echo "Liste des machines du domaine " & domain
  5. set oWinNT=GetObject("WinNT://" & domain)
  6. for each oDomain in oWinNT
  7. if  lcase(oDomain.class)="computer" then Wscript.echo oDomain.name
  8. next


 
Je voudrais ajouter le test dans le IF et savoir via un signe spécifique (1 ou 0 par ex) si le pc est allumé

n°912166
chepa_jeml​s
Posté le 01-12-2004 à 15:58:44  profilanswer
 

je pense qu'il a surement d'autre façon que le ping, par exemple faire une tentative de connection et si cela marche pas, renvoyer une valeur

n°912173
red factio​n
Posté le 01-12-2004 à 16:06:09  profilanswer
 

c ton labo dev ca ? :whistle:

n°912187
chepa_jeml​s
Posté le 01-12-2004 à 16:15:14  profilanswer
 

loin de là mais cela en fera partie, j'ai vu plein de script mais iren du tout

n°912237
Lam's
Profil: bas.
Posté le 01-12-2004 à 16:55:57  profilanswer
 

chepa_jemls a écrit :

je pense qu'il a surement d'autre façon que le ping, par exemple faire une tentative de connection et si cela marche pas, renvoyer une valeur


Pourquoi tu ne veux pas de ping ? Comme tu ne traverses pas de routeur ou de firewall, c'est techniquement la solution la plus simple et la plus fiable, même avec les firewall type SP2. Je vais pas te faire un cours sur la pile TCP/IP, et le protocole ICMP, mais bon...

n°912510
chepa_jeml​s
Posté le 01-12-2004 à 21:49:12  profilanswer
 

J'ai pas dis que je voulais pas le ping, je veux simplement donner un max d'info possible relatif à mon problème...
 
Je veux pas donner trop de contrainte.
 
Est ce possible ou pas?

mood
Publicité
Posté le 01-12-2004 à 21:49:12  profilanswer
 

n°912706
Lam's
Profil: bas.
Posté le 02-12-2004 à 09:57:52  profilanswer
 

chepa_jemls a écrit :

J'ai pas dis que je voulais pas le ping, je veux simplement donner un max d'info possible relatif à mon problème...
 
Je veux pas donner trop de contrainte.
 
Est ce possible ou pas?


Oui c'est possible, en essayant de contacter le PC en face. Et la meilleur façon de contacter le PC en face, c'est d'envoyer un paquet Ping, car le protocole utilisé est indépendant des ports ouverts, etc.  
 
Donc soit tu trouves un objet qui fait ping en VB, soit tu utilises WScript.Shell pour exécuter ping.exe.

n°912738
chepa_jeml​s
Posté le 02-12-2004 à 11:05:00  profilanswer
 

C'est justement là ou se trouyve mon problème...
 
J'avais trouvé un truc en VB et ca me fesait un erreur...  
 
J'ai aussi testé le ping via WScript.Shell, cela va très bien mais j'arrive pas a avoir le retour d'une valeur qui me permettrais de faire un test suivant si le pc est allumé ou éteind!
 
Je suis clair?

n°912748
Lam's
Profil: bas.
Posté le 02-12-2004 à 11:12:55  profilanswer
 

chepa_jemls a écrit :


J'ai aussi testé le ping via WScript.Shell, cela va très bien mais j'arrive pas a avoir le retour d'une valeur qui me permettrais de faire un test suivant si le pc est allumé ou éteind!
 
Je suis clair?


All Clear.
 
Va voir comment le monsieur fait ici:
   http://www.pcwelt.de/downloads/office/vb-script/8767/
 
En fait, tu fais un "ping -n 1 127.0.0.1 > c:\temp\fichier.txt", puis tu lis le contenu du fichier pour voir s'il contient un round-trip time. Si c'est le cas: le PC est vivant.

n°912788
chepa_jeml​s
Posté le 02-12-2004 à 11:52:57  profilanswer
 

comment je fais pour voir le contenu du code de cette personne...  Moi pas comprendre l'allemand

n°912794
HelloWorld
Salut tout le monde!
Posté le 02-12-2004 à 12:01:53  profilanswer
 

Lam's a écrit :


En fait, tu fais un "ping -n 1 127.0.0.1 > c:\temp\fichier.txt", puis tu lis le contenu du fichier


Comment tu sais qu'il a fini d'écrire dans le fichier ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°912798
Lam's
Profil: bas.
Posté le 02-12-2004 à 12:08:25  profilanswer
 

HelloWorld a écrit :

Comment tu sais qu'il a fini d'écrire dans le fichier ?


T'attends que le programme finisse. C'est le 3ème argument à WShell.Run
 
 
Le code (en allemand :lol:)
 

Code :
  1. Dim inhalt(50)
  2. Set MyShell = CreateObject("WScript.Shell" )
  3. Set MyFiles = CreateObject("Scripting.FileSystemObject" )
  4. If not MyFiles.FileExists("C:\Logfile.txt" ) Then MyFiles.CreateTextFile("C:\Logfile.txt" )
  5. Abfrage = MsgBox ("Wollen Sie IP-Adressen hinzufügen?", vbYesNo)
  6.    If Abfrage =  vbYes Then
  7.  Do
  8.           Eingabe = InputBox("Geben Sie die neue(n) IP Adressen ein. Um den Ping Befehl auszuführen, klicken Sie auf abbrechen." )
  9.          IPS=IPS & Eingabe & chr(13) & chr(10)
  10.          loop Until Eingabe = ""
  11.      Set logfile = MyFiles.OpenTextFile("C:\Logfile.txt",8)
  12.      logfile.write(IPS)
  13.      logfile.close
  14.    End If
  15. Set InfoZeile = MyFiles.OpenTextFile("C:\Logfile.txt",1)
  16. Do
  17. n=n+1
  18.        Inhalt(n) = InfoZeile.ReadLine
  19. if Inhalt(n)="" then n=n-1
  20. Loop Until InfoZeile.AtEndOfStream = True     
  21. For x = 1 to n
  22. Proggi = "%comspec% /c ping.exe -n 1 -a" & " " & Inhalt(x) & " " & ">c:\temp.txt"
  23. Return = MyShell.Run(Proggi,0,True)
  24. Set TempFile =MyFiles.OpenTextFile("C:\temp.txt" )     
  25.        Abfrage = Tempfile.Readall
  26.         If instr(Abfrage, "ytes=" ) > 0 Then
  27.   Ausgabe = MsgBox("Ping an " + Inhalt(x) + " erfolgreich!", 1)
  28.  Else
  29.  Ausgabe = MsgBox("Host " + Inhalt(x) + " nicht erreichbar", 1)
  30. End if
  31. tempfile.close
  32.        If Ausgabe = 2 Then WScript.Quit
  33. Next

n°912839
HelloWorld
Salut tout le monde!
Posté le 02-12-2004 à 13:25:01  profilanswer
 

Ah ok.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°912858
chepa_jeml​s
Posté le 02-12-2004 à 13:49:56  profilanswer
 

je comprends pas ca façon de faire son ping  
 
Proggi = "%comspec% /c ping.exe -n 1 -a" & " " & Inhalt(x) & " " & ">c:\temp.txt"

n°912874
Lam's
Profil: bas.
Posté le 02-12-2004 à 14:02:59  profilanswer
 

%comspec%, c'est cmd (ça date de MS-DOS, où on pouvait utiliser d'autres interpreteurs de commandes, comme 4Dos uo autres).  
 
Faire "cmd /c toto.exe", ça permet d'être sûr de pouvoir exécuter toto.exe en le cherchant dans le path, etc. C'est très utile si tu souhaites exécuter "copy" par exemple.
 
 
 
Dans le cas présent, c'est pas très utile. Pour le reste, tu dois comprendre tout seul, ou en faisant "ping /?". ;)


Message édité par Lam's le 02-12-2004 à 14:03:13
n°912938
HelloWorld
Salut tout le monde!
Posté le 02-12-2004 à 15:10:35  profilanswer
 

Sous Win9x c'est command.com, d'où %comspec% je présume.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°913083
chepa_jeml​s
Posté le 02-12-2004 à 17:37:44  profilanswer
 

Lam's a écrit :

%comspec%, c'est cmd (ça date de MS-DOS, où on pouvait utiliser d'autres interpreteurs de commandes, comme 4Dos uo autres).  
 
Faire "cmd /c toto.exe", ça permet d'être sûr de pouvoir exécuter toto.exe en le cherchant dans le path, etc. C'est très utile si tu souhaites exécuter "copy" par exemple.
 
 
 
Dans le cas présent, c'est pas très utile. Pour le reste, tu dois comprendre tout seul, ou en faisant "ping /?". ;)


 
Bon ben j'essairai cela, mais j'ai des doutes sur la possibilté de vérifié si le ping s'est bien exécuté

n°913189
Zobman
hek het a shroot pill!
Posté le 02-12-2004 à 19:34:11  profilanswer
 

tiens je te le fais en wmi
 

Citation :


machine="nom_machine_a_tester"
 
set ObjPing=GetObject("winmgmts:{impersonationLevel=impersonate}" ).ExecQuery("select"_
&" * from win32_PingStatus where address='"&machine&"'" )
 
for each obj in ObjPing
if obj.StatusCode <> 0 or  IsNull(obj.StatusCode) then
 
msgbox "la machine" & machine & "n'est pas connecté au réseau"
 
end if  
next
 
set ObjPing = nothing  


 

n°913329
chepa_jeml​s
Posté le 02-12-2004 à 22:29:19  profilanswer
 

j'en ai entendu parlé du wmi, masi vu que je début, je dois sauvez cela sous quel format?

n°915084
chepa_jeml​s
Posté le 05-12-2004 à 13:19:59  profilanswer
 

je le met en .vbs?

n°916706
chepa_jeml​s
Posté le 07-12-2004 à 09:52:15  profilanswer
 

voilà, je viens de tester le script sur le réseau!voilà l'erreur que cela me donne:
 
H:\>cscript "C:\Documents and Settings\info210\Bureau\Copie de listpc.vbs"
C:\Documents and Settings\info210\Bureau\Copie de listpc.vbs(6, 1) (null): 0x800
41010

 
 
Pour info, j'ai copié le script au format .vbs...
 
Quelqu'un sait m'aider?

n°918646
chepa_jeml​s
Posté le 09-12-2004 à 11:03:08  profilanswer
 

on peut m'aider?

n°921308
chepa_jeml​s
Posté le 12-12-2004 à 21:51:41  profilanswer
 

Je sais pk le script ne marche pas, c'est parce que c'est un script pour un domain win2003..
 
Le severu est un serveur sous windows 2000!! Puet on m'aider svp?

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Voir si un pc est allumé

 

Sujets relatifs
Commande pour voir si u PC du réseau est alluméDites moi? C bien impossible de créer un prog qui allume un pc ...?
Plus de sujets relatifs à : Voir si un pc est allumé


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)