This message could not be sent. Try again later or contact your network administrator. Error [0x80004005-000000000-00000000]

Issue: This message could not be sent. Try again later or contact your network administrator. Error [0x80004005-000000000-00000000]
Scenario: Organization has throttling policy with recipient rate limit of 10,000 per day set for the organization. For this org, service mailboxes aren’t throttled. User has 2 mailboxes (primary and service mailbox) opened in Outlook. User has send-as permissions to the service mailbox but as a group member.
User tries to send from outlook as service mailbox to multiple recipients but received error message. see error message below
Undeliverable: your message did not reach some or all of the intended recipients. This message could not be sent. Try sending message again later or contact your network administrator. Error is
[0x80004005-000000000-00000000].
Resolution: Advised user to send message using Outlook web Access. User needs to login to OWA and open the service mailbox. Messages can now be sent without throttling.

Alternatively, for a user that insist on using Outlook, user must be given explicit send-as permission to the service mailbox so as to be able to bypass throttling policy

Outlook: There is a problem with the proxy server’s security certificate. The name on the security certificate is invalid or does not match the name of the site. Outlook is unable to connect to this server.

Issue: Error message from Outlook: There is a problem with the proxy server’s security certificate, %s. The name on the security certificate is invalid or does not match the name of the site. Outlook is unable to connect to this server. (%s)
  
Finding/Resolution: Checked Outlook provider settings and saw that server and certificate was set to 2 dashes(–)
used this command to fix: set-outlookprovider EXPR -Server $Null and Set-Outlookprovider EXPR -CertPrincipalName $Null
The command will set outlook provider EXPR to Null(Blank). By doing so Outlook will rely on autodiscover to get the correct outlook anywhere settings

Get all messages from all transport servers by a specific sender starting on a specific day and export to CSV

Issue/Task: Get all messages from all transport servers by a specific sender starting on a specific day and export to CSV
Get-TransportServer | Get-MessageTrackingLog -sender:test@test.com -start 7/15/2014 -resultsize unlimited | export-csv c:export.csv

Message throttling policy created in Exchange 2013 not applying to Exchange 2010 mailboxes

Issue: In a coexistence environment, message throttling policy created in exchange 2013 not applying to exchange 2010 mailboxes

Resolution: Create message throttling policy in Exchange 2010 powershell. Apply separate throttling policy to Exchange 2010 mailboxes

X-OWA-Error: Microsoft.Exchange.Security.Authentication.TokenMungingException

Scenario:  When a user tries to access OWA, the receive the following error:


something went wrong
Sorry, we can’t get that information right now. Please try again later. If the problem continues, contact your helpdesk.

X-OWA-Error: Microsoft.Exchange.Security.Authentication.TokenMungingException

Resolution: This is the result of the mailbox being a ‘linked mailbox’ and having a value in the ‘linked master account’.

Run the following to view the value:
get-user batman15 | select linkedmasteraccount

Run the following to remove the value:
set-user batman15 -linkedmasteraccount $null

Exchange Health Manager has restarted a server even though a Global Monitor Override was in place.

Scenario:  You have a GlobalMonitoringOverride configured to prevent the reboot of an Exchange Server for a specific Exchange Health Monitor responder, but MSExchangeHMWo still rebooted the server anyways.   In our example below, we have an existing global monitor override that should prevent reboots for the responder “ActiveDirectoryConnectivityConfigDCServerReboot”. 
Cause:   The globalmonitoringoverride had an expiration date for 60 days after it was set.
Resolution: Remove the existing GlobalMonitoringOverride and replace it.
step 1 – View the current globalmonitoringoverride

get-globalmonitoringoverride
  
step 2 – View the log file associated with the reboot for the Repsonder

(Get-WinEvent -LogName Microsoft-Exchange-ActiveMonitoring/responderdefinition | % {[XML]$_.toXml()}).event.userData.eventXml | ?{$_.Name -like “ActiveDirectoryConnectivityConfigDCServerReboot”} | ft name,enabled
 step 3 (only if you have override setup already)

remove-GlobalMonitoringOverride -Identity ExchangeActiveDirectoryConnectivityConfigDCServerReboot -ItemType Responder -PropertyName Enabled  
   
