Uptime
Function Get-Uptime {
[CmdletBinding()]
param(
[Parameter(
Position=0,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true)]
[String[]]$ComputerName=$env:computername
)
foreach ($comp in $ComputerName){
$OS = Get-WmiObject Win32_OperatingSystem -ComputerName $comp
$SystemTZ = Get-WmiObject -Class Win32_TimeZone -ComputerName $comp
$LocalTZ = Get-WmiObject -Class Win32_TimeZone
$upTime = (Get-Date) - $OS.ConvertToDateTime($OS.LastBootUpTime)
[PSCustomObject]@{
SystemName = $OS.PSComputerName
LocalTimeZone = $LocalTZ | select -ExpandProperty description
SystemTimeZone = $SystemTZ | select -ExpandProperty description
LastBoot_LocalTime = $OS.ConvertToDateTime($OS.LastBootUpTime)
LastBoot_SystemTime = [datetime]::ParseExact(
$OS.LastBootUpTime.split('.')[0],'yyyyMMddHHmmss',$null)
TotalUptime = $upTime.ToString()
TotalDaysUp = [math]::round($upTime.TotalDays, 2)
TotalHoursUp = [math]::round($upTime.TotalHours, 2)
TotalMinutesUp = [math]::round($upTime.TotalMinutes, 2)
TotalSecondsUp = [math]::round($upTime.TotalSeconds, 2)
TotalMillisecondsUp = [math]::round($upTime.TotalMilliseconds, 2)
}
}
}
PS> $comps = "CA-Server","NY-Server","localhost" PS> Get-Uptime -ComputerName $comps SystemName : CA-Server LocalTimeZone : (UTC-06:00) Central Time (US & Canada) SystemTimeZone : (UTC-08:00) Pacific Time (US & Canada) LastBoot_LocalTime : 3/16/2013 7:45:17 PM LastBoot_SystemTime : 3/16/2013 5:45:17 PM TotalUptime : 27.02:15:28.1364414 TotalDaysUp : 27.09 TotalHoursUp : 650.26 TotalMinutesUp : 39015.47 TotalSecondsUp : 2340928.14 TotalMillisecondsUp : 2340928136.44 SystemName : NY-Server LocalTimeZone : (UTC-06:00) Central Time (US & Canada) SystemTimeZone : (UTC-05:00) Eastern Time (US & Canada) LastBoot_LocalTime : 3/6/2013 5:22:35 PM LastBoot_SystemTime : 3/6/2013 6:22:35 PM TotalUptime : 37.04:38:34.3182684 TotalDaysUp : 37.19 TotalHoursUp : 892.64 TotalMinutesUp : 53558.57 TotalSecondsUp : 3213514.32 TotalMillisecondsUp : 3213514318.27 SystemName : BERKENBILEJW530 LocalTimeZone : (UTC-06:00) Central Time (US & Canada) SystemTimeZone : (UTC-06:00) Central Time (US & Canada) LastBoot_LocalTime : 4/12/2013 9:09:43 PM LastBoot_SystemTime : 4/12/2013 9:09:43 PM TotalUptime : 00:51:26.4508818 TotalDaysUp : 0.04 TotalHoursUp : 0.86 TotalMinutesUp : 51.44 TotalSecondsUp : 3086.45 TotalMillisecondsUp : 3086450.88
EventLog FileSize
Get-WmiObject -Class Win32_NTEventLogFile -filter "LogFileName = 'Application'" | Select CSName, FileSize | ft @{Expression={$_.CSName};Label="Hostname"}, @{Expression={$_.FileSize};Label="FileSize (Bytes)"} -AutoSize
function StringVersions {
param([string]$inputString)
$obj = New-Object PSObject
$obj | Add-Member NoteProperty HostName($logsize.CSName)
$obj | Add-Member NoteProperty LogSize($logsize.FileSize)
Write-Output $obj
}
$hosts = Read-Host "Provide Servernames (use ; as separator) : "
$hostsarr = ($hosts).split(";")
Foreach ($a in $hostsarr) {
$LogSize=Get-WmiObject -ComputerName $a -Class Win32_NTEventLogFile -filter "LogFileName = 'Application'"# | Select CSName, FileSize
stringVersions $item
}
Eventlogs 2
# -----------------------------------------------------------------------------
# Script: HTML_EventlogSize.ps1
# Usage: HTML_EventlogSize.ps1 -Servers <server1>,<Server2> -eventlogs Application,System
# Author: ed wilson, msft
# Date: 08/06/2012 15:11:03
# Keywords: Scripting Techniques, Web Pages and HTAs
# comments: Get-Wmiobject, New-Object, Get-Date, Convertto-HTML, Invoke-Item
# HSG-8-7-2012
#
# Modified : 01/24/2013
# By : Wessel van Sandwijk
# Added date format
# -----------------------------------------------------------------------------
Param(
[string]$path = "\\readynas\Scripts\Reports\EventlogSize.html",
[array]$servers = @("labhyp001","labhyp002"),
[array]$eventlogs = @("Application","System")
)
Function Get-EventlogSize
{ Param ([string[]]$servers)
Foreach ($s in $servers)
{
Foreach ($l in $eventlogs)
{
$os = Get-WmiObject -Class Win32_NTEventLogFile -cn $s -filter "LogFileName = '$l'"
$EventLogSize = $os.FileSize
$system=$os.CSname
New-Object psobject -Property @{
FileSize = '{0:N0}' -f $eventLogSize;
Eventlog=$l;
#computer=$s;
System=$system;
ReportDate =$(get-date)
}
}
}
}
# Entry Point ***
Get-EventlogSize -servers $servers #-eventlogs $eventlogs #|
#ConvertTo-Html -As Table -body "
# <h1>Server Uptime Report</h1>
# The following report was run on $(get-date)" >> $path
# Invoke-Item $path
