Blog Categories


Archive for the ‘Exchange Server’ Category

Creating Microsoft FIM Management Agent: lessons learned

extensibilityMicrosoft FIM (Frontend Identity Manager) is a popular enterprise product which is allowing to automate user creation, provisioning and de-provisioning in Microsoft Active Directory. FIM has many out-of-the-box extension connectors which allows for connecting FIM to external systems (like external user catalogs), including a set of web services. When out-of-the-box connectors are not sufficient, it’s possible to implement a custom Management Agent (MA) for FIM using .NET framework.

I recently helped to connect FIM to external system which had MySQL user database. There is no out-of-the-box FIM connector for MySQL, we had to implement our own custom management agent. While working on this task I found out that the process of creating FIM MAs is very scarcely documented. This reference and that example is pretty my the only source of information about creating Extensible Connectivity Management Agents (ECMA). The problem though is that the reference doesn’t provide a complete documentation for creating ECMAs and the code example, while providing a complete code listing for management agent, doesn’t cover all everything. In fact, the code sample represents one specific, quite simple case of ECMA 2.2 agents, and there are a couple of places in this example which require additional explanation.

Read the rest of this post »

Site Mailbox – A New Way to Collaborate

What’s a Site Mailbox?
Site Mailboxes provide a consolidated view of site content stored within SharePoint and Exchange from within Microsoft Outlook. Site Mailboxes help team members share and archive important emails related to a specific subject, instead of losing those emails in individuals’ inboxes. It can be especially helpful resources for new team members who need to get up to speed quickly on an subject’s history. Oftentimes, emails stored in Site Mailboxes can provide the insight into why past decisions were made and offer context for future decisions.

How is it different from Exchange mailbox?
Site Mailbox doesn’t allow to see documents in outlook, only sync your site document libraries in Outlook and easily share documents with your team…however you can sync a document library in Outlook and see the documents there in preview mode. You will not be able to add the Team Site mailbox to your Outlook desktop client.

How does Site mailbox help you in increasing Productivity?
One of the strong features of Site Mailboxes is the fact that the same functionality exists in both the browser (through SharePoint) and in Outlook. In addition to checking a Site Mailbox through SharePoint to review emails, Site Mailboxes are also available in Outlook 2013 as an additional folder that will display both emails and documents from the SharePoint site.

Site Mailboxes provide users a way to work naturally in their Information Worker client apps, whether that be Outlook or SharePoint.  The content is kept where it belongs. Exchange stores the email-based content, offering users with the same message view for email conversations that they use every day for their own mailboxes.  Meanwhile, SharePoint stores the Office files, bringing co-authoring and versioning to the table.  Compliance policies are applied to all content behind the scenes. Attachments sent to a Site Mailbox are stored and indexed for search in SharePoint allowing users to manage content appropriately across individual team sites and allows for collaboration using Office web apps. Site Mailboxes are also managed by Exchange and easily accessible by Outlook users.

Before you plan site mailboxes keep in mind that:

  • Lifecycle Retention policies can be applied at a Site Mailbox level behind the scenes.
  • Site Mailboxes can be part of eDiscovery Search Scopes.
  • Email content is retained within Microsoft Exchange while documents are retained within SharePoint.
  • In order to include the email as part of a workflow or add metadata columns to it you can drag and drop it directly to a Document Library.
  • Maximum of 10 Site Mailboxes can be added to Outlook

Enough of the talk, let’s see it in action now!

  • Navigate to your team site



  • Click on “Mailbox” on the left navigationmailbox2
  • Open email attachment


  •  Hit Edit and Reply and you don’t have to open the PowerPoint in another program or save another copy locally only to re-attach it to her reply. Also, if there was important information in the email she needed to reference, this side-by-side view lets her work on the presentation without having to click back and forth to the email.




  • Inline email and editing



  • With this new information in mind, you now click on your team site in the navigation bar in Outlook Online to return to the site to continue your investigation.







SharePoint Online eDiscovery Center For All Your Legal Needs

ediscovery Featured

Ever have requests to furnish old emails, messages, documents to your HR or legal teams? In this digital era, we experience an overflow of electronic information in forms of email, documents, IM conversations, etc. It can be chaotic when you are expected to look for content from several years in the past. Have you ever wondered what it would be like if you had a tool to help with ESI (electronic stored information) to collect, classify, and analyze? Even better, a tool that allows you to then preview and preserve for as long as your corporate policies allow?

