RTM for 2013!

Good news, Exchange 2013, Lync 2013, SharePoint 2013 and Office 2013 has now reached RTM! The general availability has been set to Q1 2013 but Office 365 Enterprise and Volume License customers will have access to new functionality and downloads in mid-November!

More information can be found here:

Exchange 2013

Lync 2013

SharePoint 2013

Office 2013


Lync 2013 Preview released!

More good news, Microsoft has also released the Lync 2013 Preview! The download is available from here:


Exchange 2013 Preview released!

Microsoft has finally released the Exchange 2013 Preview! Now my summer vacation is saved, expect a lot of posts in the next days regarding this. Now stop reading and  download Exchange from here to get started:


Time for TechEd North America

I will be attending the North American Microsoft TechEd event next week starting on sunday. I will be proctoring in Exchange/Lync labs on sunday, forenoon on monday and tuesday and on wednesday afternoon. If you are going to visit TechEd please do not hesitate to say hi if you happen to see me!


List mailboxes based on creation date

Just a quick one liner to list mailboxes based on the date when they where created. In the example below I list all mailboxes created the last week:

Get-Mailbox -resultsize unlimited | where {$_.WhenMailboxCreated -gt (get-date).adddays(-7)} |ft Name,whenMailboxCreated -Autosize

If you want to change the number of days just edit –7 to the number of days matching your preferences.

That’s all, take care and have fun!

Configure Lync 2010 voice using a SIP gateway and an uncertified SIP trunk, step-by-step – Part 2

This post takes on right where post 1 in this series ended and we will jump right into it. We will cover PSTN Gateway configuration, Trunk configuration, Normalization rules and Voice Routes.

PSTN Gateway

Head over to you Lync Server 2010 and open up Lync Server Topology Builder, then choose Download Topology existing deployment and click Ok.


Choose a location and enter a name for you topology file and then click Save.


Expand Mediation pools and then click Edit Properties… in the Actions pane.


Select New to create a PSTN gateway.


Enter the FQDN or IP address for your gateway, ensure TCP is set as we configured TCP in the Intertex IX78 in the previous post and change the default port to 5060. When finished click Ok.


Make sure that the gateway is listed in the The following gateways are associated with this mediation server and  then click Ok.


Go ahead and publish your new topology. I will not cover the publishing in this post, instead we will continue with configuring our trunk.

Trunk Configuration

Open the Lync Server control Panel and navigate to Voice, Trunk Configuration and click New.


Make sure your settings match mine and then create a translation rule by clicking New.


I will create a Translation Rule that looks for the +00 prefix, and makes sure that the number is more then 3 digits long, then it replaces 0 digits (in other words it does not replace anything). We will use Normalization Rules to make sure that the dialed numbers have an ok syntax. When finished click Ok to save our Translation Rule.


Take a quick look at the configured settings and then click Ok to save your Trunk configuration.



Normalization Rules

Normalization rules define how phone numbers expressed in various formats are to be routed for the named location. It is a way of forming an E. 164 number from the number dialed by an Lync Server 2010 user. It is necessary for call routing because users may dial numbers in various formats.

I will list all my 5 Normalization Rules, you might not need all of them but this is what works for me in my lab in Sweden. Feel free to add a comment if you need help with forming these rules, it can be quite tricky. More information regarding Normalization Rules can be found here and here.

Navigate to Voice Routing and Dial Plans and open your Global Dial Plan.


In my example you can see the 5 Normalization Rules that I use for my lab environment. Create a new rule by clicking New.


This rule initiates on the starting digits 00, it does simply that and nothing more. The reason for this is that I want to normalize all numbers to include both country code and area code, for example 0046855566677. I would recommend you to try different Normalization Rules until you have a combination of rules that fits your needs and demands.


To make sure that your rule works you can test it before clicking Ok and saving it. If I enter a number that I believe should match the rule and then click Go it should display the normalized number in green.


My next Normalization Rule initiates if a number starts with a single 0 and is at least 1 digit long. In Sweden our area codes starts with a single 0. Then it adds the prefix 0046 to make it a standard Swedish number including the country code.


When I enter a number with Stockholm’s area code it should Normalize it to a number that that removes the initiating 0 and then adds the prefix for the Swedish country code.


