Export-CalCon-Exchange.ps1


<#PSScriptInfo
 
.VERSION 0.2
 
.GUID 6de48057-fd1d-4c58-9039-205de13b3f02
 
.AUTHOR wayne@ramblinggeek.co.uk
 
.COMPANYNAME
 
.COPYRIGHT
 
.TAGS
 
.LICENSEURI
 
.PROJECTURI https://github.com/RamblingGeekUK/Export-CalCon-Exchange
 
.ICONURI
 
.EXTERNALMODULEDEPENDENCIES
 
.REQUIREDSCRIPTS
 
.EXTERNALSCRIPTDEPENDENCIES
 
.RELEASENOTES
 
 
#>


<#
 
.DESCRIPTION
 A script to loop through Exchange Mailboxes and export Contacts and Calendars
 
#>
 

param([string]$SMTPDomain="", [string]$FilePath="", [int]$Max=50) 

#
# Requires User is a member of the ImportExport Role
# New-ManagementRoleAssignment –Role "Mailbox Import Export" –User "user name"

$limit = 0 # reset limit on first run
$mailboxes = Get-Mailbox | Where-Object {$_.EmailAddresses -like "*"+$SMTPDomain} | Select-Object Alias

foreach ($mailbox in $mailboxes)
{

    if ($limit -ne $Max)
    {
        
        $Filename = $FilePath + "\" + $mailbox.Alias + ".pst"
        New-MailboxExportRequest -Mailbox $mailbox.alias -IncludeFolders "#Calendar#","#Contacts#" -FilePath $Filename
    }
    else
    {
        break
    }
    # increase count
    $limit++
}