Exchange Server 2013 Tips and Tricks

Report
http://ignite.office.com
http://aka.ms/E15RTM
http://aka.ms/E15GA
http://aka.ms/ServiceGA
http://aka.ms/E15RTMCU1
http://aka.ms/E15RTMCU2
http://aka.ms/E15Servicing
Legacy Client Access Server Role
Hub Transport Server Role
Unified Messaging Server Role
Exchange Management Console
Exchange Control Panel
RPC/TCP Connectivity for Outlook Clients
Support for Outlook 2003
Legacy Information Store (store.exe)
Legacy database caching algorithm (DBA)
Microsoft Search
Public Folder databases and replication
Virus Scanning API (VSAPI)
Third-party integration with Information Store
Managed Folders
Ability to remove individual server roles
UM lookups using automatic speech recognition
Legacy Outlook Web App
S/MIME
Bottom reading pane
Distribution list moderation
Reply to messages sent as attachments
Access to shared email folders
Server Role Architecture
Client Access Server
Managed Store
Managed Availability
Search Foundation
Exchange Admin Center
Outlook Web App
Apps in Outlook Web App
LinkedIn integration
Contact linking
Multi-calendar views
Touch interface for mobile devices
Data Loss Prevention
In-Place Hold; In-Place eDiscovery
Integration with SharePoint and Lync
Site mailboxes
Unified contact store
Archive Lync content
Built-in Anti-malware protection
Batch mailbox moves
New site resilience configuration options
Modern Public Folders
Enhanced Caller ID support in UM
Workload Management
Exchange Team blog – http://aka.ms/EHLO
Exchange 2013 IT Pro forums - http://aka.ms/E15Forums
Exchange 2013 Developer forums - http://aka.ms/E15DevForum
Exchange 2013 KB RSS feed - http://aka.ms/Ex2013KB
Third-Party Exchange 2013 - forums
http://exchangeexchange.com/forum/
http://aka.ms/E15LIForum (LinkedIn)
http://forums.msexchange.org/forumid_4033/tt.htm
http://aka.ms/ExGForums (Google)
Office 365 forums - http://aka.ms/Office365Forums
Exchange documentation - http://aka.ms/E15CHM
Exchange 2013 poster - http://aka.ms/Ex2013APDL
DLP policy templates - http://aka.ms/ExDLPUpd
Office Visio stencils - http://aka.ms/O15Shapes
UM language packs - http://aka.ms/E15UMLP
EWS managed API 2.0 - http://aka.ms/EWSMAPI2
New | Remove-RPCClientAccess
New | Get | Set | Remove-RoutingGroupConnector
Test-SystemHealth
New | Get | Set | Test | Update-TeamMailbox and all other
Team Mailbox-related cmdlets
Set-MailboxServer’s MessageTracking parameters
Set | New-MailboxSearch’s SearchDumpster parameter
Get-LogonStatistics*
646 functions and cmdlets in Exchange 2010
937 functions and cmdlets in Exchange 2013 CU1
944 functions and cmdlets in Exchange 2013 CU2
Review the guidance - http://aka.ms/Ex2013PerfBlog
Gather data on existing environment, if any
Determine requirements that affect sizing
Calculate the requirements for Exchange
Determine scale, storage, resiliency requirements
Validate storage with Jetstress 2013
It is not an upgrade; it is a new calculator that uses a new server baseline for calculations
Includes a PowerShell script to automate DAG creation
Includes Client Access Server sizing
Includes transport sizing, factoring in message queue expiration and Safety Net hold time when
calculating the database size
Recommends multiple databases per JBOD volume
Supports three-datacenter deployment for DAGs
http://aka.ms/E2013Calc
http://aka.ms/Ex2013CalcRM
[email protected]
Verify performance and stability of your disk subsystem before putting your Exchange Server into a
production environment
Jetstress simulates the Exchange database and log file loads produced by a specific number of users
Use Performance Monitor, Event Viewer, and ESEUTIL in conjunction with Jetstress to verify that
your disk subsystem meets or exceeds the performance criteria you establish
Download from http://aka.ms/Jetstress2013
Tell us what kind of deployment you’re interested in
Answer a few questions about your environment
Then view Exchange deployment instructions created just for you
On-premises
Exchange 2007 upgrades, Exchange 2010 upgrades, and greenfield
Hybrid
Cloud
http://aka.ms/ExDeploy
Accelerated project delivery
Increased quality of delivery
Improved availability of solution (design targets 99.9% Service Level Target)
Alignment with Office 365 that enable hybrid deployments and cloud migrations
Downloadable tool to identify connectivity issues for Outlook, Lync, Office 365
Downloadable Microsoft Lync Connectivity Analyzer Tool also available
http://aka.ms/uucwj5
Paste in message headers and receive analysis of message transport information
http://www.ExRCA.com
http://aka.ms/MsgAnalyzer
http://aka.ms/outlookconnectivity
Simplified dashboard makes it easier for you quickly determine exactly what your users are
experiencing
Active Alerts provides a list of all outstanding alerts in your organization
Organization Health provides an overview of the overall service health in your organization
Server Health provides an overview of the health of individual servers in your organization
http://aka.ms/Ex2013MP
Replaces OCAT (Outlook Configuration Analyzer Tool)
Uses BPA framework
Scans Access, Excel, Outlook, PowerPoint, and Word
http://aka.ms/OffCAT
Traditional desktop view (3-column mouse-based UI)
Tablet view (2-column touch UI aka twide)
Phone view (1-column touch UI aka tnarrow)
https://<FQDN>/owa/?layout=tnarrow
https://<FQDN>/owa/?layout=twide
Default is 20% of Dumpster Quota
Learn what client made the last operation on the calendar item
Learn what action was last performed on a calendar item
View a change history of the calendar item
Quickly pivot on a well-known set of properties that are most important to calendar items
Allow user to quickly access full set of properties
An executive shows up to a meeting and is the only one there
You collect calendar logs from organizer and one attendee
You run analysis on collected logs to generate the timeline
And you find that the executive used some device to
edit a single meeting, and it caused their whole series to be deleted
Transport measures the rate of messages entering and leaving a queue and stores these values in
queue properties
You can use these values as an indicator of queue and transport health
Rate at which messages are entering the queue
Calculated from the number of messages entering the queue every 5 seconds averaged over the
last 60 seconds
(i1+i2+i3+i4+i5+i6)/6 where in is the number of incoming messages in 5 seconds
(o1+o2+o3+o4+o5+o6)/6 where on is the number of outgoing messages in 5 seconds
Represents the drain rate of the queue
O-I=V (OutgoingRate – IncomingRate = Velocity)
If V>0, messages leaving queue faster than they are entering (fast queue)
If V=0, messages leaving queue as fast as they are entering (balanced queue)
If V<0, messages entering queue faster than they are leaving (slow queue)
A queue that has a large negative Velocity, a large MessageCount value, a small OutgoingRate
value, and a large IncomingRate value indicates that the queue isn't draining properly
A queue with a negative Velocity that's almost zero that also has very small values for
IncomingRate, OutgoingRate, and MessageCount doesn't indicate a problem with the queue
Queue velocity exposed via Get-Queue
Identity
-------EX1\Submission
EX1\Unreachable
EX1\Shadow\12
DeliveryType
-----------Undefined
Unreachable
ShadowRed...
Status
-----Ready
Ready
Ready
MessageCount
-----------0
46
1
Velocity
-------0
0
0
RiskLevel
--------Normal
Normal
Normal
OutboundIPPool
-------------0
0
0
NextHopDomain
------------Submission
Unreachable Domain
ex2.e15demos.com
Identity
-------EX2\Submission
EX2\Unreachable
EX2\Shadow\12
DeliveryType
-----------Undefined
Unreachable
ShadowRed...
Status
-----Ready
Retry
Ready
MessageCount
-----------12
2
0
Velocity
--------0.19
-0.02
0
RiskLevel
--------Normal
Normal
Normal
OutboundIPPool
-------------0
0
0
NextHopDomain
------------Submission
Unreachable Domain
ex1.e15demos.com
It does not work with Exchange 2007
The Queue Viewer operation on Computer "Server" has failed with exception.
The error message is: Unknown error (Oxe043f4d)
Transport Service takes snapshot of queue every 60 seconds
Cannot be turned off
Logs to CSV text file at
\Program Files\Microsoft\Exchange\Server\V15\TransportRoles\Logs\Hub\QueueViewer\
Records any queues with messages (including internal queues)
Does not record empty queues, shadow queues, or poison queues
Logs the following information:
Next Hop
Next Key
Message Count
Deferred Message Count
Locked Message Count
Incoming Rate
Outgoing Rate
Velocity
Next Hop Category
Risk Level
Next Hop Connector
TLS Domain
Last Error
Data
Example queue log entry
QUEUE,EX1\6,Retry,DnsConnectorDelivery,contoso.com,(contoso.com)::1:1:9
b0e07:0::0;,11,0,0,0,0,0,External,Normal,9b0e07a0767946149b3c6c4162a0f4
da,,"451 4.4.0 Primary target IP address responded with: ""421 4.2.1
Unable to connect."" Attempted failove",,
SUMMARY,,,,,,,,,,,,,,,,,TotalMessageCount = 23; PoisonMessageCount = 0,
http://aka.ms/TRFileTypes
http://aka.ms/ExIFilters
Search Process: Microsoft Exchange Search (Microsoft.Exchange.Search.Service.exe)
Host Process: Microsoft Exchange Search Host Controller (HostControllerService.exe)
Worker Processes: NodeRunner.exe (x4)
Admin
Content
Index
Query
KQL cheat sheet: syntax and examples
Category
Boolean
AND, OR, NOT
Expression, string operands
(foo OR BAR)
(To:Jane AND From:Mark)
federated search
Free-Text keyword (see note)
String
federat* search
search fed*
Phrase keyword
Comparison operators
Property filters
String operators
String
"This is my search query"
>, <, <=, >=, =, ≠
String, supported value types
(received >= 1/1/2010)
<propertyname> <op>
<propertyvalue>
propertyname: exchange supported
property name
To:”Jane Doe”
op: supported property operator (
Supported operators include :, =, <,
>, <=, >=, <>, ..
propertyvalue: appropriate value type
(To:Jane AND From:Mark)
(received >= 1/1/2010)
Default for all string expressions.
Begins with
String
Proximity (see note)
NEAR
String
Federated NEAR Search
Synonym (see note)
WORDS
String
WORDS(TV, Television)
Include/Exclude
"+", "-"
String
E.g. (foo OR bar)
Determine if public folder mailbox has up-to-date copy of hierarchy
Get-PublicFolder \ -recurse -resultsize unlimited | where
{$_.contentmailboxname -eq "<PF Mailbox ID>"}
List only public folders with content
Get-PublicFolder \ -recurse -resultsize unlimited -Mailbox <PF Mailbox
ID> -ResidentFolders
Move public folder content between mailboxes
New-PublicFolderMoveRequest -Folders "\Folder1","\Folder1\Child1" TargetMailbox <PF Mailbox Identity>
Notes:
Subfolders underneath specified folders are not moved by default
Each folder to be move must be listed in the –Folders parameter
Only one move request at a time; use Remove-PublicFolderMoveRequest to remove
completed move requests
Recover deleted modern public folder
When a modern public folder is deleted, it is moved to \NON_IPM_Subtree\Dumpster_Root
To recover deleted modern public folder:
Set-PublicFolder "\NON_IPM_Subtree\Dumpster_Root\<FolderToRecover>"
–Path "\ParentFolder"
Get-HealthReport
Get-ServerHealth
*-MonitoringItemIdentity
*-ServerMonitoringOverride
*-GlobalMonitoringOverride
Exchange Server health summary
Get-HealthReport -Identity <ServerName>
Get-HealthReport <ServerName> -RollupGroup
Get-HealthReport <ServerName> -RollupGroup -HealthSet <HealthSetName>
(Get-DatabaseAvailabiltyGroup dag1).Servers | Get-HealthReport –RollupGroup
Get-ServerHealth –Identity <ServerName> | ft
Server,CurrentHealthSetState,Name,HealthSetName,AlertValue,HealthGroupName –auto
If a Health Set is Unhealthy, find out why
Get-ServerHealth -Identity <Server Name> -HealthSet <Unhealthy HealthSet>
All recovery actions can be collected using PowerShell:
$RecoveryActionResultsEvents = Get-WinEvent -ComputerName <Server> LogName Microsoft-Exchange-ManagedAvailability/RecoveryActionResults
You can use the events in the above format, but it is easier to work
with the event properties if you use PowerShell’s native XML format:
$RecoveryActionResultsXML = ($RecoveryActionResultsEvents | Foreachobject -Process {[XML]$_.toXml()}).event.userData.eventXml
Id - Action that was taken. Common values are RestartService, RecycleAppPool,
ComponentOffline, or ServerFailover
State - Whether the action has started (event 500) or finished (event 501)
ResourceName - The object that was affected by the action. This will be the name of a service for
RestartService actions, or the name of a server for server-level actions
EndTime - The time the action completed
Result - Whether the action succeeded or not
RequestorName - The name of the Responder that took the action
Why did the Replication service restart yesterday?
$RecoveryActionResultsXML | Where-Object {$_.State -eq "Finished" -and
$_.ResourceName -eq "MSExchangeRepl" -and $_.EndTime -like "2013-1010T21*"} | ft -AutoSize StartTime,RequestorName
StartTime
---------
RequestorName
-------------
2013-10-10T13:49:18.2113618Z
ServiceHealthMSExchangeReplEndpointRestart
Get Responder definitions
$DefinedResponders = (Get-WinEvent -ComputerName <Server> -LogName
Microsoft-Exchange-ActiveMonitoring/ResponderDefinition | %
{[xml]$_.toXml()}).event.userData.eventXml
To get the Monitor for the
ServiceHealthMSExchangeReplEndpointRestart Responder
$DefinedResponders | ? {$_.Name -eq
“ServiceHealthMSExchangeReplEndpointRestart”} | ft -a Name,AlertMask
Name
---------
AlertMask
-------------
ServiceHealthMSExchangeReplEndpointRestart
ServiceHealthMSExchangeReplEndpointMonitor
Get Monitor definitions
$DefinedMonitors = (Get-WinEvent -ComputerName <Server> -LogName
Microsoft-Exchange-ActiveMonitoring/MonitorDefinition | %
{[xml]$_.toXml()}).event.userData.eventXml
To get the Probes for the
ServiceHealthMSExchangeReplEndpointMonitor Monitor
Name
TargetResource
(Get-WinEvent -ComputerName <Server> -LogName Microsoft-Exchange--------------------ActiveMonitoring/ProbeDefinition | %
{[XML]$_.toXml()}).event.userData.eventXml | ? {$_.Name MSExchangeRepl
-like
ServiceHealthMSExchangeReplEndpointProbe/ServerLocator
“ServiceHealthMSExchangeReplEndpointProbe*”} | ft -a Name,
ServiceHealthMSExchangeReplEndpointProbe/RPC
MSExchangeRepl
TargetResource
ServiceHealthMSExchangeReplEndpointProbe/TCP
MSExchangeRepl
Get Probe error messages
$replEndpointProbeResults = (Get-WinEvent -ComputerName <Server>
-LogName Microsoft-Exchange-ActiveMonitoring/ProbeResult FilterXPath
"*[UserData[EventXML[ResultName='ServiceHealthMSExchangeReplEndpoi
ntProbe/RPC/MSExchangeRepl'][ResultType='4']]]" | %
{[XML]$_.toXml()}).event.userData.eventXml
Get a graphical view of output
$replEndpointProbeResults | select -Property
*Time,Result*,Error*,*Context,State* | Out-GridView
http://support.microsoft.com/kb/2823959
http://aka.ms/Ex2013Docs
http://aka.ms/EHLO
© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the
part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

similar documents