Forum Discussion
Command New-DistributionGroup doesn't work
- Aug 08, 2023
Hi, Eduardo.
That's what I was expecting to hear.
The commandlet definitely exists, however, when you run Connect-ExchangeOnline, only the commandlets you have access to are loaded.
If you don't see a particular command, it means the account you have logged in with during Connect-ExchangeOnline does not have enough access to see and use that commandlet.
Using the following article's guidance, we can see which roles give access to New-DistributionGroup:
(Get-ManagementRole -Cmdlet New-DistributionGroup).Name | ForEach-Object { Get-ManagementRoleAssignment -Role $_ -Delegating:$false | Format-Table -AutoSize Role, RoleAssigneeType, RoleAssigneeName; }
Output:
So, we can see from this that the account you logged in with using Connect-ExchangeOnline needs to be a member of either:
- Organization Management
- Recipient Management
The one thing that is for certain is that if you're not seeing the command, your account does not have the necessary rights to do so. It's not a problem with the commandlet not existing.
Cheers,
Lain
Hi, Eduardo.
Don't worry about not seeing the command in the PowerShell ISE as by default it's only aware of modules installed on your computer at first. If you want to see the Exchange Online commandlets loaded as part of connecting, then you have to perform the connection inside the ISE, not outside of it, and then you'll see the module name in the list (prefixed with "tmpEXO" and then a randomised suffix) - as shown below:
Putting the ISE to the side for a moment, here's three basic commandlets you can run from any old PowerShell prompt to incrementally check if you have access to the commandlets you're wanting to use:
# Connect to Exchange Online.
Connect-ExchangeOnline -Organization robertsonpayne.onmicrosoft.com -ShowBanner:$false;
# Quick confirmation that we're connected without issues - see the example screenshot below for the output from this command.
Get-ConnectionInformation | Format-Table -AutoSize -Property Name, Organization, TokenStatus, UserPrincipalName;
# Check if we can see any of the distribution list commandlets.
Get-Command -Module ((Get-Module -Name "tmpexo*").Name) -Name *distr*;
If you don't find the ones you're after listed, then you don't have access and you'll need to step back and check your access rights - and that you're logged in with the correct account (as it's common in secured environments to have a separate account for performing administrative tasks) - before trying again.
Cheers,
Lain