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

Réactions à cet article

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


Réaction n°338 

par jjacques le 20/12/2016 @ 19:22

Bonjour,

Je n'arrive pas à faire fonctionner le shutdown avec un PC sous win7 édition familiale sur le réseau local (workgroup)

y-a-t-il un paramètre dans Windows à activer ?

Les 2 règles WMI-in du  pare-feu sont autorisées... mais sans succès.

Merci !

[réponse de damien, le 21/12/2016 à 11h50]

Je viens de retoucher une partie de la FAQ qui, je l'espère, t'aidera à résoudre ce problème.

Jette un coup d’œil à ceci : "Dipiscan/IPScan32/WakeOnLan/WmiSysInfos - Accéder aux informations et/ou agir sur une machine à distance"

N'utilisant pas les éditions "Home", je ne sais pas si ce sera salvateur dans ton cas. N'hésite pas à me recontacter pour me dire si ça a fonctionné ou si tu es toujours bloqué.


Réaction n°337 

par Gilles le 02/11/2016 @ 15:22

Bonjour ,la question a peut etre été deja posée mais
je gère un parc de 8000 machines sous AD.
Peut on importer les machines facilement ?
Merci pour ton aide
Gilles

[réponse de damien, le 02/11/2016 à 19h16]

Facilement, oui et non... L'appli offre des fonctionnalités d'import mais pas en provenance de l'AD, uniquement de fichiers formatés.

Pour parvenir à tes fins, tu devras faire une extraction de la liste des PC (via certains outils ou scripts) de l'AD vers un fichier texte et alors tu pourras importer ces machines dans WakeOnLan.

Je te propose ce script (qui n'est pas encore dispo sur mon site). Il s'agit d'une version enrichie du script UserInfos qui était plus destiné aux comptes utilisateurs. Ce nouveau script est plus (+) configurable. Il doit être lancé sur une machine du domaine, après l'avoir éventuellement paramétré en fonction de tes besoins, en modifiant les constantes situées entre les lignes 25 et 70.


Réaction n°336 

par al le 06/10/2016 @ 17:10

Bonjour,
Je souhaite réveiller l'ordi B depuis mon téléphone et ordi A.
Sur l'ordi B (acer F15 windows 10 carte réseau Realtek PCIe GBE Family controller (version 10.1.505.2015) j'ai :* dans le bios : activer le WOL* Propriété carte ethernet : gestion alimentation j'ai autorisé le paquet magique à sortir l'ordi du mode veille* Propriété carte ethernet : Avancé, Wake on magic packet est bien sur enabled* J'ai désactivé le démarrage rapide
Sur ma box Livebox, * j'ai ouvert les port TCP/UDP 445, 8900, 9, 22, 7, 4343* J'ai aussi donné une adresse IP statique à B pour être sûr quelle ne change pas.
Sur le logiciel *quand je clique sur tester tout, le point est bien vert*quand je veux redémarer j'ai err=5
Je ne sais plus quoi faire pour que ça marche. Pouvez-vous m'aider ? Merci

[réponse de damien, le 06/10/2016 à 19h57]

On parle de quoi là, de réveil (WOL/WOW, allumage du PC quand il est éteint ou en veille) ou de redémarrage (reboot d'un PC allumé) ?

Parce que les opérations que tu as effectuées/décrites concernent le réveil (WOL/WOW).

Mais ensuite tu parles de "redémarrer" et d'erreur n°5 (accès refusé). Erreur "normale" si tu n'as pas fait les configurations nécessaires, décrites notamment dans la FAQ de mon site. Le plus simple étant d'utiliser le script suivant (à partir de Vista, la conf du firewall n'étant pas adaptée à XP et précédents), à exécuter en tant qu'admin.

echo ### Configuration du firewall pour activer la réponse au ping et la réponse aux requêtes NetBIOS
netsh advfirewall firewall add rule name="_ICMPv4" protocol=icmpv4:any,any dir=in action=allow
netsh advfirewall firewall add rule name="_NetBIOS UDP Port 137" dir=in action=allow protocol=UDP localport=137
netsh advfirewall firewall add rule name="_NetBIOS UDP Port 137" dir=out action=allow protocol=UDP localport=137
netsh advfirewall firewall add rule name="_NetBIOS UDP Port 138" dir=in action=allow protocol=UDP localport=138
netsh advfirewall firewall add rule name="_NetBIOS UDP Port 138" dir=out action=allow protocol=UDP localport=138
netsh advfirewall firewall add rule name="_NetBIOS TCP Port 139" dir=in action=allow protocol=TCP localport=139
netsh advfirewall firewall add rule name="_NetBIOS TCP Port 139" dir=out action=allow protocol=TCP localport=139
netsh advfirewall firewall add rule name="_NetBIOS TCP Port 445" dir=in action=allow protocol=TCP localport=445
netsh advfirewall firewall add rule name="_RPC" dir=in action=allow protocol=TCP localport=RPC
echo.

echo ### Activation de l'administration à distance
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v AllowRemoteRPC /t reg_dword /d 1 /f
echo.

echo ### Désactivation de l'UAC pour les appels distants
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v LocalAccountTokenFilterPolicy /t reg_dword /d 1 /f
echo.

pause