Advertisement
stephanlinke

[PRTG] Monitor Expiration Date

Dec 8th, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Param([string]$Type,[string]$ExpirationDate)
  2.  
  3. [System.Threading.Thread]::CurrentThread.CurrentCulture = "de-DE"
  4.  
  5. $DateDifference = New-TimeSpan -Start (Get-Date) -End $ExpirationDate
  6. $Days = $DateDifference.Days
  7. $Hours = $DateDifference.Hours
  8. $Minutes = $DateDifference.Minutes
  9.  
  10. $DaysExp = [System.Math]::Round($DateDifference.TotalDays * -1,0)
  11. $HoursExp = [System.Math]::Round($Hours * -1,0)
  12. $MinutesExp = [System.Math]::Round($Minutes * -1,0)
  13.  
  14. $MessageExpired = ("{0} seit {1} Minuten, {2} Stunden und {3} Tagen abgelaufen!" -f $Type,$MinutesExp,$HoursExp,$DaysExp)
  15.  
  16. if($DateDifference.TotalDays -gt 0){ $Message = ( "{0} wird in {1} Tage(n), {2} Stunde(n) und {3} Minute(n) ablaufen." -f $Type,$Days,$Hours,$Minutes ) }
  17. if($DateDifference.TotalDays -le 0){ $Message = ("{0} wird in {1} Stunde(n) und {2} Minute(n) ablaufen." -f $Type,$Hours,$Minutes );$Days = 0; }
  18. if($DateDifference.TotalHours -le 0 -and $Days -le 0){ $Message = ("{0} wird in {1} Minute(n) ablaufen." -f $Type,$Minutes ); $Days = 0; $Hours = 0;}
  19. if($DateDifference.TotalMinutes -le 0) { $Message = $MessageExpired; $Minutes = 0; }
  20.  
  21. Write-Host Write-Host @"
  22. <PRTG>
  23.  <result>
  24.    <channel>Tage</channel>
  25.    <value>
  26.    $([System.Math]::Round($DateDifference.TotalDays,0))
  27.    </value>
  28.    <showChart>1</showChart>
  29.    <showTable>1</showTable>
  30.    <Float>1</Float>
  31.    <DecimalMode>All</DecimalMode>
  32.    <unit>Custom</unit>
  33.    <CustomUnit>Days</CustomUnit>
  34.    <mode>Absolute</mode>
  35.  </result>
  36.  <result>
  37.    <channel>Stunden</channel>
  38.    <value>$([System.Math]::Round($DateDifference.TotalHours,0))</value>
  39.    <showChart>1</showChart>
  40.    <showTable>1</showTable>
  41.    <Float>1</Float>
  42.    <DecimalMode>All</DecimalMode>
  43.    <unit>TimeHours</unit>
  44.    <mode>Absolute</mode>
  45.  </result>
  46.  <result>
  47.    <channel>Minuten</channel>
  48.    <value>$([System.Math]::Round($DateDifference.TotalMinutes,0))</value>
  49.    <showChart>1</showChart>
  50.    <showTable>1</showTable>
  51.    <Float>1</Float>
  52.    <unit>CustomUnit</unit>
  53.    <customunit>Minutes</customunit>
  54.    <mode>Absolute</mode>
  55.    <DecimalMode>All</DecimalMode>
  56.  </result>
  57.  <Text>$Message</Text>
  58. </PRTG>
  59. "@;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement