Гид по технологиям

Отправка письма при входе в Windows через PowerShell и Планировщик задач

• 4 min read • Windows • Обновлено 29 Nov 2025
Email при входе в Windows через PowerShell
Email при входе в Windows через PowerShell

Быстрые ссылки

  • Запуск PowerShell из Планировщика задач

Зачем это нужно

Классический Планировщик задач Windows умеет запускать программы по событию (например, при входе в систему), но встроенный механизм отправки почты часто неудобен. Простая и переносимая альтернатива — запуск PowerShell и команда Send-MailMessage (или использование сохранённого учётного файла), чтобы отправлять уведомления на e‑mail.

Как настроить задачу (пошагово)

  1. Нажмите Win + R, введите control schedtasks и нажмите Enter, чтобы открыть Планировщик задач.

Окно Планировщика задач с меню создания задачи

  1. Нажмите Create Task… (Создать задачу).

Форма создания новой задачи в Планировщике задач

  1. На вкладке Общие укажите имя и описание задачи. Выберите опцию «Run whether user is logged on or not» (Запускать независимо от того, вошёл ли пользователь).

Параметры общей вкладки: имя, описание и режим запуска

  1. На вкладке Триггеры добавьте новый триггер. Выберите срабатывание At log on (при входе в систему). Это заставит задачу запускаться при логине пользователя.

Настройка триггера для запуска при входе в систему

  1. На вкладке Действия добавьте новое действие: Start a program (Запустить программу). В поле Program/script укажите powershell. В поле Arguments вставьте команду, которая отправит письмо.

Пример команды (вставьте в поле Arguments):

-Command "Send-MailMessage -From 'someone@gmail.com' -To 'someone@gmail.com' -Subject 'LOGIN' -Body 'Someone Just Logged In' -SmtpServer 'smtp.gmail.com' -Port 587 -Credential (Get-Credential) -UseSsl"

Примечание: приведённая строка использует Get-Credential для интерактивного запроса учётных данных. Если задача запускается без интерактивной сессии, храните учётные данные безопасно (см. раздел Безопасность).

  1. На вкладке Условия снимите галочку Start the task only if the computer is on AC power — иначе на ноутбуках задача не будет срабатывать при питании от батареи.

Параметр условий — отключение требования AC питания

  1. Нажмите OK и сохраните задачу. Теперь при следующем входе в систему задача запустит PowerShell и попытается отправить почту.

Иконка уведомления о входе и отправке сообщения

Практические советы по безопасности и надёжности

Important: Никогда не храните пароль в открытом виде в аргументах задачи. Ниже — безопасные варианты хранения учётных данных и предотвращения блокировки со стороны почтового провайдера.

  • Используйте сохранённый зашифрованный файл с учётными данными:
# Выполните один раз под учётной записью, под которой будет запускаться задача
$cred = Get-Credential
$cred | Export-Clixml -Path 'C:\secure\smtp-cred.xml'

# В рабочем скрипте при запуске задачи
$cred = Import-Clixml -Path 'C:\secure\smtp-cred.xml'
Send-MailMessage -From 'someone@gmail.com' -To 'someone@gmail.com' -Subject 'LOGIN' -Body 'User logged in' -SmtpServer 'smtp.gmail.com' -Port 587 -Credential $cred -UseSsl

Export-Clixml шифрует секреты для конкретного пользователя и компьютера, поэтому файл нельзя просто скопировать на другой ПК и использовать.

  • Для Gmail: предпочитайте использование App Password (пароля приложения) если у вас включена двухфакторная аутентификация. Прямые логины через имя/пароль могут быть заблокированы. Альтернатива — корпоративный SMTP или шлюз почты.

  • Убедитесь, что на момент логина есть сетевое подключение; если компьютер в момент входа офлайн, письмо не уйдёт.

  • Если безопасность критична, вместо пароля используйте корпоративный SMTP relay с ограничением по IP.

Что может пойти не так (когда это не сработает)

  • Провайдер почты блокирует обычную аутентификацию по паролю.
  • Задача настроена запускать от пользователя, который не имеет доступа к зашифрованному файлу с учётными данными.
  • На ноутбуке включено требование AC power (и оно не снято).
  • На момент входа отсутствует сеть или DNS.

Альтернативные подходы

  • Использовать систему логирования событий и внешнюю службу, которая шлёт оповещения по Event ID.
  • Отправлять HTTP-запрос на ваш сервер/сервер оповещений (Invoke-RestMethod) вместо SMTP, если так проще интегрироваться.
  • Использовать сторонние агенты мониторинга/уведомлений с поддержкой входа пользователя.

План проверки (краткий тест)

  1. Создать и сохранить зашифрованный файл с учётными данными.
  2. Настроить задачу с запуском PowerShell и импортом учётных данных.
  3. Выйти из учётной записи и войти заново.
  4. Проверить почтовый ящик на получение сообщения.
  5. Если письма нет — проверить журнал задач и вывод PowerShell (логирование ошибки в файл).

Критерии приёмки

  • При входе указанного пользователя приходит e‑mail с заданной темой и телом.
  • Скрипт не содержит открытого пароля в аргументах Планировщика задач.
  • Файл с учётными данными защищён (Export-Clixml) и доступен только нужной учётной записи.

Краткая справочная таблица

  • SMTP-сервер Gmail: smtp.gmail.com
  • Рекомендуемый порт: 587 (STARTTLS/TLS)
  • Альтернатива порту: 465 (implicit SSL) — зависит от провайдера
  • Утилита отправки в PowerShell: Send-MailMessage (в устаревших версиях) или собственная реализация SMTP

Однострочные определения

  • Планировщик задач: служба Windows для запуска программ по расписанию или событиям.
  • PowerShell: оболочка и язык сценариев для автоматизации Windows.
  • SMTP: протокол отправки электронной почты.
  • PSCredential: объект PowerShell, содержащий имя пользователя и защищённый пароль.

Итог

Запуск PowerShell из Планировщика задач — простой способ получать уведомления по почте при входе в систему. Главное — правильно хранить и защищать учётные данные и учитывать ограничения почтового провайдера. Если нужна автоматизация на множестве машин или более высокая безопасность, рассмотрите централизованные решения или корпоративный SMTP relay.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро