One of the most common Exchange admin tasks is setting mailbox delegations. Personally, I usually do this through EAC but once you're familiar with the Powershell counterparts, it can be quicker to use that instead. I've created this post as a reference to do just that.
In the reference below, the user "Ellen Somebody" requires access to the mailbox of "John Doe".
Send on Behalf
Set-Mailbox john.doe -GrantSendOnBehalfTo ellen.somebody
Send As
Add-ADPermission john.doe -ExtendedRights Send-As -user ellen.somebody
Full Access
Add-MailboxPermission -Identity john.doe -User ellen.somebody -AccessRights FullAccess -InheritanceType All
If you have the Exchange Management Tools installed, you can easily import the Exchange module into a standard Powershell by running the Add-PSSnapin cmdlet.
Depending on the Exchange version, the module to add is slightly different:
Exchange 2007 | Microsoft.Exchange.Management.PowerShell.Admin |
Exchange 2010 | Microsoft.Exchange.Management.PowerShell.E2010 |
Exchange 2013 | Microsoft.Exchange.Management.PowerShell.SnapIn |
If you're not sure about the version, you can also use wildcard characters:
Add-PSSnapin *Exchange*
If you don't want to install the management tools, you can also use PS remoting to remotely access the management shell from a standard Powershell.
When running Get-ReceiveConnector, the contents of the RemoteIPRanges field may be truncated if there are a lot of entries. You can "expand" the list:
Get-ReceiveConnector MyConnector | Select -expand RemoteIPRanges | FT
This will expand each of the IP range objects and FT makes sure it's nicely formatted in a table. For single addresses, you only need the LowerBound column, but if ranges have been specified, you probably want both columns.
You can quickly check which mailbox has e-mail forwarding settings enabled through the EMS:
Get-Mailbox -Filter {ForwardingAddress -ne $null} | FT Name,ForwardingAddress,DeliverToMailboxAndForward -Autosize
You can use the cmdlet above and process its output or export it to a CSV (using Export-CSV).
You can easily get the Exchange version for all Exchange servers in your domain with this one-liner. Run it from an Exchange Management Shell.
Get-ExchangeServer | Select Name,AdminDisplayVersion,Edition,ServerRole
The following information is displayed:
Name : | the server name |
AdminDisplayVersion : | the version and build of the server You can cross-reference this with the Exchange version matrix to find out which updates are installed. |
Edition : | can be Standard or Enterprise |
ServerRole : | the roles on the server specified by Name |
These version matrix pages (from Microsoft) contain the build numbers (how to check?) of Exchange, matched against their update "names" (RU, CU numbers), their release dates, and a link to the KB containing the update download:
DigiCert has a very handy tool to automatically change the internal and external URLs of an Exchange CAS server:
« ‹ | December 2024 | › » | ||||
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |