برای دریافت آپتایم سیستم ویندوز با PowerShell، میتوانیم از متد CIM Instance با نام کلاس Win32_OperatingSystem استفاده کنیم . هنگامی که از کلاس ذکر شده استفاده می کنید یک ویژگی به نام 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
اکنون به زمان کارکرد سیستم در قالب Days – Hours – Minutes نیاز داریم . بنابراین ما تفاوت بین تاریخ/زمان فعلی را با تاریخ/زمان Bootup مقایسه خواهیم کرد.
$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 در دستور استفاده کنید. مثلا،
[/membership]$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