Tips & Tricks

Category Archives

Moving an existing AgendaX installation to Office 365

Many of our customers are migrating their existing Exchange infrastructure to the cloud. Microsoft Office 365 is the most commonly used option.

But what needs to be done to an existing AgendaX installation that is configured to access the on-premise Exchange servers?

This largely depends on if you make the transition to Office 365 in one step (batch) or in several steps over the course of weeks / months. If the transition is done in one batch, you will only need to reconfigure your existing installation. If you have many mailboxes to migrate and this will take a while, we suggest to setup a second instance of AgendaX on the same server. This will allow for a smooth transition and will at any time show all user calendars (both on-premise and migrated mailboxes) in the AgendaX views.

Migration in one batch

You will need to uninstall MAPI/CDO (Exchange Server MAPI), if installed, and install an Outlook 32bit client (Outlook 2016 or later) on the AgendaX server. Also, the AgendaX mailbox needs to be migrated to Office 365 first, before you start migrating user mailboxes.

Also, make sure that a modern browser is installed on the AgendaX server, as this is needed to create an Outlook profile that connects to an Office 365 mailbox.

Then,

  • Log in on the AgendaX Server with the AgendaX user. This is VERY important because Outlook profiles are user specific.
  • Run Regedit and make sure that there is no value called MapiHttpDisabled under HKEY_CURRENT_USER\Software\Microsoft\Exchange or that its value is set to 0.
  • Add the following keys to the registry under HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\Identity
    EnableADAL (DWORD) 1
    DisableAADWAM (DWORD) 1
    DisableADALatopWAMOverride (DWORD) 1

    and under HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Cached Mode add a
    value called AllowAutoDiscoverForNonOutlook and set its value to DWORD 1.

  • Outlook 2016:
    • Make sure that KB3115279 for Office 2016 32bit (https://www.microsoft.com/en-us/download/details.aspx?id=53200)
      is installed.
    • Add the following parameter to AgentX.ini:
      [Config]
      ForceIExchangeManageStoreEx=1
  • Outlook 2019 / Office 365:
    • Add the following parameter to AgentX.ini:
      [Config]
      ForceIExchangeManageStoreEx=1
  • Then, create the Outlook profile and make sure that Exchange Cache mode is disabled in the Outlook profile. Enter the Outlook profile name (either in AgendaX Setup if you are setting up a new instance of AgendaX or in AgendaXCfg.exe if AgendaX is already installed under MSX Version / Outlook MAPI Client / Outlook Profile Name). The Standard- Name for the first Outlook- Profile that is configured is ‘Outlook’.
  • Start Outlook with that profile and make sure that the profile works. When you are prompted for a password, make sure to check the ‘Remember password’ checkbox.
  • Finally, close Outlook and restart the AgendaX Update Service

The permissions on Office 365 have to be set a bit differently than in an On Site Exchange environment. On Office 365, you will have to set permissions on folder level:

Please give the AgendaX user Reviewer rights on the top of the mailbox, and Editor rights on the Calendar folders.

The following Powershell script will do this for you. Replace “agendax” on the 4th and 5th line in the following script with the name of your O365 AgendaX account:

Connect-ExchangeOnline
foreach ($Mailbox in (Get-EXOMailbox -OrganizationalUnit abc -ResultSize Unlimited))
{
Add-MailboxFolderPermission -identity "$($Mailbox.Name)" -AccessRights Reviewer -User agendax
Add-MailboxFolderPermission -identity "$($Mailbox.Name):\Calendar" -AccessRights Editor -User agendax
}
Disconnect-ExchangeOnline

"-OrganizationalUnit abc" limits the users to a specific OU (here "abc"). This can be omitted if you would like
to grant the permissions on every account in your organization.

If, instead, you would like to limit the users to users that have a specific SMTP- address, you can use the
following script:

Connect-ExchangeOnline
foreach ($Mailbox in (Get-Mailbox -ResultSize Unlimited | where-Object {($_.PrimarySMTPAddress -like "*@agendax.net")}))
{
Add-MailboxFolderPermission -identity "$($Mailbox.Name)" -AccessRights Reviewer -User agendax
Add-MailboxFolderPermission -identity "$($Mailbox.Name):\Calendar" -AccessRights Editor -User agendax
}
Disconnect-ExchangeOnline

Or, if you would like to limit the users to members of a specific distribution list, you can use the following:

Connect-ExchangeOnline
foreach ($Mailbox in (Get-DistributionGroupMember -Identity "NameOfDistributionList" -ResultSize Unlimited))
{
Add-MailboxFolderPermission -identity "$($Mailbox.Name)" -AccessRights Reviewer -User agendax
Add-MailboxFolderPermission -identity "$($Mailbox.Name):\Calendar" -AccessRights Editor -User agendax
}
Disconnect-ExchangeOnline

Please see also the following document: AgendaX Installation Guide V6.1

Migration over the course of several weeks / months

If the move to Office 365 takes some time and you migrate mailboxes with several batches, we suggest to install a second instance of AgendaX during the transition.

The first (existing) instance will read on-premise mailboxes and the second (new) instance will read migrated (O365) mailboxes.

During the transition, you will still see all calendars of both on-premise and migrated mailboxes in the AgendaX web application.

Installing a second AgendaX Setup on the AgendaX server to access the O365 mailboxes

  • Create a new AgendaX user on Office 365 (including mailbox)
  • Copy the AgendaX installation folder to a second location, e.g. AgendaXO365
  • Install the second service with the Multi service configuration tool AgendaX multi service configuration utility. The service account you enter will be the account used to run the AgendaX Update Service. This should ideally be the new AgendaX user on Office 365. If this is not possible, select a local user with Administrative privileges on the AgendaX Server.
  • Install Outlook 2016 (or later) 32bit on the AgendaX Server, if not already present
  • Make sure that a modern browser is installed on the AgendaX server, as this is needed to create an Outlook profile that connects to an Office 365 mailbox.
  • Log on with the new AgendaX user (or the local user you specified while installing the second service) to the AgendaX server
  • Set the appropriate registry keys for the Outlook version used and AgentX.ini settings (page 6 in the Installation Guide: AgendaX Installation Guide) or see above (Migration in one batch)
  • Create an Outlook profile with this user, accessing its mailbox on O365, and disable Exchange Cache Mode in the Outlook profile. If you are prompted for a username / password, check the ‘Remember Password’ option before entering the credentials. Note the name of the Outlook profile you created (default: Outlook)
  • Run the AgendaX Configuration in the AgendaX O365 installation (AgendaXCfg.exe), click MSX Version, select Office 365 and enter the name of the Outlook profile you created, logged-in with the O365 AgendaX user (or the local user).
  • Set the Mailbox folder permissions for the users already migrated to O365 with the following Powershell script. Replace “agendax” on the 4th and 5th line in the following script with the name of your O365 AgendaX account:
    Connect-ExchangeOnline
    foreach ($Mailbox in (Get-EXOMailbox -OrganizationalUnit abc -ResultSize Unlimited))
    {
    Add-MailboxFolderPermission -identity "$($Mailbox.Name)" -AccessRights Reviewer -User agendax
    Add-MailboxFolderPermission -identity "$($Mailbox.Name):\Calendar" -AccessRights Editor -User agendax
    }
    Disconnect-ExchangeOnline
    
    "-OrganizationalUnit abc" limits the users to a specific OU (here "abc"). This can be omitted if you would like
    to grant the permissions on every account in your organization.
    
    If, instead, you would like to limit the users to users that have a specific SMTP- address, you can use the
    following script:
    
    Connect-ExchangeOnline
    foreach ($Mailbox in (Get-Mailbox -ResultSize Unlimited | where-Object {($_.PrimarySMTPAddress -like "*@agendax.net")}))
    {
    Add-MailboxFolderPermission -identity "$($Mailbox.Name)" -AccessRights Reviewer -User agendax
    Add-MailboxFolderPermission -identity "$($Mailbox.Name):\Calendar" -AccessRights Editor -User agendax
    }
    Disconnect-ExchangeOnline
    
    Or, if you would like to limit the users to members of a specific distribution list, you can use the following:
    
    Connect-ExchangeOnline
    foreach ($Mailbox in (Get-DistributionGroupMember -Identity "NameOfDistributionList" -ResultSize Unlimited))
    {
    Add-MailboxFolderPermission -identity "$($Mailbox.Name)" -AccessRights Reviewer -User agendax
    Add-MailboxFolderPermission -identity "$($Mailbox.Name):\Calendar" -AccessRights Editor -User agendax
    }
    Disconnect-ExchangeOnline
  • Stop the AgendaX Update service of the old AgendaX installation
  • Run the AgendaX Configuration of both the old and the new installation (AgendaXCfg.exe) and tick the “Multiple services write to this database” option and drop the database tables (only once) under Config / Drop tables.
  • Click “Update” in both AgendaX Configuations and “Yes” to restart the Services
  • Check the Windows Application Eventlog for possible warnings / errors. Each of the services will add warnings to the Application Event log for the mailboxes that are not on their system. This is normal. The on-premise Setup will create warnings for the O365 mailboxes and the O365 Setup will create warnings for the on-premise mailboxes. If you get warnings on the O365 installation about mailboxes that cannot be found in the global address book and these mailboxes have already been migrated to O365, you will have to re-select them from the address book in the AgendaX group definitions (AgendaXCfg.exe / Groups).
  • After both AgendaX Update Services have finished scanning through the mailboxes, you will see both on-premise and O365 mailbox calendars in the AgendaX web application.
  • While you are moving users from the on-premise Exchange servers to O365, you will need to re-run the above Powershell script to set permissions on the newly moved mailboxes.

Removing the old AgendaX Setup after all mailboxes are moved to O365

When all mailboxes are moved to O365, you can uninstall the old AgendaX setup by following the below steps. As the web-application of AgendaX is still running under your old AgendaX setup, you will first need to move this to the location of the new (O365) installation:

  • Run Internet Information Services (IIS) Manager, navigate to Sites / Default Web Site / AgendaX, click “Basic settings” and change the location of the “Physical path” to the folder of your new AgendaX O365 installation.

If you have made any configuration changes on the AgendaX Administration page (in the AgendaX web application) since you installed the O365 installation of AgendaX, or if you have made changes to the collapsible group menu in the multmenu.txt file, copy config.inc and multmenu.txt (both are located in the AGENDA subfolder of your AgendaX installation folder) from the old Setup to the O365 setup.

To uninstall the old AgendaX Setup, follow the steps below:

  • Stop the AgendaX Update Service of the old installation
  • Close any instances of MMC (Microsoft Management Console), e.g. Services, Event Viewer
  • Open a command prompt and change to the AgendaX installation folder of your old AgendaX installation, e.g. CD C:\Inetpub\AgendaX
  • Enter the following command:
    AgendaXSrv.exe -u (this will uninstall the AgendaX Update Service)
  • Delete the old AgendaX installation folder

The final step is to tell the AgendaX Update service that no longer other services are using the same database. Run the AgendaX Configuration (AgendaXCfg.exe) in your new O365 setup folder and untick the “Multiple services write to this database” option and drop the database tables under Config / Drop tables, then click “Update” and “Yes” to restart the service.


Language independent permission settings for AgendaX on Exchange Server 2013, 2016, 2019, Office 365

Permissions that need to be set for the AgendaX account on Exchange Server 2013, 2016, 2019, and Office 365 are Outlook folder level permissions.
Since folder names in Outlook differ depending on the language used when the mailbox is first opened with Outlook, you'd have to know which employee uses which language to assign permissions to the correct folders. In addition to that, you'd have to know what the folders are called in these languages.

If you have mailboxes in multiple languages in your company, you can easily set the required permissions for the AgendaX account using the following script, which works for all languages.

Please make sure you replace "agendax" on the 3rd line with the name of your AgendaX account:

Connect-ExchangeOnline
foreach ($Mailbox in (Get-EXOMailbox -OrganizationalUnit abc -ResultSize Unlimited))
{
Add-MailboxFolderPermission -identity "$($Mailbox.Name)" -AccessRights Reviewer -User agendax
Add-MailboxFolderPermission -identity "$($Mailbox.Name):\Calendar" -AccessRights Editor -User agendax
}
Disconnect-ExchangeOnline

"-OrganizationalUnit abc" limits the users to a specific OU (here "abc"). This can be omitted if you would like
to grant the permissions on every account in your organization.

If, instead, you would like to limit the users to users that have a specific SMTP- address, you can use the
following script:

Connect-ExchangeOnline
foreach ($Mailbox in (Get-Mailbox -ResultSize Unlimited | where-Object {($_.PrimarySMTPAddress -like "*@agendax.net")}))
{
Add-MailboxFolderPermission -identity "$($Mailbox.Name)" -AccessRights Reviewer -User agendax
Add-MailboxFolderPermission -identity "$($Mailbox.Name):\Calendar" -AccessRights Editor -User agendax
}
Disconnect-ExchangeOnline

Or, if you would like to limit the users to members of a specific distribution list, you can use the following:

Connect-ExchangeOnline
foreach ($Mailbox in (Get-DistributionGroupMember -Identity "NameOfDistributionList" -ResultSize Unlimited))
{
Add-MailboxFolderPermission -identity "$($Mailbox.Name)" -AccessRights Reviewer -User agendax
Add-MailboxFolderPermission -identity "$($Mailbox.Name):\Calendar" -AccessRights Editor -User agendax
}
Disconnect-ExchangeOnline

Just copy and paste the above script into Powershell. It will assign Reviewer rights on the top of the mailbox and Inbox, as well as Editor rights on the Calendar folder.

If you don't want to assign these rights on every mailbox in your organization, but would rather limit this to an organizational unit for example, you can modify the Get-Mailbox statement on the 1st line by adding -OrganizationalUnit with the name of the organizational unit you wish to assign permissions in.


agenda x produktinformationen gruppenkalender teamwork

AgendaX group definition

You can configure an unlimited number of individual groups that consist of Exchange distribution lists and individual users. The members of these groups are the users whose calendars will be displayed by the AgendaX web application. Users that are not part of any group will not be scanned and therefore will not be available in the AgendaX views. The groups you define in the AgendaX Configuration are Administrator defined groups and will be available to all AgendaX users. If you do not want to make all Administrator defined groups available to all users, you can enable the “Group membership required to view group” feature to only display groups that the currently logged-in AgendaX user is a member of.

You can also setup different installations of AgendaX to separate groups of users, if they are not allowed to see each other’s data. Separate installations can be secured with NTFS or virtual directory permissions.

Each AgendaX user also has the possibility to define up to 9 personal groups that are only available to him / her. Personal groups are defined in the AgendaX web interface.


Contributions related to the subject

Would you like to write a guest post?
Please contact us.