Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Shutdown Windows machine from linux terminal

I am running an application on linux machine. By giving the ip address of a windows machine as input, the application must shutdown the windows machine. If the machines run the same OS it is very easy but I'm confused how to do it in cross OS.

like image 433
ganesshkumar Avatar asked Mar 30 '12 04:03

ganesshkumar


People also ask

How do you shut down in terminal?

Linux shutdown commands are entered in the Linux terminal that is launched by using the keyboard shortcut[Ctrl] + [Alt] + [T]. You can then close the terminal window with the shortcut [Ctrl] + [D].

How do you shutdown all computers on a network using terminal?

Shut down machines remotely from any computer on the network by clicking the Start button in the lower-left corner of your screen, selecting "All Programs," "Accessories" and then "Command Prompt." Type "shutdown /i" (without the quotes) and press "Enter" to open the remote shutdown dialog box.


2 Answers

There may be more setup to do, especially for Windows Vista, Windows 7 and further windows versions, to allow remote shutdown:

Part A) On the Windows machine:

1) Add a remote shutdown security policy:

  • run secpol.msc

  • in the program tree, open Security Settings > Local Policies > User rights Assignment

  • Find the entry Force shutdown from a remote system

  • Edit the entry, add the windows user account that will be used for shutdown (ex: nouknouk)

2) Add registry keys to disable UAC remote restrictions:

  • Run regedit.exe as Administrator

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

  • Create a new registry DWORD(32) value named LocalAccountTokenFilterPolicy and then assign it the value 1

3) Start remote registry service:

  • Open cmd.exeas Administrator

  • Execute the two following commands:

    sc config RemoteRegistry start= auto

    sc start RemoteRegistry

Part B) On the Linux machine:

1) install the package samba-common:

It depends on your Linux distribution, but for Debian and derivated (Ubuntu, Linux Mint, ...), the apt-get command can be executed like that:

apt-get install samba-common

2) To actually shutdown your Windows machine from the Linux one, run the following command:

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

Where:

  • -f means force shutting down all applications (may be mandatory)

  • -t 0 is the delay before doing it (0 means 'right now').

  • -U user%password is the local user and his password on the windows machine (the one that has been allowed to do remote shutdown in part A).

  • -I is the IP address of the windows machine to shutdown.

like image 127
nouknouk Avatar answered Nov 15 '22 21:11

nouknouk


Command to shutdown windows system from linux -:

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

This command can be issued from bash or even set in cron job to shutdown the computer at a specific time and this command is shipped with many distros by default.

like image 23
ganesshkumar Avatar answered Nov 15 '22 22:11

ganesshkumar