Comment éteindre à distance des PC Windows XP depuis un serveur Linux
Contexte
Nous avions un serveur Red Hat Enterprise Linux (RHEL5) et 29 postes Dell Optiplex 745 sous Windows XP SP3 dans un laboratoire. Le but était d’éteindre automatiquement les machines non essentielles la nuit pour économiser l’énergie. Le processus décrit ci‑dessus combine réglages côté Windows XP et l’usage de Samba côté Linux.
Conditions préalables côté Windows XP
- Désactiver le partage simple de fichiers — DÉCOCHEZ « Utiliser le partage de fichiers simple » dans Poste de travail > Outils > Options des dossiers > Affichage. Cela permet la gestion d’utilisateurs et des permissions locales.
- Pare‑feu et services — Assurez‑vous que le Pare‑feu Windows autorise:
- les requêtes ICMP (ping) : Panneau de configuration > Centre de sécurité > Pare‑feu Windows > Avancé > Paramètres ICMP > COCHEZ « Autoriser les requêtes echo entrantes »;
- le Partage de fichiers et d’imprimantes : Panneau de configuration > Centre de sécurité > Pare‑feu Windows > Exceptions > COCHEZ « Partage de fichiers et d’imprimantes ».
- Vous devez pouvoir pinguer l’adresse IP du poste Windows XP à partir du serveur Linux.
- Droits pour forcer l’arrêt à distance — Par défaut, seule l’appartenance au groupe Administrateurs local permet le shutdown à distance. Pour étendre ou restreindre cet accès : Executer gpedit.msc > Configuration ordinateur > Paramètres Windows > Paramètres de sécurité > Stratégies locales > Attribution des droits utilisateur > Forcer l’arrêt d’un système à distance. Ajoutez l’utilisateur ou le groupe souhaité.
Important : conservez un compte administrateur local pour chaque machine (ou un compte de domaine avec les droits appropriés si vous utilisez un domaine).
Conditions préalables côté serveur Linux
- Samba installé et fonctionnel. Sur RHEL5, Samba sert ici de client RPC (Remote Procedure Call) vers les postes Windows. Dans notre réseau, le serveur Samba faisait aussi office de WINS pour le groupe de travail.
- Il est recommandé que le serveur DHCP attribue des adresses IP statiques (réservations) aux postes du laboratoire afin d’avoir des cibles stables pour les arrêts programmés.
- Un service DNS (BIND) avec une zone locale pour le sous‑réseau facilite la résolution de noms et le diagnostic.
- Ports à vérifier : SMB/CIFS utilise généralement 139 et 445 (TCP). Assurez‑vous que le serveur Linux peut joindre ces ports sur les postes Windows XP.
Commande de base
La commande Samba qui effectue l’arrêt à distance :
net rpc SHUTDOWN -C "message à afficher lors de l'arrêt" -f -I x.x.x.x -U username%passwordExplications rapides :
- x.x.x.x : adresse IP du poste Windows XP cible.
- username : compte membre du groupe Administrateurs local sur la machine cible.
- password : mot de passe associé.
- -C : commentaire affiché à l’utilisateur avant l’arrêt.
- -f : force la fermeture des applications (utiliser avec précaution).
Note : la syntaxe username%password place le mot de passe en clair dans la ligne de commande ; voir la section Sécurité pour stocker les identifiants de façon plus sûre.
Tester la configuration
- Depuis le serveur Linux, pinguez l’adresse IP :
ping -c 4 x.x.x.x- Testez l’authentification Samba :
net rpc -I x.x.x.x -U username%password testjoin- Si la commande retourne une erreur, vérifiez : connectivité réseau, pare‑feu sur la machine cible, nom d’utilisateur/mot de passe, et que le partage simple est désactivé.
Exemple de script d’arrêt pour plusieurs machines
Créez un script exécutable sur le serveur, par exemple /usr/local/bin/shutdown-lab.sh :
#!/bin/bash
# Script : arrêt des postes Windows XP du labo
COMMENT="Arrêt automatique du laboratoire - Merci de sauvegarder votre travail"
CREDENTIALS="adminuser%votre_mot_de_passe"
IPS=(10.0.1.101 10.0.1.102 10.0.1.103 10.0.1.104)
for ip in "${IPS[@]}"; do
echo "Arrêt de $ip"
net rpc SHUTDOWN -C "$COMMENT" -f -I $ip -U $CREDENTIALS
sleep 2
doneRendre exécutable et protéger le fichier :
chmod 700 /usr/local/bin/shutdown-lab.sh
chown root:root /usr/local/bin/shutdown-lab.shPuis ajouter une entrée cron pour exécuter le script chaque soir à 23:30 :
30 23 * * * /usr/local/bin/shutdown-lab.shImportant : ne placez pas de mots de passe en clair si d’autres utilisateurs ont accès au serveur. Voir Sécurité ci‑dessous.
Déploiement méthodologique (mini‑méthode)
- Inventaire : listez IPs/hostnames et comptes administrateurs locaux.
- Préparation XP : désactivation du partage simple, configuration du pare‑feu, test de ping.
- Préparation Linux : installer/configurer Samba, valider connectivité SMB (ports 139/445).
- Tests unitaires : test sur une seule machine avant déploiement massif.
- Automatisation : script + cron.
- Supervision : vérifier les logs et confirmer l’arrêt nocturne pendant quelques nuits.
Critères d’acceptation (tests)
- Le serveur Linux peut pinguer chaque poste.
- La commande
net rpc shutdownrenvoie succès sans erreurs. - Le message d’arrêt apparaît sur le poste Windows XP et la machine s’éteint.
- Le script cron s’exécute à l’heure prévue et génère un log sans échecs répétés.
Alternatives et cas où la méthode peut échouer
Alternatives :
- Utiliser PsShutdown (Sysinternals) depuis une machine Windows ou via winexe si disponible.
- Installer un client SSH/Cygwin sur les postes Windows (plus lourd) et exécuter des commandes distantes.
- Gérer via Active Directory / GPO si les postes sont en domaine.
- Wake-on‑LAN pour allumer les machines, combiné à un agent pour l’arrêt si nécessaire.
Quand cela peut échouer :
- Pare‑feu ou règles réseau bloquent les ports SMB (139/445).
- Partage simple encore activé ou compte non administrateur.
- Machines hors ligne ou sur une VLAN isolée.
Sécurité et bonnes pratiques
- Évitez autant que possible de stocker des mots de passe en clair. Si vous devez en stocker, placez le script et le fichier de credentials avec des permissions root strictes (chmod 600/700) et limitez l’accès au compte administrateur.
- Créez un compte administrateur dédié pour les arrêts à distance avec le moins de droits possibles à part le droit d’arrêter la machine.
- Restreignez l’accès réseau au serveur Linux qui exécute les arrêts (VLAN, pare‑feu réseau, IP whitelisting).
- Journalisez les arrêts et surveillez les erreurs (syslog / var/log) pour détecter les problèmes répétés.
- Pour des environnements plus modernes, privilégiez des protocoles chiffrés et des solutions supportées plutôt que SMBv1 lorsque possible.
Confidentialité et conformité (notes pour établissements scolaires)
- Limitez la collecte d’informations personnelles : vous n’avez besoin que des adresses IP/hostnames et d’un compte admin local, pas des fichiers utilisateurs.
- Protégez les identifiants au repos et en transit. Documentez qui a accès aux credentials.
- Informez les utilisateurs/enseignants de la fenêtre d’arrêt et fournissez des instructions pour sauvegarder leur travail.
Checklists par rôle
Administrateur réseau :
- Vérifier maping IP/DHCP et réservations
- Valider ouverture des ports 139/445 entre serveur et postes
- Configurer Samba et tester
net rpc
Professeur / Responsable lab :
- Communiquer la fenêtre d’arrêt aux étudiants
- S’assurer que les postes importants restent exclus du script
Technicien support :
- Tester arrêt sur un poste témoin
- Surveiller logs et exécuter redémarrages manuels si nécessaire
Boîte à outils rapide (cheat sheet)
- Tester ping : ping -c 4 x.x.x.x
- Test net rpc : net rpc -I x.x.x.x -U user%pass testjoin
- Arrêt ponctuel : net rpc SHUTDOWN -C “message” -f -I x.x.x.x -U user%pass
- Script automatisé : /usr/local/bin/shutdown-lab.sh + cron
Tableau des ports importants
- ICMP (ping) : protocole réseau utilisé pour vérifier la disponibilité
- SMB/CIFS : TCP 139, TCP 445 (communication RPC SMB)
Ressources et lectures complémentaires
http://www.lgr.ca/blog/2008/04/shutdown-windows-from-linux.html
http://landofthefreeish.com/linux/howto-remote-shutdown-of-a-windows-computer-from-linux/
http://blog.beausanders.com/?q=node/8
Résumé
- La méthode la plus simple pour éteindre des postes Windows XP depuis Linux est d’utiliser Samba et la commande
net rpc SHUTDOWN. - Préparez les postes XP (partage simple désactivé, ICMP et partage de fichiers autorisés) et un Samba fonctionnel sur le serveur.
- Automatisez avec un script protégé et cron, testez d’abord sur quelques machines, puis déroulez pour l’ensemble du parc.
Notes importantes : protégez les credentials, limitez les accès réseau et informez les utilisateurs de la fenêtre d’arrêt.
Matériaux similaires
Installer et utiliser Podman sur Debian 11
Guide pratique : apt-pinning sur Debian
OptiScaler : activer FSR 4 dans n'importe quel jeu
Dansguardian + Squid NTLM sur Debian Etch
Corriger l'erreur d'installation Android sur SD