Загрузка данных
```python
import os
import winreg
import subprocess
import csv
from pathlib import Path
# ============================================================
# 1. РЕЕСТР — Run / RunOnce
# ============================================================
def check_registry():
print("\n" + "=" * 80)
print("1. РЕЕСТР — АВТОЗАГРУЗКА")
print("=" * 80)
registry_paths = [
("HKCU", winreg.HKEY_CURRENT_USER,
r"Software\Microsoft\Windows\CurrentVersion\Run"),
("HKCU RunOnce", winreg.HKEY_CURRENT_USER,
r"Software\Microsoft\Windows\CurrentVersion\RunOnce"),
("HKLM", winreg.HKEY_LOCAL_MACHINE,
r"Software\Microsoft\Windows\CurrentVersion\Run"),
("HKLM RunOnce", winreg.HKEY_LOCAL_MACHINE,
r"Software\Microsoft\Windows\CurrentVersion\RunOnce"),
]
for name, hive, path in registry_paths:
print(f"\n[{name}]")
print(f"Путь: {path}")
try:
key = winreg.OpenKey(hive, path)
count = winreg.QueryInfoKey(key)[1]
if count == 0:
print(" Пусто")
for i in range(count):
value_name, value_data, value_type = winreg.EnumValue(key, i)
print(f" {value_name}")
print(f" -> {value_data}")
winreg.CloseKey(key)
except FileNotFoundError:
print(" Ключ отсутствует")
except PermissionError:
print(" Нет доступа")
# ============================================================
# 2. ПАПКИ STARTUP
# ============================================================
def check_startup_folders():
print("\n" + "=" * 80)
print("2. ПАПКИ STARTUP")
print("=" * 80)
folders = {
"Текущий пользователь":
Path(os.environ["APPDATA"]) /
r"Microsoft\Windows\Start Menu\Programs\Startup",
"Все пользователи":
Path(os.environ["PROGRAMDATA"]) /
r"Microsoft\Windows\Start Menu\Programs\StartUp"
}
for name, folder in folders.items():
print(f"\n[{name}]")
print(f"Путь: {folder}")
if not folder.exists():
print(" Папка отсутствует")
continue
files = list(folder.iterdir())
if not files:
print(" Пусто")
continue
for file in files:
print(f" {file.name}")
print(f" -> {file}")
# ============================================================
# 3. ПЛАНИРОВЩИК ЗАДАНИЙ
# ============================================================
def check_scheduled_tasks():
print("\n" + "=" * 80)
print("3. ПЛАНИРОВЩИК ЗАДАНИЙ")
print("=" * 80)
command = [
"schtasks",
"/query",
"/fo",
"LIST",
"/v"
]
try:
result = subprocess.run(
command,
capture_output=True,
text=True,
encoding="cp866",
errors="replace"
)
if result.returncode != 0:
print("Ошибка:")
print(result.stderr)
return
print(result.stdout)
except Exception as e:
print(f"Ошибка: {e}")
# ============================================================
# 4. СЛУЖБЫ WINDOWS
# ============================================================
def check_services():
print("\n" + "=" * 80)
print("4. СЛУЖБЫ WINDOWS")
print("=" * 80)
command = [
"powershell",
"-NoProfile",
"-Command",
"""
Get-CimInstance Win32_Service |
Select-Object Name, DisplayName, State, StartMode, PathName |
Sort-Object StartMode, Name |
Format-Table -AutoSize
"""
]
try:
result = subprocess.run(
command,
capture_output=True,
text=True,
encoding="utf-8",
errors="replace"
)
if result.returncode != 0:
print(result.stderr)
return
print(result.stdout)
except Exception as e:
print(f"Ошибка: {e}")
# ============================================================
# 5. СВОДКА
# ============================================================
def main():
print("=" * 80)
print("ПРОВЕРКА АВТОЗАГРУЗКИ WINDOWS")
print("=" * 80)
print("\nКомпьютер:", os.environ.get("COMPUTERNAME"))
print("Пользователь:", os.environ.get("USERNAME"))
check_registry()
check_startup_folders()
check_scheduled_tasks()
check_services()
print("\n" + "=" * 80)
print("ПРОВЕРКА ЗАВЕРШЕНА")
print("=" * 80)
if __name__ == "__main__":
main()
```