The most-affected workgroups are Legal, IT, and the governance, risk, and compliance folks, who must manage all of the data legal and compliance groups are desperately trying to search. Now with Office 365, you can do just that and more. Office 365 equips you with an eDiscovery center to manage preservation, search, and export of content stored in Exchange and SharePoint, across SharePoint farms and Exchange servers.


Your SharePoint Online tenant comes with a pre-created eDiscovery center. What it needs from you is, configuring discovery sets and setting up your search queries in order to export the results. With SharePoint Online you can run an eDiscovery case on SharePoint, Exchange, Lync, and on premises File Shares at the same time, from one management console. This lets you search, preserve, and export all relevant content from all these repositories. For every discovery case, you would create a new case site where it is possible to conduct searches, place content on hold, and export content. There are new capabilities in eDiscovery you need to be aware of:

  • eDiscovery Sets: Combinations of sources, filters, and whether to preserve content. eDiscovery Sets are used to identify and preserve content.
  • In-Place Hold: Now you can preserve sites and mailboxes using search filters. Preservation works behind the scenes… people can work on their documents and delete email and not even know it is turned on, but for eDiscovery, you have the data you need in an immutable store.



  • Query: Search experience which is eDiscovery focused. This reduces the output data and help you find the content you are looking for.
  • Export: Download all of the data  directly to a local machine with an offline copy of native documents, email PSTs, archived MHT web pages, and CSV files for SharePoint lists.



After searching for relevant content in a eDiscovery set, you may want to put content on hold. This enables the original content to always there when your legal department asks for it. The eDiscovery center allows you to put SharePoint sites and Exchange mailboxes on hold, without disrupting the business.  Putting a SharePoint site on hold creates a hidden document library. This enables the user to still modify any content item subject to the legal hold while keeping the original copy of the item in that hidden library. Exchange mailboxes apply the same principle by creating a hidden folder where items are actually moved to when a user deletes an item.

This post guided you through the benefits and process to setup eDiscovery and empower your legal department to query and export content to help in any litigation or compliance needs. In the next few posts, I’ll dive into some other advanced security features in Office 365.

Webinar Recap: What to Know When Migrating to Microsoft Exchange

On Tuesday, we teamed up with Binary Tree, Microsoft’s 2014 Messaging Partner of the Year, for a webinar on Best Practices & Solutions For Migrating to Microsoft Exchange.

The session delved into Office 365, common challenges when migrating to Exchange, along with an example of a customer who recently migrated to Exchange Online with the help of Binary Tree’s solution, and then, how Binary Tree’s CMT Suite works with a demonstration of CMT for Coexistence and CMT for Exchange.

First, Perficient’s Rene Strawser, whose role as a lead technical consultant allows her to focus primarily on the deployment and migration of the Microsoft unified communications technologies of Exchange, gave attendees a bit of background on the trends surrounding the cloud, and specific features of cloud-based Exchange in Office 365.

Following this, James Tolentino, another lead technical consultant at Perficient, shared the common challenges he’s worked through when migrating customers to Exchange from legacy email platforms, and then walked through a situation where a customer recently moved from a legacy email platform to Exchange Online. He described the key features of the Binary Tree tools that were used as well as an overview of the migration process. This included the criticality of end user communication and the use of PowerShell commands and replica/staging.

For the second half of the webinar, Binary Tree solution architect Perry Hiltz went into further detail on Binary Trees’s award-winning SMART migration software solutions, CMT for Coexistence and CMT for Exchange, and then gave the audience a live demo of the tools in action.

You can view the entire replay here, including the demonstration. You can also catch up with the speakers on Twitter: @srstrawser and @PWHiltz.

Webinar: Binary Tree & Perficient on Migrating to Exchange

It’s not uncommon for an organization to make some avoidable mistakes as they prepare for and then execute a migration from a legacy email platform to Microsoft Exchange (and that applies to Exchange 2013 on premises migrations  as well as those moving to Office 365 / Exchange Online).Binary Tree

If you are hoping to mitigate those migration risks, and ensure seamless coexistence between your current email platform and Exchange,  join Perficient and Binary Tree on Tuesday, September 9, 2014 at 1 p.m. CT for a webinar, Best Practices & Solutions for Migrating to Microsoft Exchange. During the session, you’ll learn how to dramatically reduce the costs, complexities and timeline of your migration, and hear why a move the cloud might be the right decision for you.

