Set Exchange Calendar Permissions for your boss globally

 

 

This guy: Jan Egil Ring, made an excellent script on how to set Calendar permissions globally in your domain.

Reference: http://www.kevincallanan.com/?p=59

This could be handy when a Director or Manager wants total control over everybody's calendar.

I've altered the script a bit to get it to work with Exchange 2013 when no permissions have ever been set.

For that matter your can use set or add as described.

Adjusted script:

-------------------------------------------------------------------------------

<#

 NAME: Set-CalendarPermissions.ps1

 AUTHOR: Jan Egil Ring  EMAIL: Dit e-mailadres wordt beveiligd tegen spambots. JavaScript dient ingeschakeld te zijn om het te bekijken.

 COMMENT: Script to set calendar-permission for mailboxes in Exchange Server 2010.           For a list of valid AccessRights, see http://technet.microsoft.com/en-us/library/ff522363.aspx           More information: http://blog.powershell.no/2010/09/20/managing-calendar-permissions-in-exchange-server-2010

 You have a royalty-free right to use, modify, reproduce, and  distribute this script file in any way you find useful, provided that  you agree that the creator, owner above has no warranty, obligations,  or liability for such use.

 VERSION HISTORY:  1.0 19.09.2010 - Initial release

#>

#requires -version 2

#Load Exchange Server 2010 Management Shell if not loaded. You may delete/comment out this step if you are running the script from the Exchange Management Shell

if (-not (Get-PSSnapin | Where-Object {$_.Name -like "Microsoft.Exchange.Management.PowerShell.E2010"})){ Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 }

#Custom variables

$mailboxes = Get-Mailbox -Database "DatabaseExchange" $AccessRights = "Editor"

#Loop through all mailboxes

foreach ($mailbox in $mailboxes) {

#Retrieve name of the user`s calendar

$calendar = (($mailbox.SamAccountName)+ ":\" + (Get-MailboxFolderStatistics -Identity $mailbox.SamAccountName -FolderScope Calendar | Select-Object -First 1).Name)

#Check if calendar-permission for user "Default" is set to the default permission of "AvailabilityOnly"    

if (((Get-MailboxFolderPermission $calendar  | Where-Object {$_.User -like "Default"}).AccessRights) -like "AvailabilityOnly" ) {

    Write-Host "Updating calendar permission for $mailbox..." -ForegroundColor Yellow

    #Set or Add calendar-permission for user "Company Director" to value defined in variable $AccessRights    

Add-MailboxFolderPermission -User "username" -AccessRights $AccessRights -Identity $calendar    

}

}

 

-------------------------------------------------------------------------------