Saturday, March 16, 2013

PowerShell Script using WMI class to check uptime of the remote machines - Suptime.ps1

Hello.. Everyone,

Good Day !!!!

I have written one more script to check uptime of the server remote machines that uses PowerShell and WMI class "Win32_OperatingSystem" to check the uptime of the server

The script first checks if the server/computer is reachable then it tries to get uptime of that machine, if the computer/server is not reachable then the script throws a output stating "The server is not reachable"


Content of sutime.ps1
--------------------------------------------------------------------------------
# PS script to get uptime of the computers mentioned in computers.txt file
# Script first checks if the server is reachable then tries to get uptime of the server
# Function to get uptime

Function Get-HostUptime {
    param ([string]$ComputerName)
    $Uptime = Get-WmiObject -Class Win32_OperatingSystem -ComputerName $ComputerName
    $LastBootUpTime = $Uptime.ConvertToDateTime($Uptime.LastBootUpTime)
    $Time = (Get-Date) - $LastBootUpTime
    Return '{0:00} Days, {1:00} Hours, {2:00} Minutes, {3:00} Seconds' -f $Time.Days, $Time.Hours, $Time.Minutes, $Time.Seconds
}


foreach ($computer in Get-Content "computers.txt")
{
$c = Get-WmiObject Win32_PingStatus -f "Address='$computer'"

if($c.StatusCode -eq 0) 
{

$sysuptime = Get-HostUptime -ComputerName $computer

write-host "$computer" "$sysuptime"
}

else
{

write-host "$computer is not reachable"

}
}

--------------------------------------------------------------------------------

Powershell - Ping servers using wmi class svr-ping.ps1

After a long time this is one new post from me... ;) !!!!
 
Here is one more PowerShell script which uses WMI class PingStatus to check if server is reachable or not remotely 

The computer/server name should be mentioned in "Computers.txt" file

The script can use both IP address or hostname to check the ping status remotely

Ofcourse there are many other ways to ping servers however this is the easiest way I found to be quick way to check the server ping status remotely


Content of svr-ping.ps1

------------------------------------------------------------------------------------
foreach ($computers in Get-Content "Computers.txt")
{

$Computer = Get-WmiObject Win32_PingStatus -f "Address='$computers'"

if($computer.StatusCode -eq 0) 
{
"{0,0} {1,5} {2,5}" -f$computer.Address, $computer.StatusCode, "Its pinging"
}
else
{
"{0,0} {1,5} {2,5}" -f $computer.Address, $computer.StatusCode, "Its not reachable"

}

------------------------------------------------------------------------------------