我有以下命令計算一個屬性如何使用Measure-Object在Powershell中進行反射/動態輸入?
$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
}
}
我想使「測量-對象」跟蹤數個proerties,總的和平均的平均值。
$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
,這樣我可以訪問總量爲每個對象。
啊,這讓我更接近;我剛更新了這個問題 – LamonteCristo