$Monitoring_Host = "10.243.14.247" $URL = "http://" + $Monitoring_Host + ":9801/MDTMonitorData/Computers/" $Mail_From = "$tsenv:OSDSENDMAILFROM" $Mail_To = "$tsenv:OSDSendMailToPri" $Mail_CC = "$tsenv:OSDSendMailToSec" $Mail_SMTP = New-Object Net.Mail.SmtpClient($tsenv:OSDSendMailSMTPServer) function Get_My_MonitoringData { $Data = Invoke-RestMethod $URL foreach($property in ($Data.content.properties)) { $Percent = $property.PercentComplete.'#text' $Current_Steps = $property.CurrentStep.'#text' $Total_Steps = $property.TotalSteps.'#text' If ($Current_Steps -eq $Total_Steps) { If ($Percent -eq $null) { $Step_Status = "Not started" } Else { $Step_Status = "$Current_Steps / $Total_Steps" } } Else { $Step_Status = "$Current_Steps / $Total_Steps" } $Step_Name = $property.StepName If ($Percent -eq 100) { $Global:StepName = "Deployment finished" $Percent_Value = $Percent + "%" } Else { If ($Step_Name -eq "") { If ($Percent -gt 0) { $Global:StepName = "Computer restarted" $Percent_Value = $Percent + "%" } Else { $Global:StepName = "Deployment not started" $Percent_Value = "Not started" } } Else { $Global:StepName = $property.StepName $Percent_Value = $Percent + "%" } } $Deploy_Status = $property.DeploymentStatus.'#text' If (($Percent -eq 100) -and ($Step_Name -eq "") -and ($Deploy_Status -eq 1)) { $Global:StepName = "Running in PE" } $End_Time = $property.EndTime.'#text' If ($End_Time -eq $null) { If ($Percent -eq $null) { $EndTime = "Not started" $Ellapsed = "Not started" } Else { $EndTime = "Not finished" $Ellapsed = "Not finished" } } Else { $EndTime = ([datetime]$($property.EndTime.'#text')).ToLocalTime().ToString('HH:mm:ss') $Ellapsed = new-timespan -start ([datetime]$($property.starttime.'#text')).ToString('HH:mm:ss') -end ([datetime]$($property.endTime.'#text')).ToString('HH:mm:ss'); } New-Object PSObject -Property @{ "Computer Name" = $($property.Name); "Percent Complete" = $Percent_Value; "Step Name" = $StepName; "Step status" = $Step_Status; Warnings = $($property.Warnings.'#text'); Errors = $($property.Errors.'#text'); "Deployment Status" = $( Switch ($property.DeploymentStatus.'#text') { 1 { "Running" } 2 { "Failed" } 3 { "Success" } 4 { "Unresponsive" } Default { "Unknown" } } ); "Date" = $($property.StartTime.'#text').split("T")[0]; "Start time" = ([datetime]$($property.StartTime.'#text')).ToLocalTime().ToString('HH:mm:ss') "End time" = $EndTime; "Ellapsed time" = $Ellapsed; } } } $MyData = Get_My_MonitoringData | Select Date, "Computer Name", DeployID, "Percent Complete", PercentNumber, "Step Name", Warnings, Errors, "Start time", "End Time", "Ellapsed time", DeployStatus Do { $Deployment_Date = $MyData.Date $Deployment_ComputerName = $MyData."Computer name" $Deployment_Status = $MyData.DeployStatus $Deployment_LastTime = $MyData.LastTime $Deployment_StepName = $MyData."Step Name" $Deployment_Warnings = $MyData.Warnings $Deployment_Errors = $MyData.Errors $Deployment_Percent_Complete = $MyData."Percent Complete" $Deployment_Start_time = $MyData."Start time" $Deployment_End_time = $MyData."End Time" $Deployment_Ellapsedtime = $MyData."Ellapsed time" # COPIER LE SCRIPT DE NOTIFICATION ICI # SCRIPT DE NOTIFICATION MAIL If ($Deployment_Status -eq 4) # deployment unresponsive { $Body = "
Hello,
Operating System deployment is unresponsive on the computer: $Deployment_ComputerName - $(get-date)
See below some informations about your deployment :
Computer name: $Deployment_ComputerName
Start time: $Start
Last time: $Deployment_LastTime
Warning: $Deployment_Warnings
Error: $Deployment_Errors
Step name: $Deployment_StepName
Percent: $Deployment_Percent_Complete
Best regards
Hello,
Operating System deployment completed successfully on the computer: $Deployment_ComputerName - $(get-date)
See below some informations about your deployment :
Computer name: $Deployment_ComputerName
Start time: $Deployment_Start_time
End time: $Deployment_End_time
Elapsed time: $Deployment_Ellapsedtime
Warning: $Deployment_Warnings
Error: $Deployment_Errors
Best regards
Hello,
Operating System deployment failed on the computer: $Deployment_ComputerName - $(get-date)
See below some informations about your deployment :
Computer name: $Deployment_ComputerName
Start time: $Deployment_Start_time
Last time: $Deployment_End_time
Warning: $Deployment_Warnings
Error: $Deployment_Errors
Step name: $Deployment_StepName
Percent: $Deployment_Percent_Complete
Best regards