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

Réactions à cet article

Réaction n°348 

par Jimmy le 01/03/2017 @ 08:32

Merci pour ton retour BHL, ca fait toujours plaisir de savoir que ca a pu aider quelqu'un ! 161 postes, ca a du être long ! :p Pour info mon parc est composé de Dell Optiplex 3010, 3020, 3040, Precision 1700 et tout fonctionne très bien. (Nous avons aussi des PC portable Dell latitude mais j'ai fait le choix de les exclure de ma stratégie WOL qui contient en plus une fermeture de session auto chaque soir de la semaine)

Bonne continuation

[réponse de damien, le 01/03/2017 à 19h38]

Je ne peux pas transférer à l'intéressé qui a malheureusement fourni une adresse erronée (ou fausse, ce que j'adore pas content... alors qu'il y a possibilité de la masquer ).

J'espère qu'il repassera pour voir ta réponse.


Réaction n°347 

par BHL le 28/02/2017 @ 13:18

Jimmy ! Merci ! Tu me sauves !Si j'avais eu ton script plus tôt (l'an dernier), cela m'aurait éviter de me taper l'activation du WoL dans nos machines DELL (161) à la main ! (et encore qu'il en reste une 50aine encore).Je garde tes scripts PowerShell sous le coude dans ma boite à outils pour les machines restantes de la boite.

[réponse de damien, le 28/02/2017 à 19h42]

Merci pour lui, je transfère ton message au cas où il ne repasserait pas par ici...


Réaction n°346 

par emmanel le 08/02/2017 @ 22:35

bonjour,
J'ai constaté sur dipiscan que si on prend en main plusieurs machines à la fois, il suffit de taper une seule fois les identifiants de connexion de ses différentes machines (si c'est le même).
Est-ce possible avec wakeonlan ?
(se connecter avec un compte admin sur plusieurs machines simultanément est très confortable...)
Merci d'avance,
Emmanuel

[réponse de damien, le 10/02/2017 à 17h16]

Tu parles de prise de main avec le "Bureau à distance" ?

Je n'ai pas testé mais c'est géré quasiment de la même façon entre les deux applis, alors je serais tenté de te répondre que oui... Et pour le confirmer, tu peux faire l'essai très facilement.


Réaction n°345 

par Jimmy le 23/01/2017 @ 13:37

Bonjour,

Tout d'abord, merci pour votre travail et votre philosophie de partage. Consterné par le nombre de postes restant allumés dans mon entreprise durant le week-end malgré notre charte informatique, j'ai décidé de mettre en place une extinction des postes le vendredi soir et un WOL le lundi matin.

J'ai remarqué dans les commentaires que certains avaient des problèmes à réveiller leur machine. J'ai eu le cas et j'ignore si une solution a été clairement apportée, mais en ce qui me concerne il fallait simplement désactivé le "Deep sleep control" dans le bios de mes machines Dell.

Par ailleurs, ce qui m'a pris le plus de temps c'est de déployer l'activation du WOL dans le bios de chaque PC. J'ignore si ca va intéresser quelqu'un mais dans le doute, voici comment j'ai fait.

GPO 1 (script ps) déploiement du logiciel Dell CCTK (pour manager le bios de PC Dell) :

$Marque1 = Get-WmiObject Win32_computersystem
$Marque2 = $Marque1.manufacturer

If ($Marque2 -eq "Dell Inc.") {
If (-not (Test-Path "C:\Program Files (x86)\Dell\CCTK")) {
& "\\CHEMIN_INSTALL_CCTK\cctk.msi" /quiet}}

GPO 2 (script ps) pour activation du WOL :

If (Test-Path "C:\Users\Public\Desktop\Dell CCTK Configuration Wizard.lnk") {
Remove-item "C:\Users\Public\Desktop\Dell CCTK Configuration Wizard.lnk"}

If (Test-Path "C:\Program Files (x86)\Dell\CCTK") {
If (-not (Test-Path "C:\Program Files\GPO_Run_once\GPO_WOL_applied")) {
cd "C:\Program Files (x86)\Dell\CCTK\X86_64"
& ".\cctk.exe" --wakeonlan=enable
New-Item -Path "C:\Program Files\GPO_Run_once" -Name "GPO_WOL_applied" -ItemType "file"}}

