Как получать уведомления по электронной почте при входе пользователя в Windows

К чему служит эта инструкция
Коротко: если вы администрируете несколько учётных записей или компьютеров, электронные уведомления при входе помогут отслеживать активность входа в систему и быстро реагировать на нежелательные подключения. Это простое средство мониторинга для домашних и корпоративных ПК, где вы не хотите ненадёжного доступа.
Важно: эта инструкция показывает один конкретный метод — использование утилиты SendEmail и Планировщика заданий Windows. Ниже также описаны альтернативы, риски и проверочные сценарии.
Что потребуется
- Доступ администратора на целевом компьютере.
- Утилита SendEmail (портативная версия с поддержкой TLS). Скачайте с официального сайта и используйте версию с TLS.
- Рабочая учётная запись электронной почты и параметры SMTP (сервер, порт). Для Gmail обычно smtp.gmail.com и порт 587.
- Доступ в Интернет на момент отправки почты.
Шаг 1. Скачайте и поместите SendEmail
- Скачайте SendEmail с официального сайта. Выберите версию с поддержкой TLS.
- Распакуйте архив в каталог, доступный только администратору, например в “Program Files” или другую защищённую папку. Это уменьшит риск, что обычный пользователь изменит бинарник.
ALT: Скриншот папки с файлами SendEmail, выделен исполняемый файл
Шаг 2. Откройте Планировщик заданий
Откройте меню «Пуск», найдите Task Scheduler и запустите его.
ALT: Окно поиска Пуск с результатом “Task Scheduler”
Шаг 3. Создайте новую задачу
- В правой панели выберите “Create Task”.
ALT: Меню Планировщика заданий с выделенной кнопкой “Create Task”
- В окне “Create Task” задайте имя задачи и описание. Установите радиокнопку “Run whether the user is logged on or not”.
ALT: Окно создания задачи с вкладкой “General”, заполнены поля имени и опции выполнения
Important: не сохраняйте задачу, пока не зададите триггер и действие.
Шаг 4. Настройте триггер на вход в систему
- Перейдите на вкладку “Triggers” и нажмите “New”.
- В “New Trigger” в поле “Begin the task” выберите “At log on” и отметьте “Any user”.
ALT: Окно создания триггера, выбран вариант “At log on” и опция “Any user”
- Сохраните триггер нажатием “Ok”.
Шаг 5. Настройте действие — запуск SendEmail
- Перейдите на вкладку “Actions” и нажмите “New”.
- В поле “Program or Script” укажите полный путь до исполняемого файла SendEmail.
- В поле “Add arguments” вставьте команду с параметрами SMTP и сообщением. Замените email и PASSWORD на свою почту и пароль.
-f [email protected] -t [email protected] -xu [email protected] -xp PASSWORD -s smtp.gmail.com:587 -o tls=yes -u "System Login Activity" -m "A user logged into your system!"
Пояснения к параметрам:
- -f — адрес отправителя
- -t — адрес получателя
- -xu — имя пользователя SMTP (обычно ваш email)
- -xp — пароль учётной записи (см. раздел Безопасность)
- -s — адрес SMTP вместе с портом
- -o tls=yes — включить TLS
- -u — тема письма
- -m — тело письма
Note: для других почтовых сервисов замените адрес SMTP и порт на соответствующие.
Добавьте действие и подтвердите нажав “Ok”.
ALT: Вкладка “Actions” с заполненными полями и командой для SendEmail
Шаг 6. Уточните условия и параметры питания
Если задача будет выполняться на ноутбуке, снимите галочку “Start the task only if the computer is on AC power”, чтобы задача могла запускаться от батареи.
ALT: Вкладка “Conditions” с опцией включения запуска только от сети питания
Шаг 7. Тестирование задачи
В Планировщике выберите созданную задачу и нажмите “Run”. Если настройки корректны, вы получите тестовое письмо.
ALT: Главное окно Планировщика заданий с выделенной задачей и кнопкой “Run”
Когда этот способ не сработает
- SMTP-провайдер блокирует входы по паролю (часто случается с Google без app-password или без OAuth2).
- Фаервол или локальные политики запрещают исходящие соединения на SMTP-порт.
- Утилита SendEmail не имеет обновлений или несовместима с новыми механизмами аутентификации (OAuth).
- Пользователь отключил Интернет в момент входа.
Альтернативные подходы
- Использовать PowerShell-скрипт, который вызывает API почтового сервиса (например, SendGrid, Mailgun) и хранит ключ в защищённом хранилище (Windows Credential Manager).
- Настроить централизованный сбор событий: Windows Event Forwarding → SIEM/Log Server и оповещения оттуда (более масштабируемо для крупных сетей).
- Использовать сторонние push-сервисы: Pushbullet, Pushover, IFTTT для мгновенных уведомлений на телефон.
- Blat — другая консольная утилита, но без TLS, поэтому сейчас редко подходит.
Мини‑методология безопасности (шаги, чтобы не раскрыть пароли)
- Если почта поддерживает двухфакторную аутентификацию, создайте приложение/пароль и используйте его вместо основного пароля.
- По возможности храните секреты в Windows Credential Manager и извлекайте их в скрипте, а не указывайте в аргументах командной строки.
- Ограничьте права на папку с SendEmail: только администраторам.
- Включите шифрование TLS/STARTTLS (параметр -o tls=yes) и используйте порт провайдера.
- Логируйте попытки отправки в локальный файл для аудита.
Критерии приёмки
- Письмо отправляется успешно при ручном запуске задачи.
- Письмо отправляется автоматически при входе в систему любого пользователя.
- Текст письма содержит идентификатор компьютера и время входа (если вы добавите их в тело сообщения).
- Пароль не хранится в открытом виде в доступных для обычного пользователя местах.
Примеры шаблонов темы и тела письма
- Тема: “[Security] Вход в систему - {COMPUTERNAME}”
- Тело: “Пользователь {USERNAME} выполнил вход на {COMPUTERNAME} в {TIMESTAMP}.”
Чтобы подставлять переменные, можно создать небольшой bat/ps1-скрипт, который формирует строку и вызывает SendEmail с параметром -m.
Тестовые случаи и приемочные проверки
- Тест 1 — ручной запуск: выбрать задачу в Планировщике → Run → ожидаемый результат: письмо пришло.
- Тест 2 — вход под новой учётной записью: залогиньтесь под тестовой учёткой → ожидаемый результат: письмо пришло.
- Тест 3 — ноутбук от батареи: выключите питание от сети, войдите под учётной записью → ожидаемый результат: письмо пришло.
- Тест 4 — отсутствие сети: отключите Интернет, войдите → ожидаемый результат: задача зарегистрировала ошибку, письмо не пришло.
Рекомендации по расширению для крупных сред
- Вместо прямой отправки почты используйте централизованный лог-кластер (ELK/Graylog) и создайте оповещения по событиям входа.
- Примените Windows Event Forwarding для сбора логов от всех хостов и создайте оповещения в SIEM.
Матрица рисков и способы смягчения
- Риск: компрометация пароля SMTP. Смягчение: использовать отдельный апп‑пароль, хранить секреты в менеджере.
- Риск: утечка сведений в письме. Смягчение: не отправляйте чувствительные данные (пароли, токены).
- Риск: ложные срабатывания при автоматическом входе системных сервисов. Смягчение: фильтровать по имени пользователя или группам.
Роль‑ориентированный чеклист
Для администратора:
- Проверил права на файл SendEmail и папку.
- Настроил задание в контексте учётной записи, имеющей право на отправку.
- Настроил логирование ошибок.
Для домашнего пользователя:
- Скачал SendEmail и проверил версию с TLS.
- Использовал app‑password, если почта — Gmail с двухфакторной аутентификацией.
Короткое пояснение терминов
- SMTP — протокол для отправки электронной почты.
- TLS — шифрование канала для защиты передачи почты.
Когда лучше не использовать этот метод
- Если вы обязаны соответствовать строгим политикам безопасности (например, запрет на хранение паролей в виде простого текста) — используйте централизованные решения или API с ключами, хранящимися в безопасном хранилище.
FAQ
Нужно ли указывать реальный пароль в аргументах SendEmail?
Нет. Лучший вариант — создать application password у почтового провайдера (если поддерживается) или хранить секрет в Windows Credential Manager и импортировать в скрипт во время выполнения.
Можно ли отправлять уведомления не на e‑mail, а сразу в мессенджер?
Да. Используйте API сервисов (Pushbullet, Pushover, Telegram Bot API) и вызывайте их из PowerShell/скрипта вместо SendEmail.
Конец и краткое резюме
Использование SendEmail вместе с Планировщиком заданий — простой способ получать уведомления о входах в систему. Однако обратите внимание на хранение паролей и ограничения SMTP‑провайдеров. Для корпоративных сред предпочтительнее централизованные решения и SIEM.
Summary:
- Настройте задачу в Task Scheduler с триггером “At log on”.
- Укажите SendEmail и параметры SMTP в аргументах.
- Используйте защищённое хранение паролей и тестируйте сценарии.
Если у вас есть опыт использования этого метода или вопросы по конкретным почтовым провайдерам — напишите в комментариях, и я помогу адаптировать команду или предложить безопасную альтернативу.
Также читайте: How to Disable Computer Notifications on Windows
Похожие материалы

Удаление SkyDrive Pro из контекстного меню

Как включить шарики в FaceTime — инструкция

Исправить повреждённый список рассылки Outlook

Как объединять и разделять электронные книги

Скрытые шахматы в Facebook Messenger
