powershell powershell脚本的模板。使所有错误“终止”并在发生错误时发送邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了powershell powershell脚本的模板。使所有错误“终止”并在发生错误时发送邮件相关的知识,希望对你有一定的参考价值。

# Templata.ps1
# author: Loic MICHEL
# date: 10/09/2013
# abstract: make all errors terminating errors and send email + raise event in case of failure
#


[CmdletBinding()]param(
  
) 

# GENERATION D'UNE TRACE POUR DEBUGGAGE
#########################################
$erroractionPreference="stop" #toutes les erreurs seront bloquantes
$trace="E:\exploitation\logs\trace_copie_bases_industria.txt"
try{stop-transcript -ea silentlycontinue }catch{} #suppression d'une éventuelle trace antérieure
start-transcript -path $trace

# VARIABLES PRIVEES
#####################
$_scriptname=$MyInvocation.myCommand.definition
$_enc=[system.text.encoding]::UTF8 #encoding à utiliser pour le mail

#    *** !!  VARIABLES A MODIFIER  !! ***
###########################################
$source="f:\SQLBACKUP\" #répertoire de base des sauvegardes SQL
$destination="\\indus2-msons\SQLBACKUP" #destination de la sauvegarde
$logdir="e:\exploitation\logs"
$description="Copie bases INDUSTRIA LANTERNEAUX sur INDUS2-MSONS" #la description sera réutilisée dans les messages logs et mails
$bdd='AXTER LA' # si $midi est utilisé, seule cette base sera copiée.
$message="Erreur : $description ($_scriptname)" #sujet des mails
$from="$env:computername@domain.com" #expediteur pour mail
$to="user@domain.com","user2@dom.com" #
$PSEmailServer="smtpinterne.domain.com" #adresse du serveur smtp

# DEBUT DU SCRIPT
#################
get-date
"`tDébut du script"


try{
  #DO STUFF
}
catch{ # Gestion des erreurs blocantes
	write-host "Une erreur est survenue !"
	$_
	copy-item $trace $logdir\trace2.txt -force
	
	$msg=$message + $($_.Exception.Message)
	Write-EventLog application -EntryType error -Source SMACINFO -eventID 1 -Message $msg
	send-mailmessage  -encoding $_enc -subject $message -bodyasHTML  "$($_.Exception.toString() )<br/> " -to $to -from $from -attachments $logdir\trace2.txt
	$?
	stop-transcript
	break
}

get-date
"Fin normale du script"
stop-transcript


以上是关于powershell powershell脚本的模板。使所有错误“终止”并在发生错误时发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

powershell [PS:脚本模板]只是PowerShell脚本要遵循的模板。 #PowerShell #Template

powershell脚本隐藏退出码

powershell 测量PowerShell命令或PowerShell脚本的速度

PowerShell 添加任务以使用参数运行 PowerShell 脚本

PowerShell命令与脚本(10)——脚本

powershell 远程执行bat脚本,去启动一个应用,如何让应用一直运行,powershell能正常退出?