我创建了一个脚本来从Exchange DB中提取数据(Displayname& MAilbox Size)。 脚本运行但我不能让脚本在desc中显示基于大小使用的前50个。订购。 初始脚本运行,并给我一个只有大小的图表,但似乎用户名没有正确显示。
也许有人可以协助看看我犯错误的地方吗?
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms.DataVisualization")
$Chart = New-object System.Windows.Forms.DataVisualization.Charting.Chart
$Chart.Width = 800
$Chart.Height = 700
$Chart.Left = 40
$Chart.Top = 30
$ChartArea = New-Object System.Windows.Forms.DataVisualization.Charting.ChartArea
$Chart.ChartAreas.Add($ChartArea)
[void]$Chart.Titles.Add("Top Mailboxes by Size - " + (Get-Date -Format D))
$ChartArea.AxisX.Title = "Users"
$ChartArea.AxisX.Interval = 1
$ChartArea.AxisY.Title = "Mailbox Size (GB)"
$script:WarningPreference = "SilentlyContinue"
$UserMailboxStats = Get-MailboxServer -Identity VPD-JHB-EXC004 |Get-Mailbox -RecipientTypeDetails UserMailbox | Get-MailboxStatistics| Sort-Object TotalItemSize -Descending
$UserMailboxStats | Add-Member -MemberType ScriptProperty -Name TotalItemSizeInBytes -Value {$this.TotalItemSize -replace "(.*\()|,| [a-z]*\)", ""}
$UserMailboxStats | Select-Object DisplayName, @{Name="TotalItemSize (GB)"; Expression={[math]::Round($_.TotalItemSizeInBytes/1GB,2)}} -First $topXmailboxes
$users = @(foreach($mailbox in $UserMailboxStats){$mailbox.DisplayName})
$sizes = @(foreach($mailbox in $UserMailboxStats){[Double]$mailbox.TotalItemSizeInBytes/1GB})
write-host
[void]$Chart.Series.Add("Data")
$Chart.Series["Data"].Points.DataBindXY($users, $sizes)
$Chart.Series["Data"]["DrawingStyle"] = "Cylinder"
$Chart.Anchor = [System.Windows.Forms.AnchorStyles]::Bottom -bor [System.Windows.Forms.AnchorStyles]::Right -bor
[System.Windows.Forms.AnchorStyles]::Top -bor [System.Windows.Forms.AnchorStyles]::Left
$Form = New-Object Windows.Forms.Form
$Form.Text = "PowerShell Chart"
$Form.Width = 900
$Form.Height = 800
$Form.controls.add($Chart)
$path = Split-Path -parent $MyInvocation.MyCommand.Definition
$Chart.SaveImage($path + "c:\ScheduledScripts\test.png", "PNG")
$Form.Add_Shown({$Form.Activate()})
$Form.ShowDialog()