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 257357 fois
 

Réactions à cet article

Réaction n°301 

par Endymion le 11/08/2015 @ 21:11

Bonjour, 
J'ai lu la faq avant de poser ma question. 

Je possède un NAS Synology, la fonction WOL en extérieur fonctionnet rès bien. Je peux réveiller le nas depuis mon pc portable qui lui se trouve connecté en 3g.
Cependant je ne peux pas éteindre le nas à distance avec le logiciel une erreur apparaît. 

Cela dit est possible d'éteindre un nas synology avec le logiciel WAKEONLAN ? 

En attente de votre retour, et merci pour ce logiciel ! 

[réponse de damien, le 11/08/2015 à 21h57]

Et c'est bien normal que seul le réveil fonctionne avec ton Syno. Si le "paquet magique" utilisé pour le réveil est quelque chose qui est indépendant de l'OS de la machine (forcément, elle est éteinte), ce n'est pas le cas pour les autres fonctionnalités de mon outil. Elles ne fonctionnent que vers des bécanes sous Windows...

Par contre, tu peux créer une "commande personnalisée" pour lancer un shutdown depuis la machine elle-même. Je te renvoie vers la réaction n°282 de ce présent article, la manip y est décrite.


Réaction n°300 

par supseb53 le 15/07/2015 @ 21:44

Bonjour,

J'ai un petit soucis

Le logiciel détecte bien les ordinateurs présents sur le réseau mais impossible de faire une seule action (redémarrer, éteindre, verrouiller ...)

Le message est accès refusé par l’ordinateur distant

Une idée du problème ?

Merci d'avance
 

[réponse de damien, le 15/07/2015 à 22h19]

As-tu jeté un coup d’œil à la FAQ de mon site ou à mes réponses aux questions des autres utilisateurs ?


Réaction n°299 

par Flox le 29/05/2015 @ 12:14

Bonjour,
Très bon boulot,  par contre je rencontre un problème pour l’exécuter en tache planifiée.j'ai fait un .bar :
cd "C:Program Files (x86)DipisoftWakeOnLan"WakeOnLanBatch.exe /W:*
Si je clique dessus ca fonctionne sans pb par contre quand il est exécutée en taches planifiée j'ai l'erreur suivante : "Le fichier de configuration spécifié n'a pas été trouvé..."
Une idée?
Merci par avance.

[réponse de damien, le 29/05/2015 à 14h00]

J'imagine que la tâche planifiée n'est pas exécutée sous ton compte ? Compte système peut-être ?

Il faut savoir que l'UAC ne permet pas d'écrire dans "Program Files" où l'appli est installée (sauf si l'appli est lancée en tant qu'administrateur) et que le système "redirige" le fichier de configuration dans le Virtual Store. En revanche, si l'appli est lancée sous compte système/admin, elle cherchera ledit fichier de conf dans le dossier le d'appli, et ne l'y trouvera pas...

Cherche le terme "virtualstore" dans le moteur de recherche de mon site, tu trouveras plusieurs questions/réponses qui évoquent la problématique.

Mais pour faire simple, si tu veux que WakeOnLanBatch trouve sa conf, fais en sorte que la tâche planifiée soit dans le même contexte que ta session. Ou installe l'appli dans un dossier librement accessible en lecture/écriture.


Réaction n°298 

par zuider le 05/05/2015 @ 10:35

Bonjour,Est-il possible d'avoir le résultat du réveil dans un fichier?Ceci me servirait de log afin de savoir si mes postes se rallument bien tous.Dans le cas contraire, ceci cible les postes défaillants et je sais sur lesquels intervenir.Quelle serait la ligne de commande ?
Pour info: j’exécute un .bat via tâche planifiée Win 7.
Merci par avance pour votre retour.

[réponse de damien, le 05/05/2015 à 17h31]

Non ce n'est pas possible car le réveil à distance ne retourne pas de résultat... Il faudrait donc faire des ping durant un certains temps, sur chaque machine réveillée, pour savoir s'il elle y répond. Sachant que bien souvent le firewall bloque l'ICMP. pas ma faute


Réaction n°297 

par Pascal le 28/04/2015 @ 16:34

Bonjour,
Super logiciel et merci pour ce travail.
Cependant j'ai un petit souci :
j'ai plusieurs vlans et j'ai configuré mon cœur de réseau pour laisser passer le port 7 ou 9 au travers des routeurs :
access-list 101 permit udp host <adresse du serveur > any eq 9
ip forward-protocol udp 9 (ou 7)
interface vlan xx
ip helper-adress <Adresse du serveur dhcp>
ip directed-broadcast 101
interface vlan xy
ip helper-adress <Adresse du serveur dhcp>
ip directed-broadcast 101
Avec l'interface graphique de wakeonlan aucun souci le réveil fonctionne bien.
Mais cela ne fonctionne pas avec wakeonlanbatch :
la réponse à l'envoi de la commande wakeonlanbatch.exe /W:Machines!* :
Action : Réveiller (WOL)
Sélection multiple : machines!*
- Paquet envoyé à LS-ruetest (port 9)....
Traitement terminé
Mais la machine de s'allume pas
Aurais-tu une petite idée du souci ?

[réponse de damien, le 28/04/2015 à 19h58]

Là comme ça je ne vois pas... Tu peux m'envoyer ton fichier de configuration pour que je fasse des tests ?


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.