Encore merci, vous allez nous permettre de faire de sacrées économies d'énergie (tant écologiquement qu'économiquement).

[réponse de damien, le 23/01/2017 à 17h40]

Merci à toi également pour le partage de ce retour d'expérience intéressant. Je suis sûr qu'il servira, au moins de base, à d'autres utilisateurs.

PS.: tu glisseras un petit mot en ma faveur à ton contrôleur de gestion en fin d'année, quand il comparera le poste consommation d'énergie par rapport aux années précédentes ! cligne


Réaction n°344 

par AlainClaude le 15/01/2017 @ 13:11

J'ai fait deux copies d'écran du manuel utilisateur  qui semblent expliquer la marche à suivre pour lier durablement une machine qui n'est pas connectée.

http://beauceron-ring.fr/user%20manual%20Archer_C1200%20V1.jpg

http://beauceron-ring.fr/user%20manual%20Archer_C1200%20V2.jpg

Si ça peut aider

[réponse de damien, le 15/01/2017 à 19h52]

Merci, mais je pense que ton message précédent est suffisamment clair.


Réaction n°343 

par AlainClaude le 14/01/2017 @ 18:44

Alors voilà comment j'ai traficoté, bricolé, bidouillé, dans les paramètres de mon routeur, je joins un fichier image dans un lien pour que ce soit plus parlant.

capture_alain_conf_routeur_tplink.jpg

Dans l'onglet Sécurité>Association IP&MAC puis dans  la rubrique Liste d'associations j'ai simplement ajouté l'ip locale de la machine à réveiller ainsi que son adresse MAC. Dans la Liste ARP ça m'a passé le statut de la machine à "Lier".

C'est la dernière modification que j'ai faite et depuis hier je peux réveiller mon NAS quand je veux. Il a redémarré ce matin sans problèmes après 8 heures de coupure. Je viens de vérifier maintenant et ça marche mais uniquement lorsque j'utilise le script de ton hébergeur.

Pour vérifier ça je me suis simplement connecté en wifi sur la connexion de mon téléphone cable ethernet débranché.
Ça fonctionne aussi depuis une appli android et depuis un autre poste en réseau (en wifi sur le téléphone) sous ubuntu.


Pour ce qui est des adresses en dur et des variables % tu as très bien expliqué et j'ai enfin sourire compris. Merci à toi.

Je suis allé voir les paramètres php de online.net et j'ai bien "Sockets support : enabled" donc à ce niveau là ça serait bon.

Voilà j'espère ne pas avoir été trop confus.

[réponse de damien, le 15/01/2017 à 09h47]

Merci pour ces explications très claires. Je suis sûr qu'elles seront utiles à d'autres utilisateurs. Est-ce que ta capture d'écran va rester hébergée sur ton site ou dois-je la récupérer.

Sinon, j'ai re-testé mon script et ça fonctionne correctement. Je pense donc qu'il faut creuser côté Online (en contactant la hotline par exemple), même si l'extension est apparemment activée. Quelle est la version de PHP ?


Réaction n°342 

par AlainClaude le 14/01/2017 @ 15:08

Merci Damien pour cette longue réponse très détaillée mais là je pense que l'on commence  toucher le début de mon incompétence quand tu me parles d'adresse en "dur" de php-sockets et de variables %ip%, %mac% %port%.fou. ...mais je vais potasser tout ça promis .

Bien qu'ayant un de mes garçons qui est ingénieur en informatique je suis pour ma part un simple amateur "éclairé".

D'abords ma configuration: 1 Livebox sur laquelle est branché un routeur TP-Link avec 3 ordinateurs dessus en ethernet.(dont le serveur sous Debian/OMV.à réveiller)
Je pense avoir bien reconfiguré toutes les redirections de port puisque je peux y acceder en ftp/ssh/samba.

Donc ce que je veux faire:

Réveiller et accéder à mon NAS en local il n'y pas de problème ça marche  tous les coups.
Réveiller avec le script que tu héberges ça marche aussi très bien. J'ai juste du retoucher la table ARP pour avoir une connexion "persitante". Sinon au bout de 3  à 5 minutes le réveil ne fonctionnait plus.

J'aurais voulu aussi que mes enfants puissent se servir de cette machine pour accéder aux photos de la famille et créer des répertoires pour faire des sauvegardes déportées.

