PowerShell - Отправка сообщения с помощью PowerShell

Аватара пользователя
almaz.husnullin

Re: PowerShell - Отправка сообщения с помощью PowerShell

Сообщение almaz.husnullin »

Сенк за тему, скопипастил чуть поправил, но теперь хочу после отправки вложений переместить их в другую папку.



Write-Verbose "Добавляем получателей"

$To | ForEach-Object {$Message.To.Add($_)}

Write-Verbose "Отправляем сообщение"

$smtpclient.Send($Message)

#$res

Start-Sleep -s 10

Get-ChildItem "d:\scripts\Send1\"|where { ! $_.PSIsContainer } |select -expand fullname | foreach-object {move-item $_ -destination "d:\scripts\Send1\old\"}





Move-Item : Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.

строка:35 знак:116

+ Get-ChildItem "d:\scripts\Send1\"|where { ! $_.PSIsContainer } |select -expand fullname | foreach-object {move-item
Аватара пользователя
Kazun

Re: PowerShell - Отправка сообщения с помощью PowerShell

Сообщение Kazun »

Воспользоваться методом Dispose() для объекта класса Net.Mail.Attachment, а лучше использовать командлет Send-MailMessage.
Аватара пользователя
alexu.ku.3@fb

Re: PowerShell - Отправка сообщения с помощью PowerShell

Сообщение alexu.ku.3@fb »

А как его засунуть в цикл и в одно письмо вложить 10 файлов - вот так не работает %)



Dispose() так и не понял толком куда вставить, пробовал по разному на разные переменные - не работает.







$body = Get-ChildItem | Select -Exp FullName | Out-String

if($body)

{

send-mailmessage -to "User01 " -from "User02 " -Attachment $body -subject "Test mail" -SmtpServer mx.a.ua -Body "test"
Аватара пользователя
Kazun

Re: PowerShell - Отправка сообщения с помощью PowerShell

Сообщение Kazun »

1) Дохтур, у меня ЭТО! (с)



2) Изменить $body на :



Код:

Код: Выделить всё

$body = Get-ChildItem | Select -Exp FullName
Аватара пользователя
alexu.ku.3@fb

Re: PowerShell - Отправка сообщения с помощью PowerShell

Сообщение alexu.ku.3@fb »

Сенк, работает.

Но опять же с перемещением отправленных вложений возникает та-же проблема.



Move-Item : Процесс не может получить доступ к файлу, так как этот файл занят другим процессом



___



cd d:\scripts\Send1\

$body = Get-ChildItem | ?{ ! $_.PSIsContainer } | % { $_.FullName }

if($body)

{

send-mailmessage -to "User01 " -from "User02 " -Attachment $body -subject "Test mail" -SmtpServer m.a.ua -Body "test"

}

Start-Sleep -s 5



Get-ChildItem "d:\scripts\Send1\"|where { ! $_.PSIsContainer } |select -expand fullname | foreach-object {move-item $_ -destination "d:\scripts\Send1\old\"}
Ответить

Вернуться в «Скриптовые языки администрирования Windows»