public/Get-Uptime.ps1
function Get-UpTime { <# .DESCRIPTION .PARAMETER ComputerName Optional. Name of remote computer to query .PARAMETER Credential Optional. Credential to use for remote connection when using -ComputerName .EXAMPLE Get-UpTime .EXAMPLE Get-UpTime -ComputerName Server123 .EXAMPLE Get-UpTime -ComputerName Server123 -Credential $myCred .LINK https://github.com/Skatterbrainz/helium/blob/master/docs/Get-UpTime.md #> [CmdletBinding()] param ( [parameter()][string]$ComputerName, [parameter()][pscredential]$Credential ) try { if (![string]::IsNullOrWhiteSpace($ComputerName)) { $params = @{ ComputerName = $ComputerName ErrorAction = 'Stop' } if ($null -ne $Credential) { $params['Credential'] = $Credential $params['Authentication'] = 'Negotiate' } $session = New-CimSession @params Get-CimInstance -CimSession $session -ClassName Win32_OperatingSystem | Select-Object CSName,LastBootupTime } else { Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object CSName,LastBootupTime } } catch { Write-Error $_.Exception.Message } finally { if (Get-CimSession $session) { $null = Remove-CimSession $session } } } |