Check Server Status

How To Check Server Status Windows PowerShell | VCP Blog (wordpress.com)

# Declare Variables
#
$OutputFileName="c:\temp\Server_Status.csv"
#
# Delete Output file
#
if (Test-Path $OutputFileName ){
    Clear-Host
    Write-Host "Output File already Exists, deleting output file now - $OutputFileName.`n" -ForegroundColor Black -BackgroundColor Green
    Remove-Item $OutputFileName
    [console]::Beep(500,700)
}

#
# Validate to check Single or Muliple servers
#
$Check_Type=Read-Host "Do you want to Check status of (S)ingle or (M)ultiple Servers?"
if ($Check_Type -eq "S" -and $Check_Type -ne "") {
$ServerName=Read-host "Enter Computer Name"
if (Test-Connection -ComputerName $ServerName -Count 1 -ErrorAction SilentlyContinue) {
        # Write Column Heading delimited by Tab
        #
        echo "Host Name`tNode Status" > $OutputFileName
        #
        # Write Node Up, delimited by tab
        echo "$ServerName`tUp" >> $OutputFileName
    } else {
        # Write Column Heading delimited by Tab
        #
        echo "Host Name`tNode Status" > $OutputFileName
        #
        # Write Node Down, delimited by tab
        echo "$ServerName`tDown" >> $OutputFileName
    }
        #
        # Launch Ping Status Output File
        #
        Write-Host "Task completed, launching file"
        Invoke-Item $OutputFileName
} elseif ($Check_Type -eq "m" -and $Check_Type -ne "") {
        $ServersList="c:\temp\ServersList.txt"
        # Get Servers List
        #
        $ServerNames = Get-Content $ServersList
        #
        #
        # Write Column Heading delimited by Tab
        #
        echo "Host Name`tNode Status" > $OutputFileName
        #
        # Loop Each Server and do ping test once
        #
        foreach ($ServerName in $ServerNames) {
            $StartCount = 0
            $TotalCount = (Get-Content $ServersList | Measure-Object | Select-Object -ExpandProperty Count)
            #
            # Test Node reachability (ping)
            #  

            if (Test-Connection -ComputerName $ServerName -Count 1 -ErrorAction SilentlyContinue) {
            # Write Node Up, delimited by tab
                echo "$ServerName`tUp" >> $OutputFileName
            } else {
            # Write Node Down, delimited by tab
                echo "$ServerName`tDown" >> $OutputFileName
            }

            $StartCount++
            #
            # Progress Bar
            #
            Write-Progress -Activity "Collate Host Status" -Status "Pinging Hosts..." -PercentComplete ($StartCount / $TotalCount *100)
            }
        #
        # Launch Ping Status Output File
        #
        Write-Host "Task completed, launching file"
        Invoke-Item $OutputFileName
    } else {
            Write-Host "Invalid Option`n" -BackgroundColor Red -ForegroundColor Green
            [console]::Beep(600,700)   } 

Beliebte Posts aus diesem Blog

Shutdown / Lastlogon Analyse