Results 1 to 7 of 7
|
|
Enjoy an ad free experience by logging in. Not a member yet? Register.
|
|
-
05-10-2006 #1Just Joined!
- Join Date
- May 2006
- Posts
- 2
remote shutdown of Windows from Linux box
I have 2 windows box and one linux box. I want to shutdown the windows
box remotely from linux box.
Any ideas for the above problem ?? I know Samba is one way but dont know how to configure Samba for shutting remote windows.
Every help is appreciated.
Thanks
-
05-10-2006 #2
Is this for scripting purposes or just to remotely shut down? If it's just access to do it you could use TS/Remote Desktop or even go the vnc route. If it's a case that you are already remoting it and missing your shutdown command, go to start > settings > Windows Security and you will get the ctrl-alt-del option screen.
-
05-10-2006 #3Just Joined!
- Join Date
- May 2006
- Posts
- 2
scripting purpose..I want to automate the process rather than using remote desktop.
Originally Posted by bigtomrodney
-
07-01-2006 #4Just Joined!
- Join Date
- Apr 2006
- Posts
- 15
here is the python script to shutdown the system remotely
#!/usr/bin/env python
# win32shutdown.py
import win32api
import win32con
import win32netcon
import win32security
import win32wnet
def shutdown(host=None, user=None, passwrd=None, msg=None, timeout=0, force=1,
reboot=0):
""" Shuts down a remote computer, requires NT-BASED OS. """
# Create an initial connection if a username & password is given.
connected = 0
if user and passwrd:
try:
win32wnet.WNetAddConnection2(win32netcon.RESOURCET YPE_ANY, None,
''.join([r'\\', host]), None, user,
passwrd)
# Don't fail on error, it might just work without the connection.
except:
pass
else:
connected = 1
# We need the remote shutdown or shutdown privileges.
p1 = win32security.LookupPrivilegeValue(host, win32con.SE_SHUTDOWN_NAME)
p2 = win32security.LookupPrivilegeValue(host,
win32con.SE_REMOTE_SHUTDOWN_NAME)
newstate = [(p1, win32con.SE_PRIVILEGE_ENABLED),
(p2, win32con.SE_PRIVILEGE_ENABLED)]
# Grab the token and adjust its privileges.
htoken = win32security.OpenProcessToken(win32api.GetCurrent Process(),
win32con.TOKEN_ALL_ACCESS)
win32security.AdjustTokenPrivileges(htoken, False, newstate)
win32api.InitiateSystemShutdown(host, msg, timeout, force, reboot)
# Release the previous connection.
if connected:
win32wnet.WNetCancelConnection2(''.join([r'\\', host]), 0, 0)
if __name__ == '__main__':
# Immediate shutdown.
shutdown('salespc1', 'admin', 'secret', None, 0)
# Delayed shutdown 30 secs.
shutdown('salespc1', 'admin', 'secret', 'Maintenance Shutdown', 30)
# Reboot
shutdown('salespc1', 'admin', 'secret', None, 0, reboot=1)
# Shutdown the local pc
shutdown(None, 'admin', 'secret', None, 0)
enjoy have a nice day
-
07-01-2006 #5Just Joined!
- Join Date
- Apr 2006
- Posts
- 15
got the link from
-
07-27-2007 #6Just Joined!
- Join Date
- Jul 2007
- Posts
- 1
Try PowerOff from this page:
PowerOff
Install that on the Windows box as a service with an appropriate password, then test it by telnetting into the box (see chapter 5 of the manual) and shutting down.
Scripting it should be fairly straightforward after that. (You'll need to automate telnet, perhaps by cat'ing a file with the relevant commands to it...)
-
04-02-2008 #7Just Joined!
- Join Date
- Apr 2008
- Location
- Southern California
- Posts
- 6
You can also shutdown a windows box if you have samba installed.
"net rpc SHUTDOWN -C "some comment here" -f -I x.x.x.x -U user_name%password"
As long as the user you supplied has rights to shutdown the system it will work.
I wrote a bash script that scans our network and turns off all our system that are left on over night. If you are interested.
"#!/bin/bash
wks=(`nmap -sL --dns-servers 10.x.x.x,10.x.x.x 10.x.x.x/22, 10.x.x.x.x/23 grep FQDN|cut -d" " -f2 |grep -v -f serverlist`)
for (( i=0; i < "${#wks[@]}"; i++)); do
net rpc SHUTDOWN -C "This system was left on after hours and is being shutdown" -f -I "${wks[$i]}" -U user_name%password
done"
Basically what the script does is scans the network(s) with nmap, pipes it though grep and cut to get the FQDN. Then "grep -v -f serverlist" is an exclude list of server I don't want shutdown. From there it puts the workstations into an array and turns off each system.
Hope it helps


