Utilman

2025-01-23 02:51 | Публичная
import winreg as reg
import ctypes
import sys

def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

def get_user_list_value(username):
    """Получает текущее значение в реестре для указанного пользователя."""
    try:
        key = reg.OpenKey(reg.HKEY_LOCAL_MACHINE,
                          r"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList")
        value, _ = reg.QueryValueEx(key, username)
        reg.CloseKey(key)
        return value
    except FileNotFoundError:
        print(f"Пользователь '{username}' не найден в UserList.")
        return None
    except Exception as e:
        print(f"Ошибка при получении значения: {e}")
        return None

def set_user_list_value(username, value):
    try:
        # Открываем ключ реестра
        key = reg.OpenKey(reg.HKEY_LOCAL_MACHINE,
                          r"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList",
                          0, reg.KEY_SET_VALUE)

        # Устанавливаем значение
        reg.SetValueEx(key, username, 0, reg.REG_DWORD, value)


        reg.CloseKey(key)
        print(f"Значение для пользователя '{username}' установлено на {value}.")
    except Exception as e:
        print(f"Ошибка: {e}")

if __name__ == "__main__":
    if not is_admin():
        print("Скрипт не запущен с правами администратора. Запрашиваю повышение прав...")
        ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)
    else:
        print("Скрипт запущен с правами администратора.")
        username = "student"  # Замените на нужное имя пользователя
        current_value = get_user_list_value(username)
        print(current_value)
        if current_value is not None:
            print(f"Текущее значение для пользователя '{username}': {current_value}")

            # 0 для скрытия, 1 для отображения
            new_value = 0 if current_value == 1 else 1
            print(f"Инвертируем значение для пользователя '{username}' на {new_value}.")
            set_user_list_value(username, new_value)
Вернуться ко Всем Вставкам
Открыть чат
Чат с Send-Code AI Закрыть чат