Страница 1 из 1

PS:Мониторинг freespace,size, used space, uptime - черновик

Добавлено: 19 дек 2014 10:43
M.K
### собрано из кусков, найденных на просторах инета.
## генерируем и высылаем на почту табличку в cvs и html файл таких параметров, как размер HDD, его использованное место
## свободное место, занятое место, время работы сервера.
## список серверов в файле servers.txt - в столбик без пробелов и пустых строк
##
### не удалось понять, почему не отобраджается UpTime в html


$data=Get-Content d:\scripts\servers.txt |? {Test-Connection $_ -Quiet -Count 2}|
ForEach-Object {Get-WmiObject -computername $_ win32_logicaldisk -fi "drivetype=3"|
select @{Name="Computername";expression={$_.SystemName}},
DeviceID,
@{Name="SizeGB";Expression={"{0:N2}" -f ($_.Size/1GB)}},
@{Name="FreeGB";Expression={"{0:N2}" -f ($_.FreeSpace/1GB)}},
@{Name="UsedGB";Expression={"{0:N2}" -f (($_.Size-$_.FreeSpace)/1GB)}},
@{Name="PerfFree";Expression={"{0:P2}" -f ($_.FreeSpace/$_.size)}}
ForEach-Object {Get-WmiObject -ComputerName $_ win32_operatingsystem |
select @{Name="ComputerName";Expression={$_.CSName}},
@{Name="LastBoot";Expression={$_.ConvertToDateTime($_.LastBootUpTime)}},
@{Name="Uptime";Expression={(Get-Date)-$_.ConvertToDateTime($_.LastBootUpTime)}}
}
}

$data |sort ComputerName | ft -AutoSize -Wrap -Property Computername,SizeGB,FreeGB,UsedGB,PerfFree,LastBoot,Uptime | Out-File d:\scripts\disk.txt
$data | sort ComputerName | Export-Csv d:\scripts\disk.csv
$data | sort ComputerName | ConvertTo-Html -Title "Utilization" -CssUri diskutiliz.css| Out-File d:\scripts\disk.html
Send-MailMessage -To admin@contoso.com -Subject Report -SmtpServer email.contoso.com -From host4.report@contoso.com -Port 25 -Attachments D:\scripts\disk.html, D:\scripts\diskutiliz.css

Re: PS:Мониторинг freespace,size, used space, uptime - черно

Добавлено: 24 фев 2015 08:54
iHumster
В результате (Get-Date)-$_.ConvertToDateTime($_.LastBootUpTime) получается объект типа [timespan]. Из него нужно извлекать нужные значения:

Результат таймспана выглядит так:

Days : 3
Hours : 0
Minutes : 25
Seconds : 36
Milliseconds : 795
Ticks : 2607367959018
TotalDays : 3,01778698960417
TotalHours : 72,4268877505
TotalMinutes : 4345,61326503
TotalSeconds : 260736,7959018
TotalMilliseconds : 260736795,9018

Что бы получить дни нужно воспользоваться конструкцией ((Get-Date)-$_.ConvertToDateTime($_.LastBootUpTime)).Days