web-dev-qa-db-fra.com

Arrêtez la machine Windows du terminal linux

J'exécute une application sur la machine Linux. En donnant l'adresse IP d'une machine Windows en tant qu'entrée, l'application doit éteindre la machine Windows. Si les machines fonctionnent sous le même système d'exploitation, c'est très simple, mais je ne comprends pas comment le faire dans plusieurs systèmes d'exploitation.

10
ganesshkumar

Commande d'arrêt du système Windows à partir de Linux -:

$ net rpc -S <ip address> -U <username>%<password> shutdown -t 1 -f

Cette commande peut être émise par bash ou même définie dans le travail cron pour éteindre l'ordinateur à une heure précise. Cette commande est livrée avec de nombreuses distributions par défaut.

15
ganesshkumar

Il peut y avoir plus de configuration à faire, en particulier pour Windows Vista, Windows 7 et les autres versions de Windows, pour permettre l’arrêt à distance:

Partie A) Sur la machine Windows:

1) Ajoutez une politique de sécurité d’arrêt à distance:

  • exécuter secpol.msc

  • dans l'arborescence du programme, ouvrez Security Settings> Local Policies> User rights Assignment

  • Trouver l'entrée Force shutdown from a remote system

  • Modifiez l'entrée, ajoutez le compte utilisateur Windows qui sera utilisé pour la fermeture (ex: nouknouk)

2) Ajoutez des clés de registre pour désactiver les restrictions à distance UAC:

  • Exécuter regedit.exe en tant qu'administrateur

  • Trouver HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System

  • Créez une nouvelle valeur DWORD(32) du registre nommée LocalAccountTokenFilterPolicy, puis attribuez-lui la valeur 1.

3) Démarrer le service de registre distant:

  • Ouvrez cmd.exeen tant qu'administrateur

  • Exécutez les deux commandes suivantes:

    sc config RemoteRegistry start= auto

    sc start RemoteRegistry

Partie B) Sur la machine Linux:

1) installez le paquet samba-common:

Cela dépend de votre distribution Linux, mais pour Debian et ses dérivés (Ubuntu, Linux Mint, ...), la commande apt-get peut être exécutée de la manière suivante:

apt-get install samba-common

2) Pour arrêter votre machine Windows à partir de Linux, exécutez la commande suivante:

net rpc shutdown -f -t 0 -C 'message' -U userName%password -I xxx.yyy.zzz.ttt

Où:

  • -f signifie forcer la fermeture de toutes les applications (peut être obligatoire)

  • -t 0 est le délai avant de le faire (0 signifie «maintenant»).

  • -U user%password est l'utilisateur local et son mot de passe sur la machine Windows (celui qui a été autorisé à effectuer un arrêt à distance dans la partie A).

  • -I est l'adresse IP de la machine Windows à arrêter.

12
nouknouk

Il est important de noter que la solution ci-dessus ne fonctionnera pas si le nom d'utilisateur en question n'a pas de mot de passe défini (du moins c'est ce qui s'est passé dans mon cas).

Pour les utilisateurs de Windows 10 (et peut-être pas encore vérifiés), il faut accéder aux paramètres du pare-feu et activer "Gestion des services distants" pour que le boîtier Linux puisse se connecter via RPC.

1
PCatinean

Cela dépend de votre infrastructure - comment vous authentifiez-vous sur les machines Windows, si vous pouvez les configurer vous-même, etc. Si c'était moi, je mettrais Cygwin sur les boîtes Windows, puis ssh et exécutez shutdown -h . Il y a sûrement d'autres façons de le faire, bien sûr.

1

Vous avez besoin d’un moyen de lancer un shell sur Windows pour pouvoir exécuter la commande shutdown intégrée à Windows.

Vous pouvez installer Cygwin pour cela, puis installer un démon SSH sous Windows. Une fois que celui-ci est en cours d’exécution, votre machine Linux peut exécuter des commandes sur la machine Windows, comme si c’était une autre machine Linux.

Voici quelques instructions pour configurer sshd de Cygwin sous Windows .

1
ghoti

Option 1: Installez le serveur SSH sur Windows. Connectez-vous à ce serveur à partir de n’importe quelle boîte et appelez la commande shutdown. Nous utilisons Interix (environnement semblable à celui de Microsoft). Il est livré avec un serveur telnet- permet d’appeler les commandes Windows d’autres machines.

Autre option: si vous avez installé samba sur Windows, il peut se connecter à Windows et appeler des commandes Windows.

 net rpc SHUTDOWN ...

(de http://www.linuxforums.org/forum/red-hat-Fedora-linux/60324-remote-shutdown-windows-linux-box.html#post573872 )

Une autre option: essayez rdesktop sur la machine Windows avec la commande shutdown (je l’utilise pour exécuter un script batch Windows qui est shutdown, je ne sais pas si vous pouvez directement appeler shutodwn)

0
Jayan