Users cannot manage distribution groups that they are owners of in Exchange 2013

If you have recently ran across an issue where users are unable to manage a distribution group in Outlook or Exchange even though you have made them owners of this group it is by design.  By default users in Exchange 2013 are assigned to the “Default Role Assignment Policy”.  This role does not have the permissions to edit group ownership even if they are owner’s of the distribution group.  In order to fix this you must login to the ECP by going to https://servername/ecp  Once here go into the permissions on the left hand side.
distribution groups i own
Click on admin roles in my instance I just assigned my user Recipient Management rights since they are an administrator level employee.  This resolves the issue.
If all of the following hold true then you can also just download and run this Powershell script.

  • I want my users to be able to manage distribution groups they own.
  • I don’t want them to be able to create distribution groups.
  • I don’t want them to be able to remove distribution groups even if they do own them.

# Script for creating a Role that can manage distributions groups but can’t create new ones
# The sample scripts are not supported under any Microsoft standard support
# program or service. The sample scripts are provided AS IS without warranty
# of any kind. Microsoft further disclaims all implied warranties including, without
# limitation, any implied warranties of merchantability or of fitness for a particular
# purpose. The entire risk arising out of the use or performance of the sample scripts
# and documentation remains with you. In no event shall Microsoft, its authors, or
# anyone else involved in the creation, production, or delivery of the scripts be liable
# for any damages whatsoever (including, without limitation, damages for loss of business
# profits, business interruption, loss of business information, or other pecuniary loss)
# arising out of the use of or inability to use the sample scripts or documentation,
# even if Microsoft has been advised of the possibility of such damages
# Written by Matthew Byrd
# Last Updated 10.15.09

