WakeOnLan // Réveil, arrêt, redémarrage (et bien plus encore) de postes distants ; utilisation scriptable possible

wakeonlan01.png
français anglais allemand espagnol italien portugais roumain   (pour contribuer, rendez-vous sur la page des fichiers de langues)

Besoin d'intervenir sur un pc situé dans un bureau éloigné du votre et sur lequel vous possédez des droits d'administration (ou de connexion au bureau à distance) ? Le hic, c'est que cela n'est possible que lorsque la machine en question est allumée...

Plutôt que d'utiliser certains outils du même genre mais à l'ergonomie discutable, essayez ce WakeOnLan avec lequel vous allez pouvoir tester l'état des machines (grâce à des Ping très rapides) que vous aurez préalablement déclarées et redémarrer celles que vous souhaitez en un seul clic.

A noter que le réveil d'un pc n'est possible que :

  • s'il possède un adaptateur réseau (intégré à la carte-mère ou carte additionnelle) compatible avec le réveil à distance,
  • si cet adaptateur est raccordé au connecteur WOL de la carte-mère (sur les anciennes configurations matérielles)
  • si cet adaptateur est correctement configuré (paramétrage sous Windows)
  • si le BIOS de la machine est configuré pour permettre le réveil à distance

Mais le réveil à distance n'est pas la seule corde que cet outil a à son arc puisqu'il permet aussi de redémarrer, d'éteindre, de mettre en veille prolongée, de fermer/verrouiller la session sur une ou plusieurs machines distantes. Il faut toutefois que la configuration de la machine 'cible' le permette : le service 'serveur' doit notamment être démarré et vous (l'utilisateur qui souhaite éteindre la machine à distance) devez avoir des privilèges suffisants. A noter que certaines fonctionnalités ne sont pas accessibles aux postes sous Win9x...

Depuis la v3.0, WakeOnLan peut aussi être utilisé en mode ligne de commande. Pour plus d'informations à ce sujet, ouvrez une fenêtre d'invite de commandes, placez-vous dans le dossier dans lequel se trouve l'appli, et tapez WakeOnLanBatch /? (ça fonctionne aussi sans paramètre).

Avec la sortie de la v3.2, l'outil offre désormais la possibilité de réveiller des machines via Internet (fonctionnalité WakeOnWan, ou WOW)...
 

Télécharger Télécharger ce logiciel (version installeur) Télécharger Télécharger le script wakeonwan.php

Télécharger  Télécharger ce logiciel (version portable ZIP)

Note importante aux utilisateurs des versions portables

Date de création : 18/03/2005 @ 23:39
Dernière modification : 01/10/2017 @ 10:29
Catégorie : - Aide à l'administration
Page lue 276479 fois
 

Réactions à cet article

Réaction n°296 

par alainmacon le 27/04/2015 @ 14:59

Bonjour. J'ai mis en place wake on Lan pour réveiller le PC d'un ami lorsque le besoin se fait sentir afin de pouvoir y accéder ensuite à l'aide de TeamViewer.La procédure fonctionne bien. Le seul inconvénient c'est que je ne suis pas entièrement maître de ce réveil. En effet, si j'attends quelques instant après sa mise en veille, la procédure déclenche bien son réveil. Par contre si je laisse le PC en veille pendant une durée plus prolongée (je n'ai pas encore déterminé le temps) celui-ci se réveille tout seul !!! Nous sommes tous les deux avec la freebox révolution et windows 8.1 comme système d'exploitation.Sa carte mère est une carte Asus Z97 deluxe et la connexion éthernet est sur un des 2 port éthernet de celle-ci. Connaitriez-vous un moyen qui permettrait de savoir ce qui déclenche ce réveil non attendu ? Nous avons déjà fait le test de mettre en veille le PC le soir et le lendemain matin celui était réveillé sans en avoir fait la demande. J'ai aussi fait des essais sur un de mes PC et ce phénomène ne s'est pas manifesté. Merci d'avance pour une éventuelle aide.

[réponse de damien, le 27/04/2015 à 19h41]

Le réveil par paquet magique n'est pas l'unique façon de réveiller une machine à distance. Certaines cartes acceptent d'autres méthodes. Regarde dans les propriétés avancées de la carte réseau et désactive "Wake on pattern match" s'il est activé. Il existe peut-être encore d'autres méthodes mais je n'ai que du matériel plutôt vieillot alors je ne pourrais pas t'aider davantage...

Sinon, peut-être que qu'un tiers s'amuse à envoyer des paquets magiques. Pour le savoir, laisse la machine allumée un petit moment avec WolMonitor lancé.


Réaction n°295 

par Jean le 05/04/2015 @ 08:40

Un grand merci.coucou Sa marche a la perfection,avec un sous parc créer sur WakeOnLan, je l'ai envoyer sur t'on script et il m'a fait un beau fichier xml qui fonctionne a merveille avec Italc.

