Start with Powershell 6, there is Get-Uptime cmdlet to tell how long the system running.
Example with Powershell Core on RHEL 7.6
[tuyendq@rhel1 ~]$ pwsh PowerShell 6.2.0 Copyright (c) Microsoft Corporation. All rights reserved. https://aka.ms/pscore6-docs Type 'help' to get help. PS /home/tuyendq> Get-Uptime -Since Monday, December 31, 2018 10:42:03 PM PS /home/tuyendq> Get-Uptime Days : 150 Hours : 22 Minutes : 14 Seconds : 34 Milliseconds : 0 Ticks : 130400740000000 TotalDays : 150.926782407407 TotalHours : 3622.24277777778 TotalMinutes : 217334.566666667 TotalSeconds : 13040074 TotalMilliseconds : 13040074000 PS /home/tuyendq>
You will get error with Powershell version earlier than 6.0. Let's try with PSVersion 5.1.x on Windows 10
PS F:\Projects\lthwpowershell> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.17763.503
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.17763.503
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
PS F:\Projects\lthwpowershell> Get-Uptime
Get-Uptime : The term 'Get-Uptime' is not recognized as the name of a cmdlet, function, script
file, or operable program. Check the spelling of the name, or if a path was included, verify
that the path is correct and try again.
At line:1 char:1
+ Get-Uptime
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-Uptime:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
PS F:\Projects\lthwpowershell>