Shutdown Windows machine from linux terminal
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.
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 AdministratorFind
HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System
Create a new registry
DWORD(32)
value namedLocalAccountTokenFilterPolicy
and then assign it the value1
3) Start remote registry service:
Open
cmd.exe
as AdministratorExecute 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.