У меня есть следующая команда, которая вычисляет среднее значение одного свойства
$Databases = Get-MailboxDatabase -Status
foreach($Database in $Databases) {
$DBSize = $Database.DatabaseSize
$MBCount = @(Get-MailboxStatistics -Database $Database.Name).Count
# This line is giving me trouble
$MBAvg = Get-MailboxStatistics -Database $Database.Name | %{$_.TotalItemSize.value.ToMb()} | Measure-Object -Average
New-Object PSObject -Property @{
Server = $Database.Server.Name
DatabaseName = $Database.Name
LastFullBackup = $Database.LastFullBackup
MailboxCount = $MBCount
"DatabaseSize (GB)" = $DBSize.ToGB()
"AverageMailboxSize (MB)" = $MBAvg.Average
"WhiteSpace (MB)" = $Database.AvailableNewMailboxSpace.ToMb()
Items = 0
LogicalSize = 0
}
}
Я бы хотел, чтобы «Measure-Object» отслеживал несколько значений, общее и среднее.
$MeasureProps = "AssociatedItemCount", "DeletedItemCount", "ItemCount", "TotalDeletedItemSize", "TotalItemSize"
$Databases = Get-MailboxDatabase -Status
foreach($Database in $Databases) {
$DBSize = $Database.DatabaseSize
$MBCount = @(Get-MailboxStatistics -Database $Database.Name).Count
$MBStats = Get-MailboxStatistics -Database $Database.Name
#Expanded version of problem line above
foreach($mb in $MBStats)
{
foreach($prop in $MeasureProps)
{
#this is a random hack. I have almost no idea what I'm doing.
select $mb.$prop | Measure-Object -Property $prop -Sum -Average
}
}
New-Object PSObject -Property @{
Server = $Database.Server.Name
DatabaseName = $Database.Name
LastFullBackup = $Database.LastFullBackup
MailboxCount = $MBCount
"DatabaseSize (GB)" = $DBSize.ToGB()
"AverageMailboxSize (MB)" = $MBAvg.Average
"WhiteSpace (MB)" = $Database.AvailableNewMailboxSpace.ToMb()
Items = 0
LogicalSize = 0
}
}
Проблема, которую я имею, состоит в том, чтобы выяснить, как редактировать %{$_.TotalItemSize.value
, чтобы я мог получить доступ к итоговому значению для каждого объекта.