René Strawser and James Tolentino, both lead technical consultants in our Microsoft practice, will first take a look at common challenges surrounding migrations from legacy email platforms, details around making the move to Office 365, and will walk through a recent example of an organization that successfully migrated to Exchange Online with Binary Tree.

Binary Tree solution architect Perry Hiltz will then present a technical deep-dive of their award-winning SMART migration software solutions, CMT for Coexistence and CMT for Exchange software, which can be used on-premises or remotely. Binary Tree is the leading provider of messaging and collaboration transformation technology and solutions for the Microsoft platform in the cloud, on-premises, or hybrid environments. You can learn more about Binary Tree by visiting

To register for the webinar, click here.
Best Practices and Solutions for Migrating to Microsoft Exchange
Tuesday, September 9, 2014
1:00 p.m. CT

SharePoint 2013 Service Pack 1 (SP1) Released!

In further anticipation of SharePoint Conference 2014, today Microsoft announced the release of Service Pack 1 for all Office products, including SharePoint 2013. This has been a long time coming. Most of us in the industry were expecting SP1 to arrive sometime last fall, right around the 1 year mark of the product release. There was so much buzz last fall, Microsoft even had to blog to tell us the release date was “coming”. This update covers the following products – Access, Excel, InfoPath, Lync, OneDrive (formerly SkyDrive), OneNote, Outlook, PowerPoint, Publisher, Word, Project, Visio, SharePoint Designer, Project Server, Office Web Apps Server, and of course SharePoint Server.

Some of the highlights include:

  • Compatibility fixes for Windows 8.1 and Internet Explorer 11.
  • Better support for modern hardware, such as high DPI devices and the precision touchpad.
  • New apps for Office capabilities and APIs for developers.
  • Power Map for Excel, a 3D visualization tool for mapping, exploring, and interacting with geographical and temporal data in Excel, is now available to Office 365 ProPlus subscription customers.
  • Improvements to the Click-to-Run virtualization technology that installs and updates Office 365 desktop applications.
  • SkyDrive Pro is now OneDrive for Business.

Note this is for on premises deployments only. Customers who have an Office 365 subscription are always kept up to date and will get the SP1 changes automatically in their next regular update.

As with all Service Packs, SP1 also includes all public updates and cumulative updates that Microsoft has released between the date when Office 2013 became available (fall 2012) through early this year.

For a detailed list of all updated features, download this Excel file.

As this was just released today, we have not fully tested the Service Pack at Perficient. We will be applying this to our internal dev environments for testing very soon and will report back with any issues. Feel free to email or comment if you have any questions.

Using System Center Automation to Manage Office 365

Manage Office 365 with Microsoft System Center Service Manager, Orchestrator, PowerShell or Custom GUI.

Working with office 365 projects one of the things I come across frequently is what are some of the ways to manage Office 365 from an on premise location. Up to now there has been a very limited tool set to do simple task. DirSync is a tool offered by Microsoft to Synchronize the User Principle Names from Local Active Directory to the Office 365 cloud. Federated Services helps create a Single Sign on to the Cloud which helps the administrators to manage passwords locally. Exchange Management console has some management functionality of Office 365 mailboxes but it requires a Hybrid Deployment. Power Shell offers the most flexible on premise management abilities. Then there are some third parties out there that provide simple management tools to do things like Synchronize passwords or Migrate mailboxes. Read the rest of this post »

Copying distribution groups to cloud for Outlook/OWA management

While directory sync provides a much needed service for Office 365 tenants one pain point that comes up pretty regularly is distribution group management once you’re in the cloud. Sure the groups get synced to the cloud but if you’ve been used to managing the group memberships with Outlook when everyone’s mailbox used to be on-premise, once you move your mailbox to the cloud you won’t be able to do that anymore. This is because the object is synchronized from your local AD and therefore you must make changes to the group in Active Directory and let dirsync bring those changes to the cloud. If you have a hybrid server or local Exchange environment you could use it to manage the membership but most likely you’re not going to allow users to access the EMC. You could also create your own application which allows users to edit groups in your local AD but honestly who wants to spend development time doing that?

