45 lines
2.7 KiB
Python
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"
|
|
|