Size: a a a

PowerShellRus - о Powershell (и не только) на русском

2021 October 03

A

Alex in PowerShellRus - о Powershell (и не только) на русском
Так, а зачем= )? Или ты просто для отладки это сделал?
источник

A

Alex in PowerShellRus - о Powershell (и не только) на русском
Просто он только в runspace используется и выводиться по завершении
источник

AF

Alexey D. Filimonov ... in PowerShellRus - о Powershell (и не только) на русском
Просто для отладки
источник

A

Alex in PowerShellRus - о Powershell (и не только) на русском
Ну значит правильно это понял, все остальное пока выглядит как заклинание 😅
источник

AF

Alexey D. Filimonov ... in PowerShellRus - о Powershell (и не только) на русском
Да нет там заклинаний. Вместо @() я использую List и все
источник

AF

Alexey D. Filimonov ... in PowerShellRus - о Powershell (и не только) на русском
Мне с ним проще работатт
источник

A

Alex in PowerShellRus - о Powershell (и не только) на русском
Ну это не сильно критично же вроде =) Я где то видел ты с кем то обсуждал эту тему на с чем массивов
источник

A

Alex in PowerShellRus - о Powershell (и не только) на русском
Большое спасибо за работающий пример.
источник

AF

Alexey D. Filimonov ... in PowerShellRus - о Powershell (и не только) на русском
Ну так а больше там магии нет.
Я добавил из важного:
Timer.enabled = true для запуска таймера,
Добавил удаление задания из списка заданий после обработки его завершения (по таймеру) - иначе ты будешь по кругу обработанные задания обрабатывать

Из неважного
Добавил передачу лейбла в ранспейс, чтобы из ранспейса менять текст лейбла
Добавил выхлоп Write-Output в ранспейсе в виде объекта и обработку этого выхлопа после EndInvoke. Чтобы было 2 параметра в объекте тупо добавил гуид на весь таск.

Ну и кнопки отключаю на период выполнения задания
источник

AF

Alexey D. Filimonov ... in PowerShellRus - о Powershell (и не только) на русском
Кстати таймер 10мс это очень жёстко. 100+ ставь
источник

A

Alex in PowerShellRus - о Powershell (и не только) на русском
Да у меня же он не работал из-за того что я его не включил, и думал надо время поменять =)
источник

A

Alex in PowerShellRus - о Powershell (и не только) на русском
С кнопками крутая идея
источник

AF

Alexey D. Filimonov ... in PowerShellRus - о Powershell (и не только) на русском
$emailListLine = 'vasya@gmail.com;Masha.Zver@yandex.ru;RabotaZaebala@rambler.ru;!#$@c~~;; ;sasha@grey.com'

Function Test-ValidMailAddress {
   [CmdLetBinding()]
   Param(
       [Parameter(Mandatory=$false)]
       [AllowNull()]
       [String]$EmailAddress=$null
   )
   if ([String]::IsNullOrWhiteSpace($EmailAddress)) {
       return $false
   }

   if ($EmailAddress -notmatch  '^\S+@(?:\S+\.)+\S{2,}$' ) {
       return $false
   }

   try {
       $emailAddressObject = [System.Net.Mail.MailAddress]::new($EmailAddress)
       return $EmailAddress -eq $emailAddressObject.Address
   } catch {
       return $false
   }
}


$addresseeList = @($emailListLine.Split(";") |
   ForEach-Object {$_.Trim()} |
   Where-Object { $true -eq (Test-ValidMailAddress -EmailAddress $_ ) })

# Вероятно плохой вариант - отправлять письмо сразу всем.
# В этом случае все адресаты видят друг друга
# А еще можно упереться в ограничение почтового сервера на максимальное количетсво адресатов
# Send-MailMessage -To $addresseeList -...

# Вариант номер 2 - отправлять письмо через "скрытую копию" (BCC - Blind Carbon Copy)
# В этом случае все адресаты НЕ видят друг друга
# но остается возможность упереться в ограничение почтового сервера на максимальное количетсво адресатов
# И остается проблема, что у адресата поле "Кому" пустое. Может попасть в спам
# Send-MailMessage -Bcc $addresseeList -...

# Вариант номер 3 - письмо каждому отдельно
# Можно упереться в RateLimit почтового сервера
# $addresseeList | ForEach-Object { Send-MailMessage -To $_ -.... }
источник

AF

Alexey D. Filimonov ... in PowerShellRus - о Powershell (и не только) на русском
А ещё очень рекомендую пообщаться с почтовым администратором компании перед рассылкой.
Положить почтовую систему компании изнутри как нехрен делать. Причем опционально на несколько дней
источник

MO

Mr Orange in PowerShellRus - о Powershell (и не только) на русском
Как раз внутри организации стоят и рейт лимиты, и частенько авторизация - если конечно там не вовни админом
источник

MO

Mr Orange in PowerShellRus - о Powershell (и не только) на русском
от вот таких погромиздов
источник

AF

Alexey D. Filimonov ... in PowerShellRus - о Powershell (и не только) на русском
Не для всех и не всегда. У нас был кретин который рекламную рассылку клиентам отправил от нашего адреса, потом неделю из блеклистов выгребались.
Ну или просто кретин который большую простыню отправляет по всей компании, что кладет индексацию на ексченджах минут на 10
источник

MO

Mr Orange in PowerShellRus - о Powershell (и не только) на русском
У нас таких джва отдела.
источник

AF

Alexey D. Filimonov ... in PowerShellRus - о Powershell (и не только) на русском
Ну и везде свои нюансы, потому лучше спросить почтового админа 146% :)
источник

MO

Mr Orange in PowerShellRus - о Powershell (и не только) на русском
Ведь нам же не админ этот вопрос задает ? Ведь не админ ?
источник