Use custom power plan during Auto Repairs
This commit is contained in:
parent
527a5b2e97
commit
93de0645cd
2 changed files with 93 additions and 0 deletions
|
|
@ -42,6 +42,8 @@ BASE_MENUS = {
|
||||||
MenuEntry('Create System Restore', 'auto_system_restore_create'),
|
MenuEntry('Create System Restore', 'auto_system_restore_create'),
|
||||||
MenuEntry('Backup Browsers', 'auto_backup_browser_profiles'),
|
MenuEntry('Backup Browsers', 'auto_backup_browser_profiles'),
|
||||||
MenuEntry('Backup Power Plans', 'auto_backup_power_plans'),
|
MenuEntry('Backup Power Plans', 'auto_backup_power_plans'),
|
||||||
|
MenuEntry('Reset Power Plans', 'auto_reset_power_plans'),
|
||||||
|
MenuEntry('Set Custom Power Plan', 'auto_set_custom_power_plan'),
|
||||||
MenuEntry('Backup Registry', 'auto_backup_registry'),
|
MenuEntry('Backup Registry', 'auto_backup_registry'),
|
||||||
),
|
),
|
||||||
'Windows Repairs': (
|
'Windows Repairs': (
|
||||||
|
|
@ -62,6 +64,7 @@ BASE_MENUS = {
|
||||||
MenuEntry('HitmanPro', 'auto_hitmanpro'),
|
MenuEntry('HitmanPro', 'auto_hitmanpro'),
|
||||||
MenuEntry('KVRT', 'auto_kvrt'),
|
MenuEntry('KVRT', 'auto_kvrt'),
|
||||||
MenuEntry('Windows Defender', 'auto_microsoft_defender'),
|
MenuEntry('Windows Defender', 'auto_microsoft_defender'),
|
||||||
|
MenuEntry('Remove Custom Power Plan', 'auto_remove_power_plan'),
|
||||||
MenuEntry('Reboot', 'auto_reboot'),
|
MenuEntry('Reboot', 'auto_reboot'),
|
||||||
),
|
),
|
||||||
'Manual Steps': (
|
'Manual Steps': (
|
||||||
|
|
|
||||||
|
|
@ -109,6 +109,11 @@ PROGRAMFILES_32 = os.environ.get(
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
OS_VERSION = float(platform.win32_ver()[0])
|
OS_VERSION = float(platform.win32_ver()[0])
|
||||||
|
POWER_PLANS = {
|
||||||
|
'Balanced': '381b4222-f694-41f0-9685-ff5bb260df2e',
|
||||||
|
'Custom': '01189998-8199-9119-725c-ccccccccccc3',
|
||||||
|
'High Performance': '8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c',
|
||||||
|
}
|
||||||
REG_UAC_DEFAULT_SETTINGS = {
|
REG_UAC_DEFAULT_SETTINGS = {
|
||||||
'HKLM': {
|
'HKLM': {
|
||||||
r'Software\Microsoft\Windows\CurrentVersion\Policies\System': (
|
r'Software\Microsoft\Windows\CurrentVersion\Policies\System': (
|
||||||
|
|
@ -714,6 +719,14 @@ def auto_reboot(group, name):
|
||||||
reboot(30)
|
reboot(30)
|
||||||
|
|
||||||
|
|
||||||
|
def auto_remove_power_plan(group, name):
|
||||||
|
"""Remove custom power plan and set to Balanced."""
|
||||||
|
result = TRY_PRINT.run(
|
||||||
|
'Remove Custom Power Plan...', remove_custom_power_plan,
|
||||||
|
)
|
||||||
|
save_settings(group, name, result=result)
|
||||||
|
|
||||||
|
|
||||||
def auto_repair_registry(group, name):
|
def auto_repair_registry(group, name):
|
||||||
"""Delete registry keys with embedded null characters."""
|
"""Delete registry keys with embedded null characters."""
|
||||||
result = TRY_PRINT.run(
|
result = TRY_PRINT.run(
|
||||||
|
|
@ -722,6 +735,12 @@ def auto_repair_registry(group, name):
|
||||||
save_settings(group, name, result=result)
|
save_settings(group, name, result=result)
|
||||||
|
|
||||||
|
|
||||||
|
def auto_reset_power_plans(group, name):
|
||||||
|
"""Reset power plans."""
|
||||||
|
result = TRY_PRINT.run('Reset Power Plans...', reset_power_plans)
|
||||||
|
save_settings(group, name, result=result)
|
||||||
|
|
||||||
|
|
||||||
def auto_reset_proxy(group, name):
|
def auto_reset_proxy(group, name):
|
||||||
"""Reset proxy settings."""
|
"""Reset proxy settings."""
|
||||||
result = TRY_PRINT.run('Clearing proxy settings...', reset_proxy)
|
result = TRY_PRINT.run('Clearing proxy settings...', reset_proxy)
|
||||||
|
|
@ -742,6 +761,12 @@ def auto_restore_uac_defaults(group, name):
|
||||||
save_settings(group, name, result=result)
|
save_settings(group, name, result=result)
|
||||||
|
|
||||||
|
|
||||||
|
def auto_set_custom_power_plan(group, name):
|
||||||
|
"""Set to a custom power plan."""
|
||||||
|
result = TRY_PRINT.run('Set Custom Power Plan...', create_custom_power_plan)
|
||||||
|
save_settings(group, name, result=result)
|
||||||
|
|
||||||
|
|
||||||
def auto_sfc(group, name):
|
def auto_sfc(group, name):
|
||||||
"""Run SFC repairs."""
|
"""Run SFC repairs."""
|
||||||
result = TRY_PRINT.run('SFC Scan...', run_sfc_scan)
|
result = TRY_PRINT.run('SFC Scan...', run_sfc_scan)
|
||||||
|
|
@ -1041,6 +1066,38 @@ def run_tdsskiller():
|
||||||
|
|
||||||
|
|
||||||
# OS Built-in Functions
|
# OS Built-in Functions
|
||||||
|
def create_custom_power_plan():
|
||||||
|
"""Create new power plan and set as active."""
|
||||||
|
custom_guid = POWER_PLANS['Custom']
|
||||||
|
|
||||||
|
# Duplicate High Performance plan
|
||||||
|
cmd = [
|
||||||
|
'powercfg', '-DuplicateScheme',
|
||||||
|
POWER_PLANS['High Performance'], custom_guid,
|
||||||
|
]
|
||||||
|
run_program(cmd)
|
||||||
|
|
||||||
|
# Change the name
|
||||||
|
cmd = ['powercfg', '-ChangeName', custom_guid, KIT_NAME_FULL]
|
||||||
|
run_program(cmd)
|
||||||
|
|
||||||
|
# Set as active plan
|
||||||
|
cmd = ['powercfg', '-SetActive', custom_guid]
|
||||||
|
run_program(cmd)
|
||||||
|
|
||||||
|
# Keep the display on
|
||||||
|
for setting in ('monitor-timeout-ac', 'monitor-timeout-dc'):
|
||||||
|
cmd = ['powercfg', '-Change', setting, '0']
|
||||||
|
run_program(cmd)
|
||||||
|
|
||||||
|
# Set CPU min state
|
||||||
|
for arg in ('-SetacValueIndex', '-SetdcValueIndex'):
|
||||||
|
cmd = [
|
||||||
|
'powercfg', arg, custom_guid, 'SUB_PROCESSOR', 'PROCTHROTTLEMIN', '5',
|
||||||
|
]
|
||||||
|
run_program(cmd)
|
||||||
|
|
||||||
|
|
||||||
def create_system_restore_point():
|
def create_system_restore_point():
|
||||||
"""Create System Restore point."""
|
"""Create System Restore point."""
|
||||||
cmd = [
|
cmd = [
|
||||||
|
|
@ -1116,6 +1173,39 @@ def reboot(timeout=10):
|
||||||
raise SystemExit
|
raise SystemExit
|
||||||
|
|
||||||
|
|
||||||
|
def remove_custom_power_plan(high_performance=False):
|
||||||
|
"""Remove custom power plan and set to a built-in plan.
|
||||||
|
|
||||||
|
If high_performance is True then set to High Performance and set
|
||||||
|
min CPU state to 5% otherwise set to Balanced with default settings.
|
||||||
|
"""
|
||||||
|
power_guid = POWER_PLANS['Balanced']
|
||||||
|
if high_performance:
|
||||||
|
power_guid = POWER_PLANS['High Performance']
|
||||||
|
|
||||||
|
# Set active plan
|
||||||
|
cmd = ['powercfg', '-SetActive', power_guid]
|
||||||
|
run_program(cmd)
|
||||||
|
|
||||||
|
# Delete custom power plan (if present)
|
||||||
|
cmd = ['powercfg', '-Delete', POWER_PLANS['Custom']]
|
||||||
|
run_program(cmd, check=False)
|
||||||
|
|
||||||
|
# Set CPU min state (if needed)
|
||||||
|
if high_performance:
|
||||||
|
for arg in ('-SetacValueIndex', '-SetdcValueIndex'):
|
||||||
|
cmd = [
|
||||||
|
'powercfg', arg, power_guid, 'SUB_PROCESSOR', 'PROCTHROTTLEMIN', '5',
|
||||||
|
]
|
||||||
|
run_program(cmd)
|
||||||
|
|
||||||
|
|
||||||
|
def reset_power_plans():
|
||||||
|
"""Reset power plans to their default settings."""
|
||||||
|
cmd = ['powercfg', '-RestoreDefaultSchemes']
|
||||||
|
run_program(cmd)
|
||||||
|
|
||||||
|
|
||||||
def reset_proxy():
|
def reset_proxy():
|
||||||
"""Reset WinHTTP proxy settings."""
|
"""Reset WinHTTP proxy settings."""
|
||||||
cmd = ['netsh', 'winhttp', 'reset', 'proxy']
|
cmd = ['netsh', 'winhttp', 'reset', 'proxy']
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue