locked
Command to get mailbox calendar permissions RRS feed

  • Question

  • I'm looking for a powershell command or Exchange shell command to get all the users who have permissions to a users calendar and what permissions those users have ie reviwer or editor etc.... This is for Exchange 2010 mailboxes.

    Also is there a command that can give me all the delegates that have been set for a user's mailbox and the associated permissions?

    Wednesday, January 2, 2013 10:30 PM

Answers

  • Hi,

    You can use Get-mailboxfolderpermission cmdlet to check who has permission on a mailbox calendar and what permission.

    Get-MailboxFolderPermission -Identity john@contoso.com:\calendar |fl

    Get-MailboxFolderPermission:
    http://technet.microsoft.com/en-us/library/dd335061(v=exchg.141).aspx
    And use Get-MailboxPermission to check delegate permission.
    Get-MailboxPermission:
    http://technet.microsoft.com/en-us/library/aa998218.aspx

    Wendy Liu
    TechNet Community Support

    • Proposed as answer by lavinia_ding Friday, January 4, 2013 2:01 AM
    • Marked as answer by wendy_liu Tuesday, January 15, 2013 1:50 AM
    Thursday, January 3, 2013 8:08 AM
  • this worked well for the calendar permissions but not so much for delegates. But since most people are delegating their calendar anyways as opposed to tasks etc....I think by using the  Get-MailboxFolderPermission I can get most of what I need. Thanks
    • Marked as answer by wendy_liu Tuesday, January 15, 2013 1:49 AM
    Thursday, January 3, 2013 10:30 PM

All replies

  • Hi,

    You can use Get-mailboxfolderpermission cmdlet to check who has permission on a mailbox calendar and what permission.

    Get-MailboxFolderPermission -Identity john@contoso.com:\calendar |fl

    Get-MailboxFolderPermission:
    http://technet.microsoft.com/en-us/library/dd335061(v=exchg.141).aspx
    And use Get-MailboxPermission to check delegate permission.
    Get-MailboxPermission:
    http://technet.microsoft.com/en-us/library/aa998218.aspx

    Wendy Liu
    TechNet Community Support

    • Proposed as answer by lavinia_ding Friday, January 4, 2013 2:01 AM
    • Marked as answer by wendy_liu Tuesday, January 15, 2013 1:50 AM
    Thursday, January 3, 2013 8:08 AM
  • Get-MailboxFolderPermission -Identity User:\Calendar

    For getting more info try:

    Get-MailboxFolderPermission -Identity User:\Calendar | fl

    For more info: http://technet.microsoft.com/en-us/library/dd298062(EXCHG.140).aspx

    Additionally, you may also use a script that is available on the technet gallery: 

    Exchange 2010 Calendar Permission Viewer - http://gallery.technet.microsoft.com/scriptcenter/Exchange-2010-Calendar-21695fde

    And for your second question about findig users who have delegates i am not sure if there is any exchange cmdlet but i am pretty much sure that using EWS and LDIFDE & CSVDE we can get the list of delagates.

     LDIFDE and CSVDE for a user using the "public delegate" fields:

    • PublicDelegates "What mailbox(es) did I give delegate rights to"
    • PublicDelegatesBL: "What mailbox(es) am I a delegate of"

    LDIFDE.EXE -F delegateLDIFDE.TXT -D "OU=TestUsers,DC=myDC,DC=mydomain,DC=com" -L "name,mail,PublicDelegatesBL" -R "(&mail=DelegatedUser@mydomain.com)(PublicDelegatesBL=*))" csvde -f delegateCSVDE.csv -s myDC -l "name,mail,PublicDelegatesBL" -r "(&mail=DelegatedUser@mydomain.com)(PublicDelegatesBL=*))"

    May be for your second question you may expect an answer from other Experts on this Forum.


    M.P.K ~ ( Exchange | 2003/2007/2010/E15(2013)) ~~ Please remember to click “Vote As Helpful" if it really helps and "Mark as Answer” if it answers your question, “Unmark as Answer” if a marked post does not actually answer your question. ~~ This Information is provided is "AS IS" and confers NO Rights!!


    • Edited by PK M Thursday, January 3, 2013 9:33 AM
    • Proposed as answer by lavinia_ding Friday, January 4, 2013 2:01 AM
    Thursday, January 3, 2013 9:05 AM
  • if you want to get who have permissions to a users calendar, you can use it

    http://www.howexchangeworks.com/2010/08/checking-exchange-2010-mailbox-calendar.html 

    Get-MailboxFolderPermission -identity “Rajith Enchiparambil:\Calendar”

    Thursday, January 3, 2013 9:14 AM
  • Also is there a command that can give me all the delegates that have been set for a user's mailbox and the associated permissions?

    This command will do that:

    Get-MailboxPermission <Identity> | ? {$_.IsInherited -ne "true" -and $_.User -ne "NT AUTHORITY\SELF"}

    Cheers, Steve

    • Proposed as answer by Atamidos Wednesday, November 12, 2014 8:29 PM
    Thursday, January 3, 2013 9:22 AM
  • this worked well for the calendar permissions but not so much for delegates. But since most people are delegating their calendar anyways as opposed to tasks etc....I think by using the  Get-MailboxFolderPermission I can get most of what I need. Thanks
    • Marked as answer by wendy_liu Tuesday, January 15, 2013 1:49 AM
    Thursday, January 3, 2013 10:30 PM
  • Dutch admins should use Agenda option to review and set permissions, like:

    Get-MailboxFolderPermission -Identity USERID:\Agenda | fl

    Cheers

    Tuesday, September 17, 2013 2:19 PM
  • And, for some reason, in Office 365 (on Exchange 2013), it is "Kalender" instead of "Agenda"!
    Monday, October 14, 2013 1:45 PM
  • The Calendar Folder is down to the language setting of the mailbox. You can identify it automatically like this

    $col = @()
    $mbxs = get-mailbox -OrganizationalUnit ("ou=your,ou=string") -ResultSize Unlimited
    foreach ($mbx in $mbxs) {
    $calendarName = Get-MailboxFolderStatistics $mbx.primarysmtpaddress | where-object { $_.FolderType -eq "Calendar" } | select-Object Name
    $mailboxCalPermissions = get-MailboxFolderPermission ("{0}`:\{1}" -f ($mbx.primarysmtpaddress).toString(),$calendarName.Name)|select-object @{Name="PrimaryMailBox";Expression={$mbx.primarysmtpaddress}}, FolderName,User,AccessRights|where-object { $_.AccessRights -ne {None}}
    $col += $mailboxCalPermissions
    }
    $col


    Keif Gwinn

    Tuesday, October 6, 2015 3:01 PM
  • Thank You so much

    It help me to understand why my command didn't work.

    In french you need to replace it by "calendrier"

    Thursday, January 16, 2020 6:57 PM