Программа входа в систему Windows winlogon.exe
Каждому пользователю Windows-компьютера полезно знать, для чего нужны те или иные системные процессы. Их можно найти в Диспетчере задач, а вместе с этим и проследить за тем, как их работа влияет на потребление ресурсов компьютера операционной системой. Понимание сути процесса в нужный момент поможет вам исправить неполадки или какое-то аномальное поведение компьютера.
Что за процесс Программа входа в систему Windows winlogon.exe
Наверняка уже судя по названию вы поняли, что процесс winlogon.exe является неотъемлемой частью операционной системы Windows, без которого система не может работать как положено. Процесс выполняет несколько чрезвычайно важных процедур, связанных с входом в Windows 10. К примеру, когда вы включаете компьютер и авторизуетесь в системе, программа входа в систему Windows берет на себя загрузку профиля в реестр системы, благодаря чему программы могут использовать ключи в HKEY_CURRENT_USER.
Winlogon. exe также следит за нажатием комбинации клавиш Ctrl + Alt + Delete. Она также известна как SAS – Secure Attention Sequence. Комбинация клавиш может использоваться для разблокировки компьютера в определенных конфигурациях. Winlogon.exe убеждается в том, что нажаты нужные клавиши и никакое приложение не отслеживает пароль входа в систему и не подменяет экран входа. Кроме того, Программа входа в систему Windows следит за клавиатурой и мышью, а также отвечает за блокировку компьютера и запуск заставок после установленного периода простоя.
В итоге можно сказать, что Winlogon.exe или программа входа в систему Windows – это критически важный компонент системы, который всегда должен работать в фоне.
Как отключить программу входа в систему Windows
Делать это не стоит. Серьезно, не надо отключать программу входа в систему Windows. Как уже было сказано выше, winlogon.exe – это программа, без которой Windows не может работать как положено. Нет никаких объективных причин отключать ее, поскольку объем потребляемых ресурсов зачастую не превышает 1 Мб оперативной памяти, а нагрузка на процессор вообще нулевая.
Если вы попытаетесь отключить winlogon.exe, Диспетчер задач уведомит вас о рисках прекращения работы системных процессов. Проигнорируйте это сообщение и закройте программу входа в систему Windows и ваш компьютер свалится в черный экран. После этого система не будет реагировать даже на Ctrl + Alt + Delete, так как ответственный за отслеживание этого сокращения процесс прекратил свою работу. Выйти из такового состояния можно будет только перезагрузкой ПК, после чего Windows снова запустит winlogon.exe.
Программа входа в систему Windows запускается вместе с операционной системой. Если процесс не может запуститься, компьютер отобразит вам синий экран смерти с ошибкой 0xC000021A. Точно такая же ошибка появляется в тот момент, когда система не может запустить другой критически важный для работы процесс.
Программа входа в систему Windows нагружает процессор
В нормальных условиях этот процесс никаким образом не влияет на производительность вашего компьютера. Как уже было сказано выше, вы не заметите влияния работы winlogon. exe, поскольку процесс не нагружает процессор и не потребляет больше пары мегабайт оперативной памяти. Если же вы столкнулись с ситуацией, когда winlogon.exe очень сильно нагружает процессор, диск или оперативную память, тогда вам надо проверить, не имеете ли вы дело с вирусом, удачно замаскировавшимся под системный процесс Windows 10.
Вирус winlogon.exe
Каждый компьютер на Windows имеет в списке запущенных фоновых процессов winlogon.exe. Это норма и так должно быть. Лишний раз убедиться в том, что процесс работает нормально и не является вирусом можно традиционным для всех процессов способом.
- Откройте Диспетчер задач любым предпочитаемым вами методом.
- Найдите в списке процессов Программа входа в систему Windows и нажмите по нему правой кнопкой мыши. Из выпадающего меню выберите Открыть расположение файла.
- Как вариант, можно перейти на вкладку Подробности и найти Winlogon. exe в списке запущенных процессов. Так же само кликните правой кнопкой мыши и выберите Открыть расположение файла.
- Windows откроет проводник и выделит файл winlogon.exe, расположенный в папке C:\Windows\System32. Любое другое расположение будет указанием на то, что файл скорее всего является вирусом или вредоносным приложением, которое пытается выдать себя за системный процесс Windows. Из-за этого же может наблюдаться высокая нагрузка на диск, процессор или память компьютера.
- Также можно проверить подписи файла в его свойствах. Кликните по winlogon.exe правой кнопкой мыши в проводнике и выберите Свойства.
- Перейдите на вкладку Подробно и посмотрите пункты Описание файла
Быть может, вы и ваши знакомые никогда не столкнетесь с ошибками в работе программы входа в систему Windows. Все же, теперь вы знаете больше о предназначении процесса winlogon.exe и сути его работы в компьютере на операционной системе Windows 10.
Программа входа в систему | это… Что такое Программа входа в систему?
Программа входа в систему — компонент операционной системы Microsoft Windows, отвечающий за вход в систему.
Содержание
|
Краткий обзор
Исполняемым файлом процесса является winlogon.exe
. Winlogon.exe
запускается процессом smss.exe
вместе с процессом csrss.exe
. Для реализации диалога с пользователем применяется библиотека GINA. Программа входа в систему обрабатывает нажатие Ctrl + Alt + Del и Ctrl + ⇧ Shift + Esc . Winlogon.exe
подгружает и выполняет код из библиотек Winlogon notification packages. Такие библиотеки применяются системой, программами и вирусами[источник не указан 444 дня]. Они не поддерживаются в Windows Vista[1].
Критичность процесса
Процесс winlogon.exe
через стандартное WinAPI невозможно закрыть. Для этого требуется привилегия SE_DEBUG
[источник не указан 444 дня ].
Если всё-таки закрыть процесс, на экране появится синий экран смерти со следующим сообщением:
c000021a {Fatal System Error} The Windows logon process system process terminated unexpectly with a status…
что является следствием срабатывания специальной защиты, установленной для процесса winlogon.exe
недокументированной функцией RtlSetProcessIsCritical
библиотеки ntdll.dll
[источник не указан 444 дня].
В русской версии операционной системы экран заполнится кракозябрами, которые при декодировании значат:
c000021a {} Непредвиденное завершение системнного процесса Windows Logon Process с состоянием…
Причиной такого сбоя может быть заполнение системного диска до предела, при освобождении места всё возвращается в норму[источник не указан 444 дня].
winlogon.exe
вызывает немедленный выход из системы вместо сбоя[источник не указан 444 дня].Функции
Программа входа в систему начинает работу, будучи запущенным процессом smss.exe
. После некоторых подготовительных действий, она отображает приглашение ко входу в систему. В ходе запуска операционной системы запускает lsass.exe
и services.exe
. Если активен новый стиль экрана приветствия, то для его отображения запускается процесс logonui.exe
. После входа в систему Программа входа в систему запускает команды, прописанные в параметре Userinit
Реестра Windows — обычно userinit.exe
, которая в свою очередь выполняет запуск программ, прописанных в параметре Shell
— обычно explorer.exe
.
Вредоносные программы
Вирусы и другие вредоносные программы могут добавлять Winlogon notification packages и изменять параметры Shell
и Userinit
для заражения системы. Имя winlogon.exe
используют некоторые вирусы для своих файлов, поэтому подозрительными являются все файлы с таким именем, находящиеся в папке, отличной от %SYSTEMROOT%\system32
и %SYSTEMROOT%\dllcache
. Переименовав нужное приложение в %SystemRoot%\System32\logon.scr
, можно добиться его запуска с правами пользователя SYSTEM через 10 минут ожидания ввода имени пользователя и пароля для входа в систему[источник не указан 444 дня].
Примечания
- ↑ Winlogon Notification Packages Removed: Impact on Windows Vista Planning and Deployment
— Как создать программу регистрации и входа в систему на Python?
спросил
Изменено 1 год, 6 месяцев назад
Просмотрено 3к раз
Я пытаюсь создать программу, в которой люди могут назначать имя пользователя и пароль, а затем входить в систему.
Я думал о создании двух функций: одной для регистрации и одной для входа в систему. Однако кажется, что это не может работать, потому что я назначаю имя пользователя в части регистрации, но когда функция входа запускается, она говорит, что имя пользователя не определено. Ты хоть представляешь, что мне делать?по умолчанию регистр(): имена=[] имена пользователей=[] пароли=[] имена.append(input("Введите ваше имя:")) usernames.append(input("выберите свое имя пользователя:")) passwords.append(input("выберите свой пароль:")) вернуть имена пользователей def логин (имена пользователей, пароли): имена пользователей=[] пароли=[] пароль="" имя пользователя = "" username=input("Введите ваше имя пользователя:") пароль=ввод("Введите ваш пароль:") если пароль==пароли[имя пользователя.индекс(имя пользователя)]: распечатать("добро пожаловать") еще: распечатать("неверно!") аккаунт_анс="" пока верно: account_ans=input("выберите: а) зарегистрироваться б) войти и делать покупки в) выйти") если account_ans=="a": регистр() если account_ans=="b": пароль="" имя пользователя = "" имена пользователей=[] пароли=[] логин(имя пользователя,пароль) если account_ans=="c":перерыв
- питон
- функция
0
Ваша функция register()
возвращает объект списка имя пользователя
, но вы не перехватываете его в переменную, поэтому он теряется. Из-за этого вся та информация, которую вы вводите в register()
, исчезает, как только функция выполняется.
Итак, 1) Зафиксируйте возврат
, если account_ans=="a": имя пользователя = зарегистрироваться ()
Когда вы попадаете в часть кода account_ans="b"
, вы затем сбрасываете эту переменную имени пользователя
, полностью очищая ее. Поэтому, когда вы передаете имя пользователя
функции login()
, это просто пустой список. Вы не можете зарегистрировать кого-то, кого не существует, и поэтому вы получаете свою ошибку здесь.
Итак 2) Не очищайте список имени пользователя
:
if account_ans=="b": логин(имя пользователя,пароль)
Конечно, здесь есть и другие проблемы, но они наиболее очевидны. Я бы посоветовал не проходить мимо имя пользователя
и пароль
перечислены вокруг, так как попытка жонглировать ими через спагетти кода будет подавляющей. Вместо этого объявите их в верхней части кода и используйте как глобальные. Ответ Даниэля на этот же вопрос показывает хороший способ осуществить это.
В конечном счете, настоящая проблема заключается в вашей неспособности отладить проблему. Хорошей отправной точкой было бы добавить туда несколько print()
и посмотреть, что находится в этих переменных в разное время в вашем коде. Вы бы видели, если бы вы сделали print(usernames)
внутри вашей функции входа в систему, прежде чем появится сообщение об ошибке, что список имен пользователей
пуст на этом этапе выполнения кода. Затем вы можете вернуться назад и выяснить, почему имени пользователя
будут пустыми. Вы столкнетесь с миллионом подобных ошибок, когда будете создавать этот код, поэтому умение отлаживать сейчас будет ключом к вашему успеху.
2
Попробуйте это
имен пользователей = [] пароли = [] имена = [] регистр по определению(): имена. append(input("Введите ваше имя:")) usernames.append(input("выберите свое имя пользователя:")) passwords.append(input("выберите свой пароль:")) деф логин(): username = input("Введите ваше имя пользователя:") пароль = ввод("Введите ваш пароль:") если имя пользователя в именах пользователей и пароль в паролях: распечатать("добро пожаловать") еще: распечатать("неверно!") пока верно: account_ans = input("выберите: а) зарегистрироваться б) войти и делать покупки в) выйти ") если account_ans == "а": регистр() если account_ans == "б": авторизоваться() если account_ans == "c": перерыв
1
В функции регистрации вы можете использовать функцию разделения, чтобы получить список входов, затем вы можете вернуть переменные имени пользователя и пароля. Я также предлагаю использовать уникальные имена переменных на тот случай, если они переопределяют друг друга.
по умолчанию регистр(): имена = ввод ("Имена: ").split(" ") username_list = input("Имена пользователей: ").split(" ") password_list = input("Пароли: ").split(" ") вернуть username_list, password_list
В функции входа в систему вы можете ввести имя пользователя и пароль, а затем проверить их с помощью условия if. В этом случае вам, возможно, придется обработать исключение, поскольку, если пользователь вводит неправильное имя пользователя, вы получите ValueError
или, в качестве альтернативы, вы можете просто проверить и имя пользователя, и пароль из условия if.
def логин (имена пользователей, пароли): username = input("Введите ваше имя пользователя:") пароль = ввод("Введите ваш пароль:") пытаться: если пароль == пароли[имя пользователя.индекс(имя пользователя)]: распечатать("добро пожаловать") еще: распечатать("неверно!") кроме ValueError: print("Неверное имя пользователя")
Здесь вы можете использовать операторы elif
и else
, а не только операторы if
, и когда вы вызываете функцию регистрации, вы должны присвоить возвращаемые ею значения двум переменным, чтобы вы могли использовать их при входе в систему. функция.
пока верно: account_ans = input("выберите: а) зарегистрироваться б) войти и делать покупки в) выйти: ") если account_ans == "а": имена пользователей, пароли = зарегистрироваться() Элиф account_ans=="b": логин(имя пользователя,пароль) еще: перерыв
1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
простая программа входа в систему на питоне
Задавать вопрос
спросил
Изменено 3 года, 8 месяцев назад
Просмотрено 69 тысяч раз
Я написал программу на Python для входа в систему без графического интерфейса. Я знаю, что это самый простой, но я не понимаю проблемы.
вход в класс: def __init__(я, идентификатор, шаг): self.id = "админ" self.pas="админ" проверка защиты (id, pas): распечатать self.id распечатать lod.id если (self.id==log.id и self.pas==log.pas): print "Вход выполнен успешно!" лог=логин("","") log.check(raw_input("Введите идентификатор входа:"), input("Введите пароль: ")) распечатать "Страница входа"
Ошибка: Введите идентификатор входа:admin Введите пароль: admin
Трассировка (последний последний вызов): Файл "C:/Python27/login.py", строка 15, вinput("Введите пароль: ")) Файл " ", строка 1, в NameError: имя «admin» не определено
- python
- python-2.7
Вы использовали input()
вместо raw_input()
для пароля.
input()
эквивалентно оценка(raw_input())
; если вы ввели admin
в качестве пароля, он интерпретируется как код Python. admin
затем интерпретируется как имя переменной, и поскольку это имя не существует в вашем коде, возникает ошибка NameError
.
Использование:
log.check(raw_input("Введите идентификатор входа:"), raw_input("Введите пароль:"))вместо
.
Далее, ваш метод check()
не будет работать, так как вы забыли параметр self
и пытаетесь сослаться на имя lod
которого не существует. Следующее будет работать лучше:
вход в класс: def __init__(я, идентификатор, шаг): self.id = идентификатор self.pas = pas проверка защиты (я, id, pas): распечатать self.id если self.id == id и self.pas == pas: print "Вход выполнен успешно!" лог = логин("админ", "админ") log.check(raw_input("Введите идентификатор входа:"), raw_input("Введите пароль:"))
7
Хорошо, мне не нужно было добавлять аргументы id и pas в функцию проверки, так как они уже есть в основной функции. Я скорее назвал метод self и «if» для аутентификации
класс Логин: ошибка = Нет def __init__(я, uid, пароль): self.uid = "админ" self.passw = "админ" Login.error = "Введите действительный идентификатор пользователя и пароль" деф аутентифицировать (сам): если (self.uid == logid и self.passw == logpass): print ("Вход выполнен успешно") еще: печать (логин.ошибка) лог = Логин("", "") logid = input("Введите свой ID пользователя:") logpass = input("Введите пароль: ") log.authenticate()
1
Попробуйте это.
класс Логин: def __init__(я, идентификатор, пароль): self.id = идентификатор self.password = пароль self.error = "Введите правильное имя пользователя и пароль" проверка защиты (само): если (self.id == log_id и self.password == log_pass): print("Вход выполнен успешно") еще: печать (самоошибка) лог = Логин("админ", "админ") log_id = input("Введите свой идентификатор пользователя:") log_pass = input («Введите пароль:») лог.
Ваш комментарий будет первым