Bravo et encore merci. Tu mérite vraiment des dons.coucou

[réponse de damien, le 05/04/2015 à 11h36]

Merci pour ce retour et le don qui l'a précédé. Même si tout ce temps consacré à développer/aider l'est dans un but totalement désintéressé, c'est toujours un grand plaisir de recevoir ce genre de témoignage. merci


Réaction n°294 

par Jean le 04/04/2015 @ 10:58

Bonjour et merci pour tout ces soft qui facilite bien la vie!

J'ai une question au sujet de l'export des fichier (wakeonlan et dipiscan) en .txt
 J'aimerais pouvoir les convertir dans un format .xml pour le  soft italc avec des balises...

Le problème vient des séparateur qui ne marche pas bien a part (tab). Il y a t'il une astuce pour avoir des séparateur du style (;) ou autre qui marche et comment?
exemple fichier original:

192.168.1.12    1 ms        Pc test        NomDeDomaine    B8-AC-6F-B9-75-45

exemple de fichier a obtenir:
 

Code: xml
 <?xml version="1.0"?>
<!DOCTYPE italc-config-file>
<globalclientconfig version="2.0.2">
  <body>
    <classroom name="salle test">
      <client hostname="192.168.1.12" mac="B8:AC:6F:B9:75:45" type="0" id="1313" name="Pc test"/>
    </classroom>
  </body>
</globalclientconfig>
triste

[réponse de damien, le 04/04/2015 à 14h09]

Désolé pour le retard de ma réponse mais je t'ai préparé un script qui accepte les formats d'export (.txt) de Dipiscan et IPScan32 ainsi que les fichier de conf de WakeOnLan. Recopie le code suivant dans un fichier .vbs et fais glisser le fichier à convertir sur ledit script...

Export2Xml.vbs

Option Explicit

Const ForReading = 1
Dim objFSO, objFichierEntree, objFichierSortie
Dim strSeparateur, strLigne, strSection
Dim arrMachine
Dim intColHost, intColName, intColMac, intId, intR
Dim boolIni

If WScript.Arguments.Count = 0 Or WScript.Arguments.Count > 1 then
    Msgbox "Paramètre manquant : faire glisser un et un seul fichier à traiter sur le script.", vbExclamation, WScript.ScriptName
    WScript.Quit
End If

boolIni = (Right(LCase(WScript.Arguments(0)), 4) = ".ini")

If boolIni = True Then
    strSeparateur = "|"
    intColHost = 1
    intColName = 0
    intColMac = 4

Else
    strSeparateur = vbTab
   
    intR = Msgbox("S'agit-il d'un export de Dipiscan (oui) ou d'IPScan32 (non), ou ni l'un ni l'autre (annuler)", vbQuestion or vbYesNoCancel, WScript.ScriptName)
   
    Select Case intR
    Case vbYes:
        intColHost = 0
        intColName = 2
        intColMac = 6       
       
    Case vbNo:   
        intColHost = 0
        intColName = 1
        intColMac = 5   
   
    Case Else:
        Msgbox "Format non supporté", vbExclamation, WScript.ScriptName
        WScript.Quit
    End Select

End If

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFichierEntree = objFSO.OpenTextFile(WScript.Arguments(0), ForReading)
Set objFichierSortie = objFSO.CreateTextFile(WScript.Arguments(0) & ".xml")

Call Ecris("<?xml version=""1.0""?>^r^n", null)
Call Ecris("<!DOCTYPE italc-config-file>^r^n", null)
Call Ecris("<globalclientconfig version=""2.0.2"">^r^n", null)
Call Ecris("^t<body>^r^n", null)

intId = 1

While not(objFichierEntree.AtEndOfStream)
    strLigne = Trim(objFichierEntree.ReadLine)
   
    If boolIni = True Then
        If Left(strLigne, 1) = "[" And Right(strLigne, 1) = "]" And LCase(strLigne) <> "[config]" Then
            If strSection <> "" Then
                Call Ecris("tt</classroom>rn", null)
            End If
           
            strSection = Replace(Replace(Trim(strLigne), "[", ""), "]", "")

            Call Ecris("^t^t<classroom name=""%v"">^r^n", Array(strSection))
       
        ElseIf strSection <> "" And Left(strLigne, 7) = "Machine" Then
            arrMachine = Split(Split(Trim(strLigne), "=")(1), strSeparateur)
           
            Call Ecris("^t^t^t<client hostname=""%v"" mac=""%v"" type=""0"" id=""%v"" name=""%v""/>^r^n", Array(arrMachine(intColHost), Replace(arrMachine(intColMac), "-", ":"), intId, arrMachine(intColName)))
           
            intId = intId + 1
        End If

    Else
        If strSection = "" Then
            strSection = Mid(WScript.Arguments(0), Instr(WScript.Arguments(0), "") + 1)

            Call Ecris("^t^t<classroom name=""%v"">^r^n", Array(strSection))
       
        ElseIf Left(strLigne, 1) <> "[" Then
            arrMachine = Split(Trim(strLigne), strSeparateur)
           
            Call Ecris("^t^t^t<client hostname=""%v"" mac=""%v"" type=""0"" id=""%v"" name=""%v""/>^r^n", Array(arrMachine(intColHost), Replace(arrMachine(intColMac), "-", ":"), intId, arrMachine(intColName)))
           
            intId = intId + 1
        End If
    End If
