Exchange 2010 Public Folder Replication Report

This script will generate a report of the Exchange 2010 Public Folder Environment and Replication status. It returns the replication status of each folder as well as general information, such as total size and count of Public Folders, Top 10 Largest Folders and more.

 
 
 
 
 
4.9 Star
(13)
21,519 times
Add to favorites
Exchange
5/31/2013
E-mail Twitter del.icio.us Digg Facebook
Sign in to ask a question


  • Script output is not correct
    1 Posts | Last post August 11, 2016
    • Line 169 of this script rounds the result. This means if you have 995 of 1000 items, it reports 100% and flags replication as being complete, when it actually isn't. Line 169 should use Floor, not Round:
      
                  $progress = ([Math]::Floor($dataRecord.ItemCount / $maxItems * 100))
      
      Otherwise the script will tell you replication completed when it actually didn't.
  • Issues with script when folders in UTF8/calendar
    2 Posts | Last post October 17, 2015
    • Why in this script is below line ?
      
      $pfOnServer.FolderPath 
      
      
      
      Is below line is correct ?
      
      $pfOnServer = $pfOnServer | Where-Object { $FolderPath -icontains "\$($_.FolderPath)" }
      
      
      
      I got all data from $FolderPath  in $pfOnServer when i use switch -recurse.
      
      After where-object i got only half of it. 
      
      
      
      (.\PublicFolders.ps1 -computername xxx -FolderPath "\xxx\xxx Public" -recurse).count = 144
      
      
      
      (Get-PublicFolder "\xxx\xxx public" -recurse -server xxx| Get-Public
      
      FolderStatistics).count = 202
      
    • Ok i changed
      Get-PublicFolder $f -Recurse | ForEach-Object { if ($newFolderPath -inotcontains $_.Identity) { $newFolderPath += $_.Identity } }
      to
      Get-PublicFolder $f -Recurse | ForEach-Object { if ($newFolderPath -inotcontains $_.EntryId) { $newFolderPath += $_.EntryId } }
      
      and
      $pfOnServer = $pfOnServer | Where-Object { $FolderPath -icontains "\$($_.FolderPath)" }
      to
      $pfOnServer = $pfOnServer | Where-Object { $FolderPath -match  $_.EntryId }
      
      The issue was related to return different data from get-public and get-publicstatistics , For example időbeosztása and idobeosztása
  • Thanks
    1 Posts | Last post May 28, 2015
    • Not a Q. But still thanks for sharing, as this script helps during PF migrations.
  • Multi CPU Threading Script
    2 Posts | Last post May 28, 2015
    • Hi, thanks a lot for this powershell script, can it be modified so we can run it using multi CPU threading? that will make it fast in results.
    • Have you taken a look at the following post regarding PowerShell Threading?
      http://blog.isaacblum.com/2010/01/22/powershell-multithreading-omg/ 
  • Thank you
    4 Posts | Last post December 10, 2014
    • This is an excellent script which saved us many hours. Still it's unlcear why Microsoft does not include such an option directly into the GUI or at least within the Scripts folder under 2010 Sp3.
      
      Thank you. 
    • Nice post. It's really helpful.
    • Very nice script.  Very Helpful.
    • A really awesome script. Congrats.
  • Adjusting for more than 10K of PFs
    1 Posts | Last post December 02, 2014
    • Great script, with also a great output.
      I only see there is an issue when there are more than 10.000 PF's on a server. This is the default limit of the Get-PublicFolder cmdlet. Replace "Get-PublicFolder $f -Recurse" with "Get-PublicFolder $f -Recurse -ResultSize Unlimited" and you are good to go :)