[python-win32] rebooting windows from Python?
mail at timgolden.me.uk
Fri Dec 5 10:02:10 CET 2008
Tim Roberts wrote:
> Alec Bennett wrote:
>> I'm wondering if there's some way to reboot or shutdown Windows from within Python?
>> I can log out like this:
>> And according to the documentation, I should be able to shutdown like this:
>> But that returns the following error:
>> 'A required privilege is not held by the client.'
>> Is there some way to do this? Currently I'm running shutdown.exe, which works, but I'd rather do it directly if possible.
> Yes -- you have to acquire the required privilege. ;) The mechanism to
> do so is tedious, and involves fetching your current privilege token,
> then adjusting it in place. You can read about it in the MSDN page on
> Personally, and it really is a personal preference, I think it's a lot
> less trouble, and a lot easier to understand, just to use the tools at
> my disposal:
> subprocess.call( "shutdown", "-r" )
Or... WMI makes this one slightly easier. This example:
comes close. You don't -- probably -- need the remote machine bit,
and the privilege you need is Shutdown, not RemoteShutdown. Oh, sod
it; here's the code:
wmi.WMI (privileges=["Shutdown"]).Win32_OperatingSystem ().Shutdown ()
More information about the python-win32