Wend

Call Ecris("^t^t</classroom>^r^n", null)
Call Ecris("^t</body>^r^n", null)
Call Ecris("</globalclientconfig>^r^n", null)

objFichierSortie.Close
objFichierEntree.Close

Msgbox "Traitement terminé.", vbInformation, Wscript.ScriptName

WScript.Quit

Sub Ecris(byval chaine, byval valeurs)
    Dim p, i
   
    p = Instr(chaine, "%v")
    i = 0
    While p > 0
        chaine = Left(chaine, p - 1) & valeurs(i) & Mid(chaine, p + 2)
        p = Instr(chaine, "%v")
       
        i = i + 1
    Wend
   
    chaine = Replace(chaine, "^t", vbTab)
    chaine = Replace(chaine, "^r", vbCr)
    chaine = Replace(chaine, "^n", vbLf)
   
    objFichierSortie.Write(chaine)
End Sub

Il est possible que tu aies besoin de faire quelques ajustements. Désolé mais je n'ai pas pris le temps de commenter le code ou de traiter la majorité des cas d'erreurs potentielles. C'est du vite-fait, c'est donc facilement améliorable.


Réaction n°293 

par jphellmann le 25/03/2015 @ 15:21

Bonjour,
félicitations pour cet outil bien pratique que j'utilise quotidiennement au travail , notamment pour administrer des salles informatiques à l'Université.
Les commandes personnalisables sont particulièrement pratiques.
J'ai un plantage en créant un dossier avec un nom uniquement numérique ( par ex: 019 ou 123 ) ; Erreur d’exécution '35603': Invalid key
L'erreur a l'air systématique quelque soit la chaîne numérique saisie.
Pas de souci dés lors qu'il y au moins une lettre dans le nom.

Ce n'est pas bloquant, mais le logiciel plantant brutalement, ça surprend cligne
Merci encore pour votre travail

[réponse de damien, le 25/03/2015 à 18h39]

Ça fait effectivement désordre, désolé. J'essaye de régler ça au plus tôt... oups

Merci pour les compliments et pour avoir pris quelques minutes de ton temps pour me signaler ce bug.


Réaction n°292 

par Goulven le 05/03/2015 @ 12:01

Bonjour,

Je voudrais savoir si il est possible de programmer des tâches hebdomadaire pour allumer tous les postes du parc info de mon entreprise, ou même exécuter un script pour faire cette tâche ?

Crdlt

[réponse de damien, le 05/03/2015 à 19h52]

Oui c'est possible avec l'outil WakeOnLanBatch inclus avec WakeOnLan.

En ce qui concerne la méthode, je te conseille de déclarer chaque machine dans WakeOnLan ce qui simplifiera considérablement le script de réveil qui consistera à exécuter la commande : WakeOnLanBatch.exe /W:*

Tu peux organiser les machines dans plusieurs dossiers (onglets) ce qui t'offrira plus de souplesse si tu veux ne réveiller qu'une certaine liste de machines. Exemple : WakeOnLanBatch.exe /W:Salle2!*

Pour ce qui est de déclarer tes machines, soit tu en as peu et tu peux les saisir à la main, soit la liste est longue et dans ce cas je te conseille de passer par un fichier texte contenant les principaux éléments (Nom, adresse IP, adresse MAC). Si tu n'as pas toutes ces infos, tu peux "tricher" mais il te faut au moins le nom des machines et utiliser une adresse MAC bidon. Exemple :

MACHINE1;MACHINE1;00:00:00:00:00:00
MACHINE2;MACHINE2;00:00:00:00:00:00
...
MACHINEn;MACHINEn;00:00:00:00:00:00

Reste ensuite à importer ça dans WakeOnLan par l'option "Importer une liste depuis un fichier texte" du menu "Fichier". Sélectionne le fichier ainsi constitué, choisis le séparateur (utilisé dans ton fichier) au moyen des boutons radios et clique 1 fois dans l'en-tête de chaque colonne (de gauche à droite) pour indiquer dans quelle colonne l'information devra être placée. Enfin, clique sur OK pour procéder à l'import. Si tu as mis des adresses MAC bidon il te faudra utiliser l'option "Mettre à jour les adresses MAC" du menu "Options". Pour que cela fonctionne, il faut que les machines soient allumées, répondent au PING et aux requêtes NetBIOS (voir réglage du firewall)...