So what other options are there? Well the only way is to recreate each group directly in the cloud. What if you have hundreds or thousands of groups and thousands of members of those groups? I know, it doesn’t’ sound like this would be any fun at all and it’s not. You can automate this process using PowerShell and maybe some simple Excel skills. I like keeping things organized and so I use Excel to prepare input files for my bulk PowerShell applications. For this particular task what I did was get a list of the existing distribution groups from my on-premise Exchange environment with a few attributes to allow me to bind to the AD object and leverage other attributes in my script. I would grab at a minimum the displayName, mail, and mailNickname. Using Excel I would then use this information to create the new displayName, mail and mailNickname for the cloud-based distribution groups. To show you what I mean here’s an example input file (CSV) for my script.

oldgroupDisplayname oldgroupMail oldgroupAlias newgroupDisplayname newgroupMail newgroupAlias
DGroup1 dgroup1 Cloud Group1 cloudgroup1


Now for the very simple script to connect to the cloud, create the new group and populate the membership based on the existing group:

# Connect to cloud




$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri -Credential $o365creds -Authentication Basic -AllowRedirection

# Note: The prefix below is used to differentiate between the Exchange Online commands and the local Exchange commands (e.g. get-CloudMailbox vs. get-Mailbox)

Import-PSSession -Session $Session -Prefix "Cloud" -DisableNameChecking:$true -AllowClobber:$true



Import-CSV groups.csv | % {


# Create the new group


New-CloudDistributionGroup -DisplayName $_.newgroupdisplayname -Name $_.newgroupname -Alias $_.newgroupalias -PrimarySmtpAddress $_.newgroupmail -Type Distribution


# Grab members from old group


$groupmembers=@(Get-CloudDistributionGroupMember -Identity $_.oldgroupmail)


# Now add the members from the old group  to the new group


foreach ($groupmember in $groupmembers) {

    Add-CloudDistributionGroupMember -Identity $_.newgroupmail -Member $groupmember.primarysmtpaddress




Note the prefix (“Cloud”) that I used in the example. This simply means to prefix the cmdlet you’re running with “cloud” (i.e. Get-CloudMailbox instead of Get-Mailbox). Using a prefix allows me to use multiple remote PowerShell sessions, one against the cloud and one against the on-premise Exchange environment so I can keep track of which objects I’m updating. This script could be expanded easily to configure other settings on the new cloud distribution group and to duplicate other settings from the on-premise group like the manager, proxyAddresses, group opt-in/opt-out settings, etc.

I hope this proves useful for someone out there faced with the same challenge.

Lync Server 2013 Internal Server Roles

This is post 10 of the twelve post series, to see an index of all twelve posts, click here.

On the 10th day of Lync’mas my UC Team gave to me: 10 Lync Internal Server Roles!

On the surface (No PUN intended), Lync 2013 is, or at least was upon release, widely perceived to not be much of a change over Lync Server 2010 and was more of a simple refresh.   “Ho Ho Hoooo-boy!”…This simply couldn’t be further from the truth once you dive into each of the different roles of Lync Server 2013.  Rather than use this blog post to deep dive into those roles, I will highlight all the servers and the roles associated with Lync Server 2013, in contrast to Lync Server 2010.  Don’t forget that these roles do not necessarily require their own separate servers, as they can be co-located.

The core of any Lync Server 2013 deployment continues to be Enterprise Edition Pool “EE” servers, or a single Standard Edition “SE” server.  With Lync Server 2010 and Lync Server 2013 there were multiple servers and roles associated with a deployment.  These servers/roles include:

Read the rest of this post »

Using PowerShell in Windows Server 2012 to create a simple lab

I’ve been meaning to sit down and spend some time exploring the new Active Directory cmdlets that come with Windows Server 2012 so I decided to use my lab to create some test objects and populate the mailboxes with some messages.

My lab setup is very simple:

  • 1 – Windows Server 2012 domain controller
  • 1 – Exchange 2013 server (hosted on Windows 2012)
  • 1 – Windows 8 client with Office 2013

My goal was to be able to quickly create some test users and groups in a new OU structure, populate the groups with the accounts, and finally populate the mailboxes with some test messages. Here is the script I created to do that. It should be fairly straightforward to follow. There are obviously many other ways to do this. This is just one such way. I ran the script from the Exchange 2013 Management Shell after installing the Active Directory PowerShell module.

Read the rest of this post »