Step 4  – Apply Either of the options below.
Apply based on duration of 60 days
Add-GlobalMonitoringOverride -Identity ExchangeActiveDirectoryConnectivityConfigDCServerReboot  -ItemType Responder -PropertyName Enabled -PropertyValue 0 -Duration 60.00:00:00
Apply based on Exchange version

Add-GlobalMonitoringOverride -Identity ADActiveDirectoryConnectivityConfigDCServerReboot -ItemType Responder -PropertyName Enabled -PropertyValue 0 –ApplyVersion “15.00.0847.32”
  
Step 5 – Restart the “Microsoft Exchange Health Manager” service

Working with Mailbox Rules in Powershell

Working with Mailbox Rules in Powershell
1. Get all forwarding rules in an organization:
foreach ($i in (Get-Mailbox -ResultSize unlimited)) { Get-InboxRule -Mailbox $i.DistinguishedName | where {$_.ForwardTo} | fl MailboxOwnerID,Name,ForwardTo >> C:AllForwardRules.txt }
2. To get inbox rules for a mailbox:
Get-Inboxrule. You can also do get-inboxrule | Fl to see details of the rule
3. Type Get-command *inboxrule* to see list of commands for inbox rules
4. To remove a rule, type get-inboxrule | remove-inboxrule
5. Create inbox rule called Junk for a set of users in a particular OU called Test. this will rule will move messages with subject ‘spam” to a folder called
Junk email
$mailboxes = Get-mailbox -organizationalUnit test
$mailboxes | % { }
$mailboxes | % { New-inboxrule -Name Junk -mailbox $_.alias -subjectcontainswords “[spam]” -movetofolder “$($_.alias):Junk Email” }

Scenario: Customer is running Exchange 2010 and Exchange 2013 servers in coexistence. The servers have the latest rollups and patches. Users using Outlook 2013 with mailbox on Exchange 2013 are not able to edit calendar of an Exchange 2010 mailbox user.

Note that customer is running Windows 7(sp1) and Outlook 2013 sp1

Resolution:  Run windows update and ensure Outlook and Office 2013 are all patched to this version: 15.0.4615.1000

Script for converting Bounce Back LegacyExchangeDN to the X500 format

Scenario:  You have to convert the LegacyExchangeDN that is being provided to you in bounce back emails with the special charter formatting into an X500 address.  This may need to be done if mailboxes are disabled and recreated as new mailboxes or when performing migrations.

From the bounce back message, copy and paste the address into the $Addr variable below and then execute this script:

#Edit the $Addr Variable
$Addr = "IMCEAEX-_O=TEST+20ENTERPRISE+20EXCHANGE_OU=EXCHANGE+20ADMINISTRATIVE+20GROUP+20+28FYDIBOHF23SPDLT+29_CN=RECIPIENTS_CN=4bd8a35a90e2441a4587635898d62f9f-s@domain.com"

#Run the following against the variable
$Addr = $Addr -replace "IMCEAEX-",""
$Addr = $Addr -replace "@.*$",""
$Addr = $Addr -replace "_","/"
$Addr = $Addr -replace "+20"," "
$Addr = $Addr -replace "+28","("
$Addr = $Addr -replace "+29",")"
$Addr = $Addr -replace "+2C",","
$Addr = $Addr -replace "+5F","_"
$Addr = $Addr -replace "+40","@"
$Addr = $Addr -replace "+2E","."
$Addr= “X500:$Addr”
Write-Host $Addr

#Add the Email Address to the Mailbox
set-mailbox usera -emailaddresses @{Add=$Addr}

Script to see ActiveSync Device Statistics from a filtered Mailbox List.

Scenario: Customer wants to a list of all users with active mobile devices so they can see lastsuccesssync, devicepolicyapplied, etc of the devices
$Mailboxes = Get-CasMailbox -Filter {HasActiveSyncDevicePartnership -eq $True -and -not displayname -like “CAS_{*” -and -not displayname -like “Extest_*”} –ResultSize Unlimited
$Devices = $Mailboxes | %{Get-ActiveSyncDeviceStatistics –Mailbox $_.Identity}

$Devices | Export-CSV -Path C:scriptstest.csv