Note:
Run as LocalSystemUser
on_off=itsm.getParameter('onoff')#1/0 1:on(add shutdown,hibernate and sleep) 0:off(remove shutdown,hibernate and sleep)
import ctypes
import re
import time
import socket
import _winreg
import platform
import shutil
import ssl
import urllib2
import getpass
import zipfile
import shutil
import os
import glob
from subprocess import PIPE,Popen
import ctypes
start=time.time()
if on_off:
URL=r"https://script-downloads.comodo.com/rm_or_ad_shutdown_hibernate_sleep/Enable_Shut-Down_Restart_Sleep_Hibernate_in_Power-Menu.reg"
else:
URL=r"https://script-downloads.comodo.com/rm_or_ad_shutdown_hibernate_sleep/Disable_Shut-Down_Restart_Sleep_Hibernate_in_Power-Menu.reg"
class disable_file_system_redirection:
_disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
_revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection
def __enter__(self):
self.old_value = ctypes.c_long()
self.success = self._disable(ctypes.byref(self.old_value))
def __exit__(self, type, value, traceback):
if self.success:
self._revert(self.old_value)
def Download(src_path, URL,fp):
import urllib2
request = urllib2.Request(URL, headers={'User-Agent' : "Magic Browser"})
try:
gcontext = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
parsed = urllib2.urlopen(request,context=gcontext)
except:
parsed = urllib2.urlopen(request)
if not os.path.exists(src_path):
os.makedirs(src_path)
with open(fp, 'wb') as f:
while True:
chunk=parsed.read(100*1000*1000)
if chunk:
f.write(chunk)
else:
break
return fp
Folder=os.environ['programdata']+r"\extraction_file"
if not os.path.exists(Folder):
os.mkdir(Folder)
fileName=r"registry_file.reg"
src_path=Folder
fp = os.path.join(src_path, fileName)
Excutable_path=Download(Folder, URL,fp)
print "Downloaded succesfully to "+Excutable_path+""
os.chdir(Folder)
print r"regedit.exe /s %s"%fileName
obj=Popen(r"regedit.exe /s %s"%fileName,stdout=PIPE,stderr=PIPE)
r,e=obj.communicate()
if e:
print e
else:
if r:
print r
shutil.rmtree(Folder,ignore_errors=True)
else:
print "Success"
shutil.rmtree(Folder,ignore_errors=True)
Comments