# Parameter to get a different name than default for the new Role
Param([string]$name=”MyDistributionGroupsManagement”,[string]$policy=”Default Role Assignment Policy”,[switch]$creategroup,[switch]$removegroup)
# Help Function
Function Show-Help {

This script is will create or manage a management role designed to allow users to modify groups that they already own
but not create or remove any new distribution groups.
-name           Name of the managment role you want to create or modify
Defaults to: `”MyDistributionGroupsManagmenet`”
-policy         Name of the Role Policy you want to assign the role to
Defaults to: `”Default Role Assignement Policy`”
-creategroup    Adds or Removes the ability of the Role to Create DLs
-removegroup    Adds or Removes the ability of the Role to Remove DLs
This will Use the default names and Policy and will create a role that cannot
Create or remove groups but can still modify them.  If the role already exists
It will modify it by removing or adding the abiltity to create and remove groups
based on the current state.
Manage-GroupManagementRole -CreateGroup -RemoveGroup

# Function to modify a role by removing or adding Role Entries
# If no action is passed we assume remove
# $roleentry should be in the form RoleRoleentry e.g. MyRoleNew-DistributionGroup
Function ModifyRole {
Switch ($action){
Add {Add-ManagementRoleEntry $roleenty -confirm:$false}
Remove {Remove-ManagementRoleEntry $roleenty -confirm:$false}
Default {Remove-ManagementRoleEntry $roleenty -confirm:$false}
If (($creategroup -eq $false) -and ($removegroup -eq $false)){
# Test if we have a role that already has that name
If (([bool](Get-Managementrole $name -erroraction Silentlycontinue)) -eq $true){
Write-Warning “Found a Role with Name: $name”
Write-Warning “Trying to Modify Existing Role”
Else {
# Create the new Management Role
Write-Host “Creating Managmenet Role $name”
New-ManagementRole -name $name -parent MyDistributionGroups
# Determine if we have the New and Remove Role Entries on the Role Already
$create = [bool](Get-managementroleentry $nameNew-DistributionGroup -erroraction Silentlycontinue)
$remove = [bool](Get-managementroleentry $nameRemove-DistributionGroup -erroraction Silentlycontinue)
# If we have the switch CreateGroup add or remove the RoleEntry for New-DistributionGroup
If ($creategroup -eq $true){
If ($create -eq $true){ModifyRole $nameNew-DistributionGroup Remove;Write-Host “Removing ability to create distribution Groups from $name”}
elseif ($create -eq $false) {ModifyRole $nameNew-DistributionGroup Add;Write-Host “Adding ability to create distribution Groups to $name”}
# If we have the switch RemoveGroup add or remove the RoleEntry for New-DistributionGroup
If ($removegroup -eq $true){
If ($remove -eq $true){ModifyRole $nameRemove-DistributionGroup Remove;Write-Host “Removing ability to create distribution Groups from $name”}
elseif ($remove -eq $false) {ModifyRole $nameRemove-DistributionGroup Add;Write-Host “Adding ability to create distribution Groups to $name”}
# Test if we have the assignment for the Role and Policy
# If we do … write a warning
# If not create a new assignment
If (([bool](get-managementroleassignment $name-$policy -erroraction SilentlyContinue)) -eq $true){
Write-Warning “Found Existing Role Assignment: $name-$policy”
Write-Warning “Making no modifications to Role Assignments”
Else {
# Assign the Role to the Role Policy
Write-Host “Creating Managmenet Role Assignment $name-$policy”
New-ManagementRoleAssignment -name ($name + “-” + $policy) -role $name -policy $policy

If you just installed Exchange 2013 and you have an Exchange 2010 mailbox you cannot access EAC you get the old ECP management

If you just installed Exchange 2013 and you try to go to http://ServerName/ecp you’ll notice that you get the old Exchange 2010 interface and cannot manage your Exchange 2013 server.  There is a simple fix for this just simply use the following url syntax.

While installing Exchange 2013 it reports there are Exchange 2003 servers in the network when there are not

One or more servers in the existing organization are running Exchange 2000
Server or Exchange Server 2003.

Installation can’t proceed until all
Exchange 2000 or Exchange 2003 servers are removed.

If you previously upgraded from Exchange 2003 to a version before 2013 then you may not have removed Exchange 2003 or 2000 server properly.  If this is the case you can run adsiedit.msc and find the following location.
Load Configuration
services>Microsoft exchange>first organization>administrative groups>  In here find your administrative group.  Then you will see a “servers” container.  Go in there and delete any name references to your old servers that are no longer in your network.

How to setup the Samsung S3 for Exchange Account

Setting up a Samsung SIII for an Exchange server can be a little tricky.  But with these steps it will help you get it done.
First you want to click on your bottom right menu button on your phone you will get a menu, select settings.
Once in settings select add account.
Now select Microsoft Exchange Activesync.
On the Exchange server settings window you will want to use the same login and password that you would use when you login to your web interface or OWA to normally check your email.  It is also the same domainusername that you use when you login to your PC.  For the Exchange server name use the name in the URL from OWA.
Click ok on this next screen.
On the next screen you can set your preferences but here is a guide.
optionsOnce you have successfully set it up you now need to look for an email icon on your phone.

Exchange 2010 how to view a users folders sizes in Powershell

If you have a user who is receiving the following message:
“The recipient’s mailbox is full and can’t accept messages now. Microsoft Exchange will not try to redeliver this message for you. Please try resending this message later, or contact the recipient directly.”
They might be asking you what is taking up so much space.  There is a simply Powershell command you can run that will generate what folders are consuming the space.
Get-MailboxFolderStatistics -id | sort-object foldersize -descending | FT folderpath, foldersize, itemsinfolder -autosize
This will return something like this which you can give to the end user.
FolderPath                            FolderSize                    ItemsInFolder
———- ———- ————-
/Sent Items/Inbox                     1.793 GB (1,925,310,217 bytes)         16941
/Deletions                           1.046 GB (1,123,250,629 bytes)         10579
/Inbox                               865.8 MB (907,805,987 bytes)            7326
/Sent Items                          240.6 MB (252,339,324 bytes)            3194
/Sent Items/Deleted Items             45.5 MB (47,705,521 bytes)              672
/Recoverable Items                   8.272 MB (8,674,112 bytes)             2208
/Calendar                             5.487 MB (5,753,889 bytes)              1095
/Top of Information Store             3.216 MB (3,372,347 bytes)               38
/Drafts                              1000 KB (1,024,409 bytes)                18
/Contacts                             8.507 KB (8,711 bytes)                   20
/Deleted Items                        323 B (323 bytes)                         1
/Junk E-mail                          138 B (138 bytes)                          1
/Purges                               0 B (0 bytes)                             0
/Versions                             0 B (0 bytes)                              0
/Tasks                               0 B (0 bytes)                             0
/Journal                             0 B (0 bytes)                             0
/Conversation Action Settings         0 B (0 bytes)                             0
/Outbox                               0 B (0 bytes)                              0
/Notes                                0 B (0 bytes)                             0

Removing the first Exchange 2010 database requirements

Run this command first
Set-AdServerSettings -ViewEntireForest $True
The first thing you must do is move all the mailboxes to another database. This can be accomplished via this command
get-mailbox –database “Database You’re trying to remove” | new-MoveRequest –targetdatabase “Database to move users to”
Now you must move the arbitration mailbox
get-mailbox –arbitration –database “Database You’re trying to remove” | new-MoveRequest –targetdatabase “Database to move users to”
You can now check the status of the mailbox move
Once they are all completed run this command to remove the request
get-moverequest | remove-moverequest
You can now remove your mailbox
Remove-mailboxdatabase –id “Database You’re trying to remove”

Get the ten biggest mailboxes in Exchange 2010 export to report using PowerShell

Get-Mailbox -database  | Get-MailboxStatistics | Sort-Object TotalItemSize -descending |Select-Object DisplayName,ItemCount,@{name=”MailboxSize”;exp={$_.totalitemsize}} -first 10 | Convertto-Html | out-File report.htm

Manage Exchange 2010 Calendar Permissions Using Powershell

In this example we will add a domain group named group-calendarReviewers to a mailbox named Jeremy.Whittaker.  We will give the group “Reviewer” access rights
Add-MailboxFolderPermission -identity “Jeremy.Whittaker:calendar” –user “DomainNamegroup-calendarReviewers” -AccessRights Reviewer
In this example above I use reviewer.  However, instead of using “Reviewer” permissions you may choose from all these different types of permissions:
None                                                   FolderVisible
Owner                                                CreateItems, ReadItems, CreateSubfolders, FolderOwner, FolderContact, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems
PublishingEditor                       CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems
Editor                                                 CreateItems, ReadItems, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems
PublishingAuthor                    CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, DeleteOwnedItems
Author                                              CreateItems, ReadItems, FolderVisible, EditOwnedItems, DeleteOwnedItems
NonEditingAuthor                   CreateItems, ReadItems, FolderVisible
Reviewer                                          ReadItems, FolderVisible
Contributor                                   CreateItems, FolderVisible
The following roles apply specifically to calendar folders:
AvailabilityOnly                        View only availability data
LimitedDetails                            View availability data with subject and location
Now lets say you want to go through all the users in your domain and give the group group-calendarReviewers permissions to everyones calendar:
{codecitation}$users = Get-mailbox
$users | ForEach-Object {
Set-MailboxFolderPermission $_”:Calendar” -User Default -AccessRights AvailabilityOnly
Remove-MailboxFolderPermission $_”:Calendar” -User “DomainNamegroup-calendarReviewers” -Confirm:$False
Add-MailboxFolderPermission $_”:Calendar” -User “DomainNamegroup-calendarReviewers” -AccessRights Reviewer
}$users = Get-mailbox $users | ForEach-Object {{codecitation}

Allow anonymous relay in Exchange 2010

Allowing relay in Exchange 2010 requires the use the command shell. Here are the steps:
1. Open Exchange Management console and go to Server configuration>hub transport. On the right hand side click create a new receive connector. Use custom and name it whatever you like. On the remote network settings step you are going to want to assign a small block or only 1 ip address. Allowing anyone on the internet to relay off of your server will get you blacklisted.
2. Once your connector is created open up the properties of it. Click on the authentication tab and remove all checkboxes. Then click on the Permissions group tab and select only anonymous users.
3. You must now open the Exchange command shell and run this command:
Get-ReceiveConnector “Receive Connector Name” | Add-ADPermission -User “NT AUTHORITYANONYMOUS LOGON” -ExtendedRights “Ms-Exch-SMTP-Accept-Any-Recipient”
You will want to substitue “receive connector name” with teh one that you created.

How to create a self-signed certificate in Exchange 2010

Very simple
Open Exchange Shell New-ExchangeCertificate