My next Normalization Rule initiates on any number starting with one of the numbers 1 to 8. A local number in Sweden can start with any of those numbers. It must also be at least 5 numbers long since no telephone number in Sweden has less then 5 numbers. Then it adds the local area code of both Sweden and Stockholm.


And when I test this rule with a local number it should add a prefix of 00468.

Note: This Normalization Rule assumes that this server is placed in Stockholm and that all numbers missing an area code is meant for Stockholm.


This next rule initiates based on the staring digit +, as in +46855566677. It then removes the + and adds 00.


And when tested it does exactly that…


And last but not least, this rule initiates when the number starts with 33 and is exactly 3 digits long. This indicates that it is a local number and it should not be normalized in any way.


When tested it does seem to match, note that I have also checked Internal Extension.


When you have added all your Normalizations Rules you can make more tests if you want and then click Ok to save your Dial Plan.


I am by far no expert in normalization rules, if you have any thought on the rules I use please feel free to post a comment or contact me and I will be happy to optimize my lab.

Route Configuration

Our final step towards a working Lync Server 2010 voice implementation is to configure routing. A Voice Route looks for a specific pattern in numbers and then decides which gateway that it will route the call to. Navigate to Voice Routing and then Route. Click New to create a new route.


Give the Voice Route a Name and then add the pattern that you want this route to match. In my case I have normalized everything that is supposed to leave the Lync Server with 00 I add 00. In your case this might differ depending on your Normalization Rules.


The next step is to add an Associated gateway. Click on Add to open the gateway selection.


Search for and select the gateway you would like to add and then click Ok to save your selection.


Next we must add an Associated PSTN usages, click Select to open the PSTN usage record selection.


Select your PSTN record and then click Ok.


Now it is time to test our routing. Enter a suitable number that you think should match the pattern and click Go.


Also, to make sure that all is well, enter a number that should not match the pattern.


When finished save the Voice Route by clicking Ok.

Now make sure that you Commit all changes properly!!

After this you should be all set and ready for testing. This concludes part 2 of this series, I hope you have enjoyed reading it and that you find it useful. If you have any thoughts or questions regarding the configuration please do not hesitate to post a comment.

Part 1 in this series can be found here!

Part 2 in this series can be found here!

Enable users to manage distribution groups without new- or remove- Cmdlets using Management roles

In this post I will show you how to create a management role and assign it to a group. We will remove the new- and remove Cmdlets from the Management role and make sure that it works. This will enable the users to manage distribution groups without the permission to create or remove any distribution groups.

You might want to give the users permission to manage the groups they are managers of without the possibility to create new groups or remove current groups. This will give you a more controlled distribution group management without new groups popping up. One customer of mine use a distribution group administrator for each department that is instructed and responsible for creation and removal of groups concerning that users department.

The Management role

The first thing we need to do is to create a new Management Role. We do this since we do not want to edit a built-in management role. What we can do, is base our new Management Role on one of the built-in Roles, by doing that we will populate our new Role with the same Management Roles Entries.

To create a new Management Role and use the following cmdlet:
New-ManagementRole -Name "MyDistributionGroupsAdmins" -Parent MyDistributionGroups


Next we will remove the new- and remove-.cmdlets from our new Management Role. But first we will check the cmdlets:
Get-ManagementRoleEntry "MyDistributionGroupsAdmins\New-*"

When we a re sure that these cmdlets are the once we want to remove run the following cmdlet:
Get-ManagementRoleEntry "MyDistributionGroupsAdmins\New-*" | Remove-ManagementRoleEntry


We will do the same for the Remove- cmdlets:
Get-ManagementRoleEntry "MyDistributionGroupsAdmins\Remove-DistributionGroup

We only want to remove one of the cmdlets:
Get-ManagementRoleEntry "MyDistributionGroupsAdmins\Remove-DistributionGroup” | Remove-ManagementRoleEntry


Now we have a new Management Role without the New- and Remove- cmdlets. Next we want to assign the Role to our users is some way. I will explain three different ways of doing this.

Assignment using Management Role Group

When we use this method we will create a Role Group, add members and managers to the group and add our previously created Management Role to the Group. A Management Role Group also includes a Universal Security Group that s created during the process.

I am not going to go through exactly how Management Role Groups work , more information on this can be found here.

