2017-05-09 16 views
1

設定したパスは無効です。コピーが失敗した場合、誰かに電子メールを送信します。エラーがなければ、コピーが成功したことを示す電子メールを送信します。 現在、それは私にエラーを与えません、それは電子メールを送信しません。私は電子メールの部分が正しいことを知って、それが動作することを確認した。エラー処理の新機能

私のスクリプトブロック。

$Status = 'Succeeded' 
try{ 
    Copy-Item -path "\\main-4\info\SmartPlant\app\CitrixRelease\domain\app\*" -Destination "\\domain.com\citrix\Installation Media\app\" -force -ErrorAction Stop 
}catch{ 
    $Status = 'Failed' 
}finally{ 
    $from = "[email protected]" 
    $to = "[email protected]" 
    $subject = "Copy $Status" 
    $body = "The Copy $Status" 
    If ($Status = 'Failed') {$body += ", please make sure the server is rebooted" } 

    $Attachment = "$file" 
    $msg = new-object Net.Mail.MailMessage 
    $smtp = new-object Net.Mail.SmtpClient("mail.domain.com") 

    $msg.From = $From 
    $msg.To.Add($To) 

    if($Attachment.Length -gt 1){ 
     $msg.Attachments.Add($Attachment) 
    } 

    $msg.Subject = $Subject 
    $msg.IsBodyHtml = $true 
    $msg.Body = $Body 
    $smtp.Send($msg) 
} 

あなたは本当にFinallyブロックを使用する必要があるが、それはありません。これについてコードを送信する電子メールを複製することなく、失敗と成功の両方のために電子メールを送信するためのソリューションとしてどのように

try 
{ 
Copy-Item -path "\\main- 
4\info\SmartPlant\app\CitrixRelease\domain\app\*" -Destination "\\domain.com\citrix\Installation Media\app\" -force -ErrorAction Stop 
} 
catch 
{ 
$from = "[email protected]" 
$to = "[email protected]" 
$subject = "Copy Failed" 
$body = "The Copy failed to complete, please make sure the servers rebooted" 
$msg = "$file" 
$Attachment = "$file" 

$msg = new-object Net.Mail.MailMessage 
$smtp = new-object Net.Mail.SmtpClient("mail.domain.com") 
$msg.From = $From 
$msg.To.Add($To) 
if($Attachment.Length -gt 1) 
{ 
    $msg.Attachments.Add($Attachment) 
} 
$msg.Subject = $Subject 
$msg.IsBodyHtml = $true 
$msg.Body = $Body 
$smtp.Send($msg) 
} 
+0

今は、例外が発生した場合にのみメールを送信します。現在のコピーコマンドで例外が発生しますか? – Seth

+0

私はあなたに役立つかもしれないtry..catchのブログ記事を書いた:http://wragg.io/powershell-try-catch/ –

+0

私はあなたが持っているものを持っていると思う。何が間違っているのか分かりません。 – user770022

答えて

2

電子メール機能が何に属しているかを明示するための素晴らしいコードブロックを作成します。

+0

ありがとう、これは動作します。 – user770022

関連する問題