SOLVED

Calendar Sharing Auditing Report

Copper Contributor

Hi all,

Is there a report where you can find a list of all the users who have shared their calendars externally? Assuming using the default Individual Sharing policy in EXO that allows anonymous share of 'All calendar appointment information, including time, subject, location and title'. 

 

EXO_Sharing_Policy.JPG

 

the only logs I could find in Audit log search was for the policy installation, but not sure how to get the details of the calendar sharing activity per user. Is there a way to pull such list/report from Powershell if it's not available currently in the portal? 

EXO_Sharing_audit_log.JPG

 

Appreciate any help /insights. 

Thanks!

Abeer

9 Replies
best response confirmed by abeerq (Copper Contributor)
Solution

Each "share" is stamped on the permissions on the Calendar folder, so you can just enumerate those. I have a sample script that does just that here: https://gallery.technet.microsoft.com/Office-365-Calendar-29ef6211?redir=0

 

Once you have the CSV file, you can filter it by External.

@Vasil Michev I just tried it in my test environment and it worked perfectly. There's no report with the same exact info that I can generate from the portal? 

 

Thank you very much, i appreciate your quick help!

 

No, no built-in reports for that. Otherwise I wouldn't bother to create a script :D

Hi Vasil, do you still have this script posted somewhere? the link doesn't appear to work.

 

Thanks

@Vasil Michev @pb1973 The link for the script is not live anymore. Can you please share the script another way?

@SanjayVishram to help anyone else that gets here, the script has been moved to GitHub

https://github.com/michevnew/PowerShell/blob/master/Calendar_Permissions_inventory.ps1

 

It is in what i assume to be @Vasil Michev own github library.

 

I had to use WayBackMachine on that original link to find the script name, and from there I found it in GitHub

Anybody knows if this still should work, also in Exchange Online?

 

Just tested the publishing and it was working fine to my phone.

But  when I tried to understand the script I'm getting empty results from the line 81.

 

Basically if I run the command:

PS C:\> Get-MailboxFolderPermission -Identity email address removed for privacy reasons:\calendar

FolderName    User         AccessRights           SharingPermissionFlags
----------    ----         ------------           ----------------------
Calendar      Default      {AvailabilityOnly}
Calendar      Anonymous    {None}

 

If the anonymous have access rights set to "none", why the publishing is still working?

 

 

 

@Petri X 

I can't get it to work with Exchange online either - connected to Exchange Online using 'connect-exchangeonline' and after authenticating, run the script.  It seems the script is looking for the connection to Exchange Online using the older method of a pssession?  So it doesn't proceed because it can't retrieve info on the Pssession...

PS C:\scripts> .\get-Calendar_Permissions_inventory.ps1
Write-Error: C:\scripts\get-Calendar_Permissions_inventory.ps1:147
Line |
147 | Get-CalendarPermissionInventory @PSBoundParameters -OutVariable globa …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| No active Exchange Online session detected, please connect to ExO first:
| https://technet.microsoft.com/en-us/library/jj984289(v=exchg.160).aspx
PS C:\scripts>

Hi,

First off - thanks for sharing your creations with us.

I can't get it to work with Exchange online - connected to Exchange Online using 'connect-exchangeonline' and after authenticating, run the script. It seems the script is looking for the connection to Exchange Online using the older method of a pssession with specific variables? So it doesn't proceed because it can't retrieve info on the Pssession...

PS C:\scripts> .\get-Calendar_Permissions_inventory.ps1
Write-Error: C:\scripts\get-Calendar_Permissions_inventory.ps1:147
Line |
147 | Get-CalendarPermissionInventory @PSBoundParameters -OutVariable globa …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| No active Exchange Online session detected, please connect to ExO first:
| https://technet.microsoft.com/en-us/library/jj984289(v=exchg.160).aspx
PS C:\scripts>
1 best response

Accepted Solutions
best response confirmed by abeerq (Copper Contributor)
Solution

Each "share" is stamped on the permissions on the Calendar folder, so you can just enumerate those. I have a sample script that does just that here: https://gallery.technet.microsoft.com/Office-365-Calendar-29ef6211?redir=0

 

Once you have the CSV file, you can filter it by External.

View solution in original post