When creating the Role Group use the following command:
New-RoleGroup -Name "Distribution Group Managers" -Roles "MyDistributionGroupsAdmins" -Members Test10, Test11,Test12 -ManagedBy Test12


This creates a new Role Group, adds the users Test10 and Test11 as members and the user Test12 as manager. Test12 will get both the rights that the Role Group incudes and he will have the permission to manage the group.

To be able to confirm that our configuration works we need to create a Distribution Group and set user Test12 as owner, I use the following command to achieve this:
New-DistributionGroup -Name "Test Group 1000" -OrganizationalUnit "sundis.local/Test/users" -SAMAccountName "TestGroup1000" -Type "Distribution" -ManagedBy Test12


Now we can log on to the ECP as our manager, Test12 in my case, and see if our configuration work. Open ECP, log in and navigate to Groups. Select the group you want to manage in the right column Public Groups I Own and click Details or double click it.


Add a user by expanding Membership and click Add.


Select the mailboxes you want to add to the group, click Add and Ok.


Check that your changes looks ok and then click Save.


You should now be back at ECP and our test is finished and successful.

Assignment using a new Management Role Assignment Policy

The second option I am going to explain is the use of a Management Role Assignment Policy. Using a policy enable you to group a number of Management Roles together to a policy and configure mailboxes to use this policy. Again, I will not do any deep dive in Management Role Assignment Policies, more information on this can be found here.

We will use the same Management Role as we created above and start with creating a new Policy. Note that we also include a role called MyBaseOptions. If we leave this role out it will prevent users who are assigned this policy from using ECP and OWA options. Use the cmdlet below to create the policy:
New-RoleAssignmentPolicy "Distribution Group Admins" -Roles MyBaseOptions, MyDistributionGroupsAdmins


If you want to make this Policy default add –IsDefault as in the following example:
New-RoleAssignmentPolicy "Distribution Group Admins" -Roles MyBaseOptions, MyDistributionGroupsAdmins –IsDefault

When the Policy is created you can add it to a mailbox with the following cmdlet:
Set-Mailbox Test10 -RoleAssignmentPolicy "Distribution Group Admins"

And  a simple Get-Mailbox to check the results:
Get-Mailbox Test10 | fl Role*


Again, lets check this using the ECP for mailbox Test10. For this test I create a new Distribution Group called Test Group 1001 and add Test 10 as manager using the following cmdlet:
New-DistributionGroup -Name "Test Group 1001" -OrganizationalUnit "sundis.local/Test/users" -SAMAccountName "TestGroup1001" -Type "Distribution" -ManagedBy Test10


In ECP, navigate to Groups. Select the group you want to manage in the right column Public Groups I Own and click Details or double click it.


Add a user by expanding Membership and click Add.


Select the mailboxes you want to add to the group, click Add and Ok.


Review the changes you have made and click Save when finished.


This will take you back to ECP and we are finished with this part.

Assignment by customizing the Default Management Role Assignment Policy

Last but not least we will add our Role to  the Default Management Role Assignment Policy. To achieve this we create a new Management Role Assignment by running this cmdlet:
New-ManagementRoleAssignment -Name "Default Role Assignment Policy – MyDistributionGroupsAdmins" -Role MyDistributionGroupsAdmins -Policy "Default Role Assignment Policy"


Now all the mailboxes with the Default Role Assignment Policy configured will have the ability to manage the distribution Groups they are managers for. Since I like screenshots I will make sure this is ok. First create a new Distribution Group:
New-DistributionGroup -Name "Test Group 1002" -OrganizationalUnit "sundis.local/Test/users" -SAMAccountName "TestGroup1002" -Type "Distribution" -ManagedBy Test11


Let’s also make sure that the mailbox Test11 have the Default Role Assignment Policy set:
Get-Mailbox Test11 | fl Role*


Now we can log in to ECP and make sure that we can manage Test Group 1002. Select the group you want to manage in the right column Public Groups I Own and click Details or double click it.


Add a user by expanding Membership and click Add.


Select the mailboxes you want to add to the group, click Add and Ok.


Review the changes you have made and click Save when finished.


All done, the Default Policy is altered and tested.

I hope you like the post and find it useful. Thanks for reading and let me know if you have any questions!