Blog Post

Exchange Team Blog
3 MIN READ

How to find public folder calendars and their owners?

The_Exchange_Team's avatar
The_Exchange_Team
Platinum Contributor
Feb 16, 2007

With the new DST changes, many customers are asking about how to identify all their public folder calendars and their owners. Fortunately, this is very easy to do using PFDAVAdmin. When you create a folder that holds appointment items, this sets the PR_CONTAINER_CLASS (0x3613001E) property on the folder to IPF.Appointment, and there are several ways to use this property in PFDAVAdmin. There are several ways in which you can go about this that I will cover here.

Before you begin, connect as normal in PFDAVAdmin. Also, go to Tools > Options and make sure logging is enabled.

The first and easiest way to do this is to use Export Properties. Here are the steps:

  • Go to Tools > Export Properties.
  • Leave the scope set to "All Public Folders", and select an output file.
  • In "Properties To Export", check the box for PR_CONTAINER_CLASS. You can uncheck the other stuff that's checked by default, or leave them checked, it doesn't really matter.
  • Click OK and the export will begin.

When this completes you'll have a tab-delimited file containing properties for every folder in the hierarchy. You can open this file in Excel and sort by the PR_CONTAINER_CLASS column to identify all IPF.Appointment folders.

A more complicated way to accomplish this is to use Custom Bulk Operation. With this method, you can choose to only do the folders that meet your criteria, instead of doing every folder in the hierarchy. Use the following steps.

  • Go to Tools > Custom Bulk Operation.
  • Under "Specify the base folder", set it to "Public Folders".
  • In the "Overall Filter" box, enter "(&(0x3613001E=IPF.Appointment))".
  • Click the Add button, choose "Other folder properties", and click OK.
  • Choose "Export", select an export file.
  • In the Property dropdown, choose PR_CONTAINER_CLASS and hit Add.
  • Choose whatever other properties you want to export and add those too. Then click OK.
  • Now you should be back on the Custom Bulk Operation window. Click OK to begin the export.

This will export properties only for calendar folders.

You can also use Tools > Export Permissions to export the permissions for all the folders and see who the owners are. It's not too hard to write a PowerShell script that will go through the property export, identify any IPF.Appointment folders, and then look up the owners in the permissions export. This post includes an example script that will do just that (see below at the attachment at the end of this post). Note that you don't need Exchange 2007 to use this script - just install PowerShell on a workstation somewhere, rename to .ps1 and run.

But there's one other way to go about this. You can use a custom permissions export to only export permissions for any folders that are IPF.Appointment folders. This doesn't export any other properties - only the permissions - but since the export only contains the folders you're concerned with, you don't need the other properties.

Here are the steps:

  • Go to Tools > Custom Bulk Operation.
  • Under "Specify the base folder", set it to "Public Folders".
  • In the "Overall Filter" box, enter "(&(0x3613001E=IPF.Appointment))".
  • Click the Add button, choose "Folder Permissions", and click OK.
  • Choose "Export" and select your export file.
  • Choose either legacyExchangeDN or Account Name format, and click OK.
  • Now you should be back on the Custom Bulk Operation window. Click OK to begin the export.

The resulting file will be a permissions export only for folders where the PR_CONTAINER_CLASS is IPF.Appointment. Then you can just glance through the script to see who the owners of all these folders are. Note that a non-contact owner will just be "Owner", whereas an owner who is also a folder contact will be "All".

Hope this helps!

- Bill Long

Published Feb 16, 2007
Version 1.0

36 Comments

  • Jeremy, there's no other supported tool I'm aware of.

    John, if you don't place the script somewhere in the path, you'll need to change in the folder where the script is and precede the script name with .. You may also need to change your execution policy. I just copied it to my desktop on my home machine and here's what this looks like for me:

    PS C:Usersbill> cd desktop
    PS C:UsersbillDesktop> .Get-PFOwnersForCalendars
    File C:UsersbillDesktopGet-PFOwnersForCalendars.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details.
    At line:1 char:26
    + .Get-PFOwnersForCalendars <<<<
    PS C:usersbillDesktop> set-executionpolicy unrestricted
    PS C:usersbillDesktop> .Get-PFOwnersForCalendars

    At that point it should allow you to run it. Don't forget to change the extension to .ps1.
  • Powershell script fails with "not recognized as cmdlet ......
  • Any other ways of granting a user Full Mailbox Access and Send As rights to all mailboxes besides the VB script provided by Microsoft and then later retract those rights?
  • I think that when you run the Outlook Update Tool against a public folder, you only need to be an owner of the folder to update appointments, regardless of who the organizer is.  After testing this, it seemed to be the case.  I also discovered that if you have appointments in a public folder that contain attendees, the Outlook Update Tool will not recognize these appointments.  Other than that, the appointments should update just fine.
  • Let me preface this by saying that I'm the PFDAVAdmin expert, but I'm not the DST expert. That said...

    My current understanding is that the owner of the folder must run the tool against the folders they own. However, the tool will only update appointments for which that user is the organizer. That means if you have a folder where a bunch of different people can create appointments, each of those users would have to run the tool, and they won't all necessarily be owners... they could have other roles. So depending on your situation, just knowing the owner might not be enough.

    The easiest way to approach this is probably to have the owner of each folder responsible for running the tool and manually updating any items that the tool won't affect. Or possibly have the owner identify any users that created appointments during the new DST range and have those users all run it against the folder.

    So that's my understanding of the current approach to this. Hopefully someone will correct me if I'm way off here.  :-)
  • When it comes to updating the PF calendar with DST patches, (after finding the owner) what would be an appropriate path considering the way the MSEXTMZ tools work?