Sometimes a simple script makes life easier…
'Check-Uptime-DC-Prompt.ps1'
# Import the Active Directory module
Import-Module ActiveDirectory
# Get all domain controllers, excluding the specific one
$dc = read-host -prompt "What DC to check uptime on?"
# Initialize an array to store the results
$results = @()
#Get the results and format the output and add to the array
try {
$uptime = Invoke-Command -ComputerName $dc -ScriptBlock {
(Get-CimInstance -ClassName Win32_OperatingSystem).LastBootUpTime
} -SessionOption $sessionOption -ErrorAction Stop
$uptimeFormatted = (Get-Date) - $uptime
$results += [PSCustomObject]@{
'Domain Controller' = $dc
'Last Boot Time' = $uptime
'Uptime (Days)' = $uptimeFormatted.Days
'Uptime (Hours)' = $uptimeFormatted.Hours
'Uptime (Minutes)' = $uptimeFormatted.Minutes
}
} catch {
Write-Warning "Failed to retrieve uptime for $dc $_"
}
#Output the uptime
$results
1Though this is for a DC any server can be inputted you have rdp (WinRm) access to