如何使用PowerShell獲取系統執行時間?


要使用PowerShell獲取Windows系統的執行時間,我們可以使用類名為Win32_OperatingSystemCIM例項方法。一旦使用該類,就有一個名為LastBootupTime的屬性,它顯示計算機上次重啟的日期。

示例

Get-CimInstance -ClassName Win32_OperatingSystem | Select LastBootUpTime

輸出

LastBootUpTime
--------------
9/29/2020 8:12:08 AM

如果我們檢查上述輸出的資料型別,由於輸出格式的原因,它應該是DateTime。

(Get-CimInstance -ClassName Win32_OperatingSystem).LastBootUpTime.Gettype()

輸出

IsPublic IsSerial Name     BaseType
-------- -------- ----     --------
True     True     DateTime System.ValueType

我們現在需要以-小時-分鐘的格式顯示系統的執行時間。因此,我們將比較當前日期/時間與啟動日期/時間之間的差異。

$bootuptime = (Get-CimInstance -ClassName Win32_OperatingSystem).LastBootUpTime
$CurrentDate = Get-Date
$uptime = $CurrentDate - $bootuptime
$uptime

輸出

Days               : 6
Hours              : 0
Minutes            : 17
Seconds            : 38
Milliseconds       : 301
Ticks              : 5194583016830
TotalDays          : 6.01224886207176
TotalHours         : 144.293972689722
TotalMinutes       : 8657.63836138333
TotalSeconds       : 519458.301683
TotalMilliseconds  : 519458301.683

從輸出中,我們可以看出伺服器已經運行了6天17分鐘。我們也可以將輸出寫成如下所示。

Write-Output "Server Uptime --> Days: $($uptime.days), Hours: $($uptime.Hours), Minutes:$($uptime.Minutes)"

輸出

Server Uptime --> Days: 6, Hours: 0, Minutes:17

要在遠端計算機上檢查執行時間,請在命令中使用-ComputerName引數。例如,

$servers = "Test1-Win2k12","Test1-Win2k16","ADDC"
$currentdate = Get-Date
foreach($server in $servers){
$Bootuptime = (Get-CimInstance -ClassName Win32_OperatingSystem -ComputerName $server).LastBootUpTime
   $uptime = $currentdate - $Bootuptime
   Write-Output "$server Uptime : $($uptime.Days) Days, $($uptime.Hours) Hours, $($uptime.Minutes) Minutes"
}

輸出

Test1-Win2k12 Uptime : 5 Days, 22 Hours, 50 Minutes
Test1-Win2k16 Uptime : 5 Days, 23 Hours, 12 Minutes
ADDC Uptime : 6 Days, 2 Hours, 9 Minutes

更新於:2023年11月1日

44K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.