Voici le script qui permet d’éteindre automatiquement tous mes postes Windows XP depuis le contrôleur de domaine (PDC) Linux samba situé dans le même sous réseau (192.168.0.0/24) :
#!/bin/sh
if [ $# = 0 ]; then
echo "Usage : $0 nombre-de-secondes-avant-arret"
exit 1
fi
echo "Ce programme eteind toutes les machines comprises entre 192.168.0.2 et 192.168.0.150.
echo "Vous avez 10 secondes pour faire CTRL-C."
sleep 10
for IP in $(nmap -sP 192.168.0.2-150 | grep "appears to be up" | cut
-d" " -f2);do
/usr/bin/net rpc SHUTDOWN -f -I $IP -U utilisateur_du_domaine%mot_de_passe -t $1
done
PS: Les postes Windows XP Pro (sp2) ont leur firewall Windows d’activé, et, l’exception « Partage de fichiers et d’imprimante » est cochée. De plus, dans les stratégies de sécurité locale des postes XP, j’autorise l’utilisateur « RESEAU » à « Forcer l’arrêt à partir d’un système distant ».
Les utilisateurs des postes XP sont de simples utilisateurs (groupe « utilisateurs »), ils n’ont donc pas la possibilité d’exécuter la commande shutdown de Windows afin d’éteindre un ordinateur distant (ils ont un message d’erreur…).