Je voulais simplement installer ton script chez mon hébergeur (online.net) pour le fun mais je crois que je vais devoir abandonnertriste.

Merci encore d'avoir pris le temps de me répondre d'une façon aussi détaillée.

Alain

[réponse de damien, le 14/01/2017 à 16h59]

Pas si débutant que tu sembles le dire, j'ai l'impression. D'ailleurs, si tu peux détailler la manip pour "retoucher la table ARP", je pense que de nombreux utilisateurs seront preneurs de cette information. Car la question du réveil via internet au delà du délai de quelques minutes revient régulièrement. Merci d'avance !

Concernant les adresses "en dur" : dans ton message précédent, tu donnes une url que tu dis avoir renseignée dans la fenêtre de configuration de mon appli. Or, dans cette url tu as spécifié directement les adresses IP et MAC au lieu de les remplacer respectivement par %ip% et %mac% (des "variables"). Du coup, quelle que soit la machine sélectionnée dans l'appli que tu essayes de réveiller via Internet, l'url sera toujours la même donc c'est toujours la même machine qui se réveillera. Alors qu'en utilisant les "variables", l'url qui sera appelée par l'appli sera modifiée "à la volée" en remplaçant les "variables" par les valeurs correspondantes de la machine sélectionnée... Maintenant, si tu veux réveiller une machine via un raccourci ou un favori de navigateur (donc hors de mon appli), alors là il te faudra effectivement utiliser les adresses "en dur" et non les "variables". Est-ce que c'est plus clair expliqué comme ça ?

Enfin, "php_sockets" est une "extension" de PHP qui est nécessaire pour communiquer entre deux machines. C'est grâce à elle que l'on peut envoyer les "magic packets" grâce auxquels le réveil à distance est possible. Pour vérifier si ton hébergeur a activé cette extension, crée un fichier .php contenant la ligne  <?php phpinfo(); ?> , uploade-le sur ton hébergement et appelle-le depuis ton navigateur. Ça devrait t'afficher une page contenant de nombreuses informations parmi lesquelles une entrée "Sockets support : enabled" (ça peut varier selon la version de PHP)...


Réaction n°341 

par AlainClaude le 13/01/2017 @ 23:07

Bonjour, bonsoir.

D'abord félicitations pour ce soft qui doit être utile à beaucoup de monde.
J'en fais pour ma part une utilisation familiale pour réveiller une vieille machinetransformée en NAS  qui fonctionne sous Debian/Openmediavault et où je sauvegarde les photos et documents de toute la famille.
Cette machine étant assez bruyante je l'ai reléguée au sous sol d'où mon utilisation de wakeonlan.
J'arrive à la réveiller sans problème avec le script qui est sur le site dipisoft.
J'aurai voulu la réveiller avec le script que j'ai téléchargé et que j'ai installé chez mon hébergeur.
Dans wakeonlan options>configuration>reveil par internet j'ai rentré  ma ligne de commande

http://monfai.fr/wakeonwan.php?ip=92.xxx.xxx.xx&mac=00-00-00-0000-00&port=9

mais voilà ça ne fonctionne pas.

Pourtant je reçois bien le message:
[OK001] Paquet envoyé avec succès vers l'adresse : 92.xxx.xxx.xx
aussi bien avec wakeonlan qu'avec un appel direct du script dans la barre d'adresse de firefox.

ou est-ce que j'ai faux ?

Cordialement et merci d'avance.

[réponse de damien, le 14/01/2017 à 10h45]

Pour être sûr que l'on se comprend bien, tu souhaites donc réveiller ce NAS depuis l'extérieur de chez toi ?

Si ce n'est pas le cas (donc si tu veux le réveiller uniquement depuis le réseau de ton domicile), sache que tu n'as pas besoin de faire du réveil depuis Internet ou "WOW" (via le script hébergé sur mon site ou sur le tien) ; le réveil "normal" ou "WOL" est amplement suffisant. Ce qui simplifie grandement le problème. Dans ce cas il faut utiliser l'adresse IP privée et l'adresse MAC de la machine, le port importe peu.

