Advertisement
stephanlinke

[PRTG] Get Last SelfTest from APC UPS

Jul 21st, 2016
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. param(
  2.     [string]$targethost,
  3.     [int]$port = 161,
  4.     [string]$version = "2c",
  5.     [string]$community = "public",
  6.     [string]$oid = "1.3.6.1.4.1.318.1.1.1.7.2.4.0",
  7.     [string]$dateformat = "MM/dd/yyyy"
  8. )
  9.  
  10. $pinfo = New-Object System.Diagnostics.ProcessStartInfo
  11. $pinfo.FileName = "C:\Program Files (X86)\PRTG Network Monitor\Custom Sensors\EXE\snmpget.exe"
  12. $pinfo.RedirectStandardError = $true
  13. $pinfo.RedirectStandardOutput = $true
  14. $pinfo.UseShellExecute = $false
  15. $pinfo.CreateNoWindow = $true
  16. $pinfo.Arguments = @("-q","-r:$targethost","-p:$port","-v:$version","-c:$community","-o:$oid")
  17. $p = New-Object System.Diagnostics.Process
  18. $p.StartInfo = $pinfo
  19. $p.Start() | Out-Null
  20.  
  21. $stdout = $p.StandardOutput.ReadToEnd()
  22. $stderr = $p.StandardError.ReadToEnd()
  23. $p.WaitForExit()
  24.  
  25. function Convert-DateString ([String]$Date, [String[]]$Format)
  26. {
  27.    $result = New-Object DateTime
  28.  
  29.    $convertible = [DateTime]::TryParseExact(
  30.       $Date,
  31.       $Format,
  32.       [System.Globalization.CultureInfo]::InvariantCulture,
  33.       [System.Globalization.DateTimeStyles]::None,
  34.       [ref]$result)
  35.  
  36.    if ($convertible) { $result }
  37. }
  38. $Now = (Get-Date)
  39. $LastSelfTest = (Convert-DateString -Date $stdout.TrimStart().TrimEnd() -Format $dateformat)
  40. $Difference  = $Now - $LastSelfTest;
  41.  
  42. Write-Host ([string]::Format("{0}:Last self test was {0} days ago",$Difference.Days));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement