# Code Snippet from aperturescience.su # Parameters [Parameter(Position=5, Mandatory=$false, HelpMessage="Maximum uptime allowed")]$maxuptime=45, # Function to help format the strings function WMIDateStringToDate($Bootup) { [System.Management.ManagementDateTimeconverter]::ToDateTime($Bootup) } # Main Body $negmax = -$maxuptime $system = Get-WmiObject -class Win32_OperatingSystem $Bootup = $system.LastBootUpTime $LastBootUpTime = WMIDateStringToDate($Bootup) $now = Get-Date $Uptime = $now - $LastBootUpTime $d = $Uptime.Days $h = $Uptime.Hours $m = $uptime.Minutes Write-Verbose "System Up for: $($d) days, $($h) hours, $($m) minutes" if ($LastBootUpTime -lt $now.adddays($negmax)) { Write-Verbose "System has been up longer than $maxuptime days" } else { Write-Verbose "System has not been up longer than $maxuptime days" } # Code Snippet from aperturescience.su