Mais si tu veux réveiller ton NAS de n'importe où (de ton boulot ou depuis ton mobile, par exemple), là effectivement il faut passer par le WOW via le script de mon site, par exemple, ou héberger celui-ci sur un site internet perso. Mais ça ne fonctionne pas avec tous les hébergeurs car rares sont ceux qui permettent l'utilisation de l'extension php_sockets. Cette fois, c'est l'adresse IP publique de la box, l'adresse MAC de la machine qu'il faudra spécifier et le port aura son importance car tu devras mettre en place une règle de routage de ce dernier vers l'IP privée de la machine (à moins d'être chez Free et de configurer l'option "proxy wol" de la box).

Mais malgré une configuration correcte, en général le WOW (en dehors de chez Free) ne fonctionne que pendant un laps de temps assez court après l'extinction de la machine. Environ 5 minutes, la plupart du temps. C'est le temps au bout duquel le routeur (ou la box) purge sa table de routage et "oublie l'existence" de ladite machine. Et il n'y a quasiment rien à faire contre ça, si ce n'est remplacer le routeur par un autre disposant d'un équivalent de l'option "proxy wol" des Freebox...

Peut-être sais-tu déjà tout ceci et que cette explication ne t'apporte rien. Je pense toutefois qu'elle peut-être utile, si ce n'est pas pour toi, ça peut l'être pour d'autres qui n'auront pas le courage de lire les centaines d'autres commentaires de cet article...

Donc, pour en revenir à ton cas : es-tu sûr que ton hébergeur permet l'utilisation des sockets ? Si oui, as-tu spécifié la bonne adresse IP (l'IP publique de la box, mais ça fonctionne aussi avec le nom DNS correspondant) et la bonne adresse MAC ? As-tu routé le port 7 ou 9 (ou activé l'option "proxy wol" dans le cas d'une Freebox) ? Est-ce que tes tests (entre l'utilisation du script de mon site et quand il est sur ton site) ont été réalisés dans les mêmes conditions, je pense notamment au temps depuis lequel la machine était éteinte ?

Enfin, mais le problème ne vient pas de là, je vois que tu as spécifié "en dur" l'adresse IP, l'adresse MAC et le port dans l'url. En principe il faut utiliser les variables %ip%, %mac% et %port%, celles-ci seront remplacées par les valeurs de la machine sélectionnée au moment du réveil. Je te conseille donc d'utiliser :

http://monfai.fr/wakeonwan.php?ip=%ip%&mac=%mac%&port=%port%

N'hésite pas à me recontacter si nécessaire.


Réaction n°340 

par Benjamin le 09/01/2017 @ 11:22

Salut,Tout d'abord merci pour tes outils. Je débute en administration et du coup en faisant des recherche je suis tombé sur ton site ! Une mine d'or :D
J'ai essayé de mettre ton application WakeOnLan sur un serveur mais j'ai le soucis indiqué dans ta FAQ (elle ne veut pas se lancer à cause du système 64bits - NBSTAT etc )...

J'ai trouvé ce lien qui peut être t'intéressera pour améliorer ton appli :

https://scottiestech.info/2009/06/20/calling-a-32-bit-system-command-from-a-script-in-x64-windows/

Voilou si ça peut aider 
Bonne continuation,

Ben

[réponse de damien, le 09/01/2017 à 18h47]

Merci pour le lien mais il ne m'apporte pas grand-chose.

Comme l'auteur l'écrit, dans son cas non plus il n'a pas de version 32 bits de NBTSTAT dans Sysnative/SysWOW64. Et il ne donne pas de solution pour ça, il ne fait que proposer une méthode qui fonctionne dans un cas "standard" où le système possède ce fichier...

Du coup, as-tu réglé ton problème ?


Réaction n°339 

par jjacques le 21/12/2016 @ 19:17

Alors pour ceux qui ont eut des soucis comme moi pour arrêter un PC win7 familiale (pas dans un domaine mais en Workgroup), le FAQ vient d'être mis à jour avec un script a télécharger.

Dans mon cas ce script fonctionne nickel !!

Et je viens de me rendre compte après essai que ça fonctionne aussi pour win7 PRO en Workgroup.

Un grand merci à Damien pour sa rapidité et son efficacité !!

[réponse de damien, le 21/12/2016 à 19h22]

Merci d'avoir pris le temps de poster le résultat de l'opération et également pour le don que tu as fait. cligne