The other day I was doing some troubleshooting on a DAG member in a remote site. I needed to get a picture of the copy and replay queues for the server over a period of time. To do this I wrote a small script to poll the queues at 60 second intervals over a 24 hour period. The output is in CSV format to allow the results to examined/graphed using Excel. I thought it might be useful to others.
######################################################### # # Name: Get-QueueLength.ps1 # Author: Tony Murray # Version: 1.0 # Date: 25/01/2012 # Comment: PowerShell script to output DAG database # queue lengths to file # ######################################################### $outfile = "c:\QueueLength.csv" $server = "MyExchangeServer" $head = "Date,Time,Database,CopyQLength,ReplayQLength" if (Test-Path $OutFile) {Remove-Item $outfile} Add-Content -Value $head -Path $outfile $i = 0 do { $dat = Get-Date -Format d $tim = get-date -Format HH:mm $stats = Get-MailboxDatabaseCopyStatus -Server $server foreach ($stat in $stats) { $dba = $stat.databasename $clen = $stat.CopyQueueLength $rlen = $stat.ReplayQueueLength $line = "$dat,$tim,$dba,$clen,$rlen" Write-Host $line Write-Host $i Add-Content -Value $line -Path $Outfile } # End foreach $i = $i + 1 Start-Sleep -Seconds 60 } # End of Do While ($i -le 1439)