Электронная почта с IP-адресом удаленной системы с помощью PowerShell
Как автоматически отправлять электронные письма с помощью PowerShell и читать общедоступный IP-адрес, назначенный маршрутизатору.
Мы подробно говорили о потенциале PowerShell в статье о PowerShell для примеров: что вы можете сделать и в других аналитических материалах.
Предположим, вы имеете дело с одной или несколькими удаленными системами Windows, которым периодически требуется общедоступный IP-адрес.
Если IP-адрес назначается оператором связи статически, со временем он не изменится. Однако, если бы он был динамически атрибутирован, он, скорее всего, будет разным для каждого подключения: Мой IP: как его найти и для чего он нужен.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Службы DDNS (Dynamic DNS) позволяют связать динамический IP-адрес, который интернет-провайдер связывает с маршрутизатором, с мнемоническим адресом (который не меняется со временем):
— DynDNS Free DDNS: руководство по настройке и использованию No-IP
— DDNS: что это такое, как это работает и как им пользоваться
Но что, если вы хотите отправить по электронной почте, возможно, программно, IP-адрес, связанный с системой, вместе с другой информацией?
Как отправить электронное письмо с помощью PowerShell, также введя общедоступный IP-адрес
С помощью нескольких строк PowerShell позволяет составить и отправить сообщение электронной почты.
После создания текстового файла с расширением .ps1 попробуйте, например, вставить следующее:
$IP = (Invoke-WebRequest ifconfig.me/ip).Content.Trim()
$EmailFrom = «EMAIL_MITTENTE»
$ EmailTo = «EMAIL_RESTINATARIO»
$Subject = «IP-адрес Индириззо»
$ Body = «Текущий IP-адрес: $ IP»
$SMTPServer = «smtp.gmail.com»
$SMTPClient = Новый объект Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = Новый объект System.Net.NetworkCredential(«[email protected]», «ПАРОЛЬ_GMAIL»);
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
В примере создается электронное письмо, содержащее общедоступный IP-адрес, связанный с маршрутизатором, который извлекается с помощью службы. ifconfig.me. Впрочем, можно было бы использовать и любой другой подобный сервис, например один из представленных в статье Мой IP: как его найти и для чего он нужен.
В этом случае вы отправляете с помощью SMTP-серверов Google (защищенное соединение через TCP-порт 587 и включено шифрование) и учетной записи с отключенной двухэтапной проверкой (при ее включении попытка отправки почты будет неудачной, и вы получите сообщение d ‘ ошибка Сервер SMTP требует безопасного соединения или клиент не прошел проверку подлинности.Ответ сервера: 5.7.0 Требуется проверка подлинности).
Пароль учетной записи Google хранится в виде открытого текста в сценарии PowerShell: рекомендуется не использовать учетные данные учетной записи, которые используются в производственных целях и содержат конфиденциальную информацию, и активировать шифрование BitLocker в используемой системе (BitLocker, как защитить данные на жесткий диск и SSD и запрашивать пароль при запуске).
Вместо EMAIL_MITTENTE и EMAIL_DESTINATARIO обязательно должны быть указаны адреса электронной почты отправителя и получателя электронного сообщения. Ниже PASSWORD_GMAIL необходимо заменить на пароль, связанный с учетной записью электронной почты, для успешной аутентификации и использования SMTP-сервера.
По умолчанию Windows настроена таким образом, что из соображений безопасности не разрешается запуск сценариев PowerShell (политика выполнения установлена на Restricted, что легко проверить, набрав powershell Get-ExecutionPolicy из окна командной строки (cmd) или просто Get — ExecutionPolicy из PowerShell.
Чтобы запустить только что созданный скрипт без изменения политики по умолчанию, вы можете открыть окно командной строки (Windows + R, cmd; даже без использования прав администратора), а затем ввести следующее:
@powershell.exe -NoProfile -ExecutionPolicy Bypass -File «c:tempinviaip.ps1»
Вместо c:tempsendip.ps1 придется указать путь и имя скрипта PowerShell, который извлекает публичный IP-адрес и отправляет его по электронной почте.
Введя «Планировщик» в поле поиска Windows, а затем выбрав «Создать задачу» в правом столбце, вы можете запросить запуск сценария PowerShell периодически или на основе определенных условий (например, при включении или перезагрузке компьютера).
Чтобы узнать больше, предлагаем прочитать статью Исходящие: почему не отправляются электронные письма.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)