wapt-lock-policy/setup.py

45 lines
2.7 KiB
Python

# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = []
variables = {
'screen_lock_enabled': True,
'screen_lock_timeout': 900
}
# Read local variables file if available
if isfile(makepath(programfiles32,'wapt','private','symetric.txt')) and isfile(makepath(programfiles32,'wapt','private','variables.txt')):
print('Reading local encrypted variables file')
from cryptography.fernet import Fernet
import yaml
f = Fernet(open(makepath(programfiles32,'wapt','private','symetric.txt'),'r').read())
variables.update(yaml.safe_load(f.decrypt(open(makepath(programfiles32,'wapt','private','variables.txt'),'r').read())))
def install():
print('Configuring screen locking policy')
if variables['screen_lock_enabled'] == True:
registry_setstring(HKEY_LOCAL_MACHINE, r'SOFTWARE\Policies\Microsoft\Power\PowerSettings\3C0BC021-C8A8-4E07-A973-6B14CBCB2B7E', 'ACSettingIndex', variables['screen_lock_timeout'], REG_DWORD)
registry_setstring(HKEY_LOCAL_MACHINE, r'SOFTWARE\Policies\Microsoft\Power\PowerSettings\3C0BC021-C8A8-4E07-A973-6B14CBCB2B7E', 'DCSettingIndex', variables['screen_lock_timeout'], REG_DWORD)
registry_setstring(HKEY_LOCAL_MACHINE, r'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System', 'NoDispScrSavPage', 1, REG_DWORD)
else:
for setting in ['ACSettingIndex','DCSettingIndex']:
registry_delete(HKEY_LOCAL_MACHINE, r'SOFTWARE\Policies\Microsoft\Power\PowerSettings\381b4222-f694-41f0-9685-ff5bb260df2e', setting)
registry_delete(HKEY_LOCAL_MACHINE, r'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System', 'NoDispScrSavPage')
def uninstall():
print('Removing screen locking policy')
for setting in ['ACSettingIndex','DCSettingIndex']:
registry_delete(HKEY_LOCAL_MACHINE, r'SOFTWARE\Policies\Microsoft\Power\PowerSettings\381b4222-f694-41f0-9685-ff5bb260df2e', setting)
registry_delete(HKEY_LOCAL_MACHINE, r'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System', 'NoDispScrSavPage')
def audit():
for setting in ['ACSettingIndex','DCSettingIndex']:
if not registry_readstring(HKEY_LOCAL_MACHINE,r'SOFTWARE\Policies\Microsoft\Power\PowerSettings\381b4222-f694-41f0-9685-ff5bb260df2e\%s' % setting):
print(r'SOFTWARE\Policies\Microsoft\Power\PowerSettings\381b4222-f694-41f0-9685-ff5bb260df2e\%s does not exist' % setting)
return "ERROR"
value = registry_readstring(HKEY_LOCAL_MACHINE,r'SOFTWARE\Policies\Microsoft\Power\PowerSettings\381b4222-f694-41f0-9685-ff5bb260df2e\%s' % setting)
if value != variables['screen_lock_timeout'] :
print("Screen lock timeout is not %, it's % instead" % (variables['screen_lock_timeout'], value) )
return "WARNING"