Bien entendu, le premier prérequis technique est que tes machines soient "sensibles" au réveil par paquet magique. Avant de te lancer dans la constitution de la liste complète de tes machines, je t'invite à en tester quelques-unes via l'outil. Si tu n'as jamais eu l'occasion de tester, je te conseille 2 tutos (http://www.aidewindows.net/wake_on_lan.php et http://nilz.fr/wake-on-lan-ou-comment-allumer-votre-marchine-a-distance-via-le-reseau) qui sont plutôt bien faits.

Enfin, si tu rencontres des problèmes ou que tu as des questions, tu trouveras de nombreuses réponses dans les commentaires de ce présent article et dans mes réponses.


Réaction n°291 

par Aksl le 04/03/2015 @ 11:30

Bonjour,
J'ai cherché sur google mais je ne trouve pas de réponses à mon problème.
Lorsque j'exécute le fichier WakeOnLanBatch à partir de l'invite de commande, j'ai cette erreur :
Le fichier de configuration spécifié n'a pas été trouvé...
Savez vous d'où vient cette erreur ?
Merci d'avance

[réponse de damien, le 04/03/2015 à 18h29]

En fait, pour pouvoir utiliser WakeOnLanBatch, il faut auparavant avoir lancé au moins une fois WakeOnLan pour créer le fichier de configuration commun aux deux applis. Après ça tu ne devrais plus être embêté par ce problème.


Réaction n°290 

par JoLaPatate le 24/02/2015 @ 13:56

Bonjour,
J'utilise ce logiciel quotidiennement et je le trouve super.
Donc un gros merci pour ce petit soft bien pratique.
Excellent travail :)

[réponse de damien, le 24/02/2015 à 18h00]

Un "client" de plus qui est satisfait, c'est cool. Et ce qui l'est d'autant plus, c'est d'avoir pris quelques instants pour partager l'info. Je t'en remercie. cligne


Réaction n°289 

par Alain le 18/02/2015 @ 12:20

Bonjour

Logiciel bien pratique et bien conçu

Peut on exporter et importer les données?

Merci d'avance

AL

[réponse de damien, le 18/02/2015 à 17h51]

Tu peux importer des données par le biais de 2 modules accessibles depuis le menu "Fichier". Quant à l'export, l'appli n'offre pas une telle fonctionnalité mais celle-ci stockant les informations dans un fichier de configuration sous forme texte (.ini), tu peux aisément les récupérer.

Ledit fichier se trouve :

  • soit dans le dossier d'installation de l'appli si la version de Windows est antérieure à Vista OU que l'UAC a été désactivée OU que l'appli est exécutée en tant qu'administrateur OU qu'elle est installée ailleurs que dans %programfiles% [ou %programfiles(x86)% si l'OS est 64 bits] OU enfin qu'elle n'est pas installée mais utilisée en mode portable.
  • soit dans le virtual store (C:\Users\%username%\AppData\Local\VirtualStore\Program Files\Dipisoft\WakeOnLan)


Réaction n°288 

par Fernand le 11/02/2015 @ 20:54

Bonjour

Mon ordinateur portable est connecté sur ethernet à la maison.

Je désire réveiller mon portable par wifi avec la Surface pro 3 sur Windows 8.1. donc je ne suis pas à la maison.

Comment faire

Fernand

[réponse de damien, le 12/02/2015 à 08h22]

Si l'ordi portable à réveiller est connecté à internet en wifi, tu peux oublier : ce n'est pas possible. En revanche, s'il est connecté en "filaire" (ethernet), c'est possible grâce à n'importe quelle appli offrant la fonctionnalité WakeOnWan. Mes applis WakeOnLan et Dipiscan le permettent, mais tu peux également le faire à partir de certains sites web (la page Réveil d'un poste à distance de mon site, par exemple).

Il te faudra renseigner :

  • l'adresse IP publique de ta connexion (que tu peux obtenir sur la page Mon adresse IP de mon site, par exemple)
  • l'adresse MAC du portable (attention à prendre la bonne adresse, celle de l'interface ethernet en l'occurrence)
  • le port que tu auras paramétré dans ton routeur pour atteindre ladite machine (configurée en IP fixe)

J'espère que c'est assez clair, sinon regarde dans les autres commentaires, le sujet est déjà abordé à plusieurs reprises.


Réaction n°287 

par lolo le 13/01/2015 @ 08:11

Bonjour,

merci de ta réponse

[réponse de damien, le 13/01/2015 à 12h21]

Il n'y a pas de quoi... tu l'aurais eu plus rapidement si tu avais indiqué une adresse mail correcte. portnawak