Microsoft Exchange Scripting Agent Kalender
Below an example of my Exchange Scripting Agent.
With this configuration you can set various parameters after mailbox creation. I´ve tested various examples but this works great for me with an Microsoft Exchange Server 2016.
Step 1: Exchange Scripting Agent enabling –> Open Exchange Management Shell:
Enable-CmdletExtensionAgent "Scripting Agent"
Step 2: Create Exchange Scripting Configuration
On exchange program directory \Bin\CmdletExtensionAgents create a file named ScriptingAgentConfig.xml
Example: C:\Program Files\Microsoft\Exchange Server\V??\Bin\CmdletExtensionAgents\ScriptingAgentConfig.xml
Step 3: Configure/Create Config File (below mine with german description)
<?xml version="1.0" encoding="utf-8" ?><Configuration version="1.0"><Feature Name="MailboxProvisioning" Cmdlets="New-Mailbox,Enable-Mailbox"><ApiCall Name="OnComplete">If($succeeded){##################################################### Version 2.0 by Wilhelm Holzgruber 06.02.2020 ###################################################### Pause sodass Mailbox erstellt werden kann und im AD repliziert wirdstart-sleep -s 10#### Wir waehlen den ganzen AD Forest ausSet-ADServerSettings -ViewEntireForest $true#### Es wird der Alias der erstellten Mailbox fuer die weitere Verarbeitung ausgewaehlt. Alternative waere auch Name oder Distinguished Name - funktioniert aber schlecht$Mailbox = $provisioningHandler.UserSpecifiedParameters["Alias"]#### Wir setzen folgende Parameter: Sprache, Datumsformat, Uhrzeit und Foldername = Language - WICHTIG! Sprache muss vorher gesetzt sein um danach auf :\Kalender (nicht Calendar) zugreifen zu koennenSet-MailboxRegionalConfiguration -Identity $Mailbox -Language "de-DE" -DateFormat "dd.MM.yyyy" -TimeFormat HH:mm -LocalizeDefaultFolderName#### Wir setzen die zusätzlichen Kalenderberechtigungen - WICHTIG ohne vorige Sprachsetzung gibt es weder Kalender noch CalendarAdd-MailboxFolderPermission -Identity $Mailbox$(':\Kalender') -User "John Smith" -AccessRights ReviewerAdd-MailboxFolderPermission -Identity $Mailbox$(':\Kalender') -User "EDIT-HumanResources" -AccessRights Editor#### POP3, IMAP und ActiveSync wird deaktiviertSet-CASMailbox $Mailbox -ImapEnabled $false -POPEnabled $false -ActiveSyncEnabled $false#### Bei allen Gruppenpostfächern werden die Audit Settings gesetztforeach ($Mailbox in (Get-Mailbox -ResultSize Unlimited -Database Gruppe)) {Set-Mailbox -Identity "$($Mailbox.Name)" -AuditEnabled $true -AuditDelegate Update,Move,MoveToDeletedItems,SoftDelete,HardDelete,FolderBind,SendAs,SendOnBehalf,Create -AuditOwner Update,Move,MoveToDeletedItems,SoftDelete,HardDelete,Create -ErrorAction SilentlyContinue}}</ApiCall></Feature></Configuration>