From b7b8f20e2421cd96270cc62f9cf073f12b8e877e Mon Sep 17 00:00:00 2001 From: 2Shirt <2xShirt@gmail.com> Date: Fri, 7 May 2021 18:18:38 -0600 Subject: [PATCH] Add timezone check to Auto Repairs --- scripts/wk/os/win.py | 14 ++++++++++++++ scripts/wk/repairs/win.py | 13 ++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/scripts/wk/os/win.py b/scripts/wk/os/win.py index 20ee4917..0eb71971 100644 --- a/scripts/wk/os/win.py +++ b/scripts/wk/os/win.py @@ -414,5 +414,19 @@ def stop_service(service_name): raise GenericError(f'Failed to stop service {service_name}') +# Date / Time functions +def get_timezone(): + """Get current timezone using tzutil, returns str.""" + cmd = ['tzutil', '/g'] + proc = run_program(cmd, check=False) + return proc.stdout + + +def set_timezone(zone): + """Set current timezone using tzutil.""" + cmd = ['tzutil', '/s', zone] + run_program(cmd, check=False) + + if __name__ == '__main__': print("This file is not meant to be called directly.") diff --git a/scripts/wk/repairs/win.py b/scripts/wk/repairs/win.py index 47a7cb0a..46a7a091 100644 --- a/scripts/wk/repairs/win.py +++ b/scripts/wk/repairs/win.py @@ -12,7 +12,7 @@ import time from subprocess import CalledProcessError, DEVNULL -from wk.cfg.main import KIT_NAME_FULL, KIT_NAME_SHORT +from wk.cfg.main import KIT_NAME_FULL, KIT_NAME_SHORT, WINDOWS_TIME_ZONE from wk.exe import ( get_procs, run_program, @@ -23,6 +23,8 @@ from wk.io import delete_folder, get_path_obj, rename_item from wk.kit.tools import download_tool, get_tool_path, run_tool from wk.log import format_log_path, update_log_path from wk.os.win import ( + get_timezone, + set_timezone, reg_delete_value, reg_read_value, reg_set_value, @@ -288,6 +290,15 @@ def init_session(options): """Initialize Auto Repairs session.""" reg_set_value('HKCU', AUTO_REPAIR_KEY, 'SessionStarted', 1, 'DWORD') + # Check timezone + zone = get_timezone() + msg = ( + 'The timezone is currently set to ' + f'{zone}, switch it to {WINDOWS_TIME_ZONE}?' + ) + if zone != WINDOWS_TIME_ZONE and ask(msg): + set_timezone(WINDOWS_TIME_ZONE) + # Create logon task for Auto Repairs cmd = [ 'schtasks', '/create', '/f',