Ajout dela structure MDT dans Infra-LAB
This commit is contained in:
@@ -0,0 +1,223 @@
|
||||
$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 = "<p>
|
||||
<span>Hello,<br><br>
|
||||
Operating System deployment <strong><span style=color:red>is unresponsive</span></strong> on the computer: <span style=color:blue><strong>$Deployment_ComputerName</strong></span> - $(get-date)
|
||||
<br><br>
|
||||
<span style=color:black>
|
||||
See below some informations about your deployment :
|
||||
<br><br>
|
||||
<strong>Computer name: </strong>$Deployment_ComputerName
|
||||
<br>
|
||||
<strong>Start time: </strong>$Start
|
||||
<br>
|
||||
<strong>Last time: </strong>$Deployment_LastTime
|
||||
<br>
|
||||
<strong>Warning: </strong>$Deployment_Warnings
|
||||
<br>
|
||||
<strong>Error: </strong>$Deployment_Errors
|
||||
<br>
|
||||
<strong>Step name: </strong>$Deployment_StepName
|
||||
<br>
|
||||
<strong>Percent: </strong>$Deployment_Percent_Complete
|
||||
<br><br>
|
||||
Best regards
|
||||
</span>
|
||||
</span></p>
|
||||
"
|
||||
send-mailmessage -from "$Mail_From" -to "$Mail_To" -subject "MDT Monitoring status: Unresponsive - On $Deployment_ComputerName" -body $Body -BodyAsHtml -priority Normal -smtpServer $Mail_SMTP
|
||||
break
|
||||
}
|
||||
ElseIf ($Deployment_Status -eq 3) # Deployment success
|
||||
{
|
||||
$Body = "<p>
|
||||
<span>Hello,<br><br>
|
||||
Operating System deployment <strong><span style=color:green>completed successfully</span></strong> on the computer: <span style=color:blue><strong>$Deployment_ComputerName</strong></span> - $(get-date)
|
||||
<br><br>
|
||||
<span style=color:black>
|
||||
See below some informations about your deployment :
|
||||
<br><br>
|
||||
<strong>Computer name: </strong>$Deployment_ComputerName
|
||||
<br>
|
||||
<strong>Start time: </strong>$Deployment_Start_time
|
||||
<br>
|
||||
<strong>End time: </strong>$Deployment_End_time
|
||||
<br>
|
||||
<strong>Elapsed time: </strong>$Deployment_Ellapsedtime
|
||||
<br>
|
||||
<strong>Warning: </strong>$Deployment_Warnings
|
||||
<br>
|
||||
<strong>Error: </strong>$Deployment_Errors
|
||||
<br><br>
|
||||
Best regards
|
||||
</span>
|
||||
</span></p>
|
||||
"
|
||||
send-mailmessage -from "$Mail_From" -to "$Mail_To" -subject "MDT Monitoring status: Success - On $Deployment_ComputerName" -body $Body -BodyAsHtml -priority Normal -smtpServer $Mail_SMTP
|
||||
break
|
||||
}
|
||||
|
||||
ElseIf ($Deployment_Status -eq 2) # Deployment failed
|
||||
{
|
||||
$Body = "<p>
|
||||
<span>Hello,<br><br>
|
||||
Operating System deployment <strong><span style=color:red>failed</span></strong> on the computer: <span style=color:blue><strong>$Deployment_ComputerName</strong></span> - $(get-date)
|
||||
<br><br>
|
||||
<span style=color:black>
|
||||
See below some informations about your deployment :
|
||||
<br><br>
|
||||
<strong>Computer name: </strong>$Deployment_ComputerName
|
||||
<br>
|
||||
<strong>Start time: </strong>$Deployment_Start_time
|
||||
<br>
|
||||
<strong>Last time: </strong>$Deployment_End_time
|
||||
<br>
|
||||
<strong>Warning: </strong>$Deployment_Warnings
|
||||
<br>
|
||||
<strong>Error: </strong>$Deployment_Errors
|
||||
<br>
|
||||
<strong>Step name: </strong>$Deployment_StepName
|
||||
<br>
|
||||
<strong>Percent: </strong>$Deployment_Percent_Complete
|
||||
<br><br>
|
||||
Best regards
|
||||
</span>
|
||||
</span></p>
|
||||
"
|
||||
send-mailmessage -from "$Mail_From" -to "$Mail_To" -Cc "$Mail_CC" -subject "MDT Monitoring status: Failed - On $Deployment_ComputerName" -body $Body -BodyAsHtml -priority Normal -smtpServer $Mail_SMTP
|
||||
break
|
||||
}
|
||||
}
|
||||
While ($MyData.Percent_Complete -lt 100)
|
||||
write-host "Deployment finished"
|
||||
Reference in New Issue
Block a user