import ctypes, os, subprocess, sys
from datetime import datetime
KEYS = [
r"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies",
r"HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies",
r"HKCU\Software\Policies",
r"HKLM\SOFTWARE\Policies",
]
def run(cmd):
print("> " + " ".join(cmd))
r = subprocess.run(cmd, capture_output=True, text=True)
if r.stdout.strip(): print(r.stdout.strip())
if r.stderr.strip(): print(r.stderr.strip())
def is_admin():
try: return bool(ctypes.windll.shell32.IsUserAnAdmin())
except Exception: return False
if not is_admin():
ctypes.windll.shell32.ShellExecuteW(
None, "runas", sys.executable, " ".join(f'"{a}"' for a in sys.argv), None, 1)
sys.exit(0)
backup_dir = os.path.join(os.path.expanduser("~"), "Desktop",
"policies_backup_" + datetime.now().strftime("%Y%m%d_%H%M%S"))
print("Резервное копирование и удаление политик...\n")
os.makedirs(backup_dir, exist_ok=True)
for key in KEYS:
fname = key.replace("\\", "_") + ".reg"
run(["reg", "export", key, os.path.join(backup_dir, fname), "/y"])
for key in KEYS:
run(["reg", "delete", key, "/f"])
print("\nПроверка домена:")
run(["powershell", "-NoProfile", "-Command",
"(Get-CimInstance Win32_ComputerSystem).Domain"])
print("\nПерезапуск проводника...")
run(["taskkill", "/f", "/im", "explorer.exe"])
run(["cmd", "/c", "start", "explorer.exe"])
print("\nГотово. Если после перезагрузки всё вернулось — см. шаг 4.")