If you need to monitor how long the machine has been up, or whether the machine rebooted by itself or someone has just rebooted the server for without any reason. Then getting the uptime of the machine or server is important.
PowerShell code below gets the uptime by using a command line and processing its output.
#get the uptime and save to text file
Invoke-command -ScriptBlock { net statistics server >c:\online.txt
}
$xcmd = select-string
-path "c:\online.txt" -Pattern "since" | select line |ft
-hidetableheaders
write-output $xcmd |
out-file c:\online1.txt
$stry = get-content c:\online1.txt
| out-string
$concatString = $stry.Substring(18,15)
Write-host $concatString
#Get the date
$StartDate= [datetime] $concatString
$EndDate= (GET-DATE)
$xdate = NEW-TIMESPAN –Start $StartDate –End $EndDate
write-output $xdate
#==========================
Sample output:
Days : 3
Hours : 12
Minutes : 12
Seconds : 17
Milliseconds :
271
Ticks :
439372713503
TotalDays :
0.508533233221065
TotalHours :
12.2047975973056
TotalMinutes :
732.287855838333
TotalSeconds :
43937.2713503
TotalMilliseconds : 43937271.3503
Basically, it shows that the machine has been online for
around 3 days and 12 hours.
Code in getting the date and time difference is taken from
this link below:
Code explanation:
Code below will execute the command line net statatisics
server and save the output to c:\online.txt
Change “c:\online.txt” to the desired path or location
Invoke-command -ScriptBlock { net statistics server > c:\online.txt
}
Code below will find the pattern or the string “since” on online.txt file, once the pattern matches the whole line is selected and ft -hidetableheaders will format the table and hide the headers of the output.
Code below will find the pattern or the string “since” on online.txt file, once the pattern matches the whole line is selected and ft -hidetableheaders will format the table and hide the headers of the output.
$xcmd = select-string
-path "c:\online.txt" -Pattern "since" | select line |ft
-hidetableheaders
Code below will write the output of the variable $xcmd to a
new file online1.txt
write-output $xcmd |
out-file c:\online1.txt
Code below will get the content of online1.txt and convert
the output as string and save it to $stry variable.
$stry = get-content c:\online1.txt
| out-string
Code below is just a concatenation of the string, basically
stripping the characters or data that is not needed. Concatenation will start
at column 18 up to 15 characters.
$concatString = $stry.Substring(18,15)
Code below is just to display the concatenated string to
make sure that the concatenated string is the string needed.
Write-host $concatString
Chunks of code below is taken from Technet the algorithm
behind it is unknown, anyway it does the job and it works very well then just
use it.
$StartDate= [datetime] $concatString
$EndDate= (GET-DATE)
$xdate = NEW-TIMESPAN –Start $StartDate –End $EndDate
write-output $xdate
================================
Free Android Apps:
Click on links below to find out more:
Excel Keyboard shortcuts guide
Linux Android App cheat sheet:
Multiplication Table for early learners
https://play.google.com/store/apps/details?id=com.TableMultiplication
Divine Mercy Chaplet Guide (A Powerful prayer):
Comments
Post a Comment