Exchange Server Admin Troubleshooting
Exchange Server Admin Troubleshooting
Admin Troubleshooting
Instructor Guide
Contents
Module 1: Setup Changes
Document Overview................................................................................................1
Setup Changes .........................................................................................................2
Setup Architectural Changes ...................................................................................3
Setup Actions Require New Active Directory Permissions ....................................7
New Setup Prerequisite Checks:............................................................................21
Lab 1.1: Finding renamed, moved, or deleted groups ...........................................26
Cluster-related prerequisite checks........................................................................31
Exchange System Manager-only installation prerequisites ...................................33
2000 to 2003 Setup and Upgrade Scenarios blocked.............................................36
New Features/Components in Setup:.....................................................................39
Setup Changes .......................................................................................................44
Security improvements to setup: ...........................................................................49
Troubleshooting Exchange Server 2003 setup failures: ........................................53
General Log Flow..................................................................................................57
Lab 1.2: Logparser and examination of progress logs...........................................68
Lab 1.3: Applying troubleshooting concepts .........................................................70
Appendix A: Answers ...........................................................................................74
Acknowledgments .................................................................................................76
Module 2: New Administrative Features
New Administrative features in System Manager and Active Directory.................1
New Exchange System Manager Features...............................................................2
New Diagnostics......................................................................................................7
Public Folder Store and Public Folder Tree...........................................................15
Exchange HTTP Virtual Server.............................................................................20
Mailbox..................................................................................................................26
Module 3: Move Mailbox Wizard
Dependencies...........................................................................................................4
General Overview....................................................................................................4
Troubleshooting.....................................................................................................10
Tools ......................................................................................................................18
Labs .......................................................................................................................20
Acknowledgments .................................................................................................23
Module 4: Troubleshooting the Recovery Storage Group
What is the Recovery Storage Group?.....................................................................3
Creating a Recovery Storage Group ........................................................................7
Adding a Mailbox Store to the Recovery Storage Group ......................................10
Active Directory Attributes ...................................................................................17
Lab 4.1: Create a Recovery Storage Group and review the Active Directory
attributes ................................................................................................................20
Overriding the Recovery Storage Group ...............................................................25
Restoring the data ..................................................................................................27
Recovering Exchange 2000 Server Mailbox Stores ..............................................33
Exmerge.................................................................................................................35
Known issues with Exmerge .................................................................................48
Exercise 2: Recovery Storage Group Scenario 1...................................................50
Exercise 3: Recovery Storage Group Scenario 2...................................................54
Details for Exercise 3: Disaster recovery after a Store Crash using the Recovery
Storage Group........................................................................................................55
Acknowledgments .................................................................................................58
Module 5: Clustering
Resource Dependencies...........................................................................................1
Cluster Service Account Permissions......................................................................5
MsExchange_NodeState..........................................................................................9
DNS registration/Kerberos ....................................................................................12
AntiAffinityClassNames .......................................................................................16
Mount Point Drives ...............................................................................................22
Creating an Exchange Virtual Server ....................................................................33
Upgrading an Exchange Virtual Server to Exchange 2003 ...................................56
Removing an Exchange Virtual Server .................................................................64
Lab 5.1 : Clustering ...............................................................................................89
Module 6: Deployment Tools and ADC Tools
Overview .................................................................................................................1
Lesson 1: Deployment Tools...................................................................................2
Lesson 2: ADC Tools ............................................................................................39
Lab 6.1 Exchange 2003 ADC replication featuring Deployment and ADC Tools 71
Appendix A: Sample log files ..............................................................................86
Acknowledgments ...............................................................................................107
Module 7: Exchange Directory Components
Overview .................................................................................................................1
Lesson 1: Changes to the ADC................................................................................2
Lab 7.1: Troubleshooting LDAP queries...............................................................12
Lesson 2: DSAccess Usage and troubleshooting...................................................16
Lesson 3: Changes in DSAccess ...........................................................................28
Lab 7.2: Exomatic tool ..........................................................................................37
Lesson 4: Other Directory Changes.......................................................................38
Lab 7.3: Per-Attribute change troubleshooting......................................................59
Lab 7.4: Post-Setup and SRS replication troubleshooting.....................................59
Appendix A: Numeric registry keys used by DSAccess and their values .............68
Acknowledgments .................................................................................................70
Module 8: Cross-Forest/Multi-Forest
Overview .................................................................................................................1
Lesson 1: The Cross-forest Specification ................................................................2
MIIS Components ...................................................................................................8
Lab 8.1: Getting to know MIIS 2003 and GAL Sync Management Agent ..........26
Lesson 3: Cross-Forest SMTP Mailflow ..............................................................32
Lesson 4: InterOrg Public Folder Replication .......................................................35
Lab 8.2: Cross Forest Practice.............................................................................47
Appendix A GAL Sync Log and Error Messages .................................................50
Appendix B: GAL Sync Mapping Types ..............................................................54
Appendix C: GAL Sync Provisioning Rules .........................................................67
Acknowledgments .................................................................................................76
Module 1: Setup
Changes
Contents
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.
Microsoft, MS-DOS, Windows, Windows NT, Active Directory, ActiveX, Excel, Exchange Server
5.5, Exchange 2000 Server, Exchange Server 2003, Internet Explorer, Internet Information Server,
Word are either registered trademarks or trademarks of Microsoft Corporation in the United States
and/or other countries.
The names of actual companies and products mentioned herein (Groupwise, Lotus cc:Mail, Lotus
Notes) may be the trademarks of their respective owners.
Document Overview
Prerequisites
Experience with installing Exchange 2000 into Exchange Server 5.5 sites.
Experience with creating an Exchange Virtual Server (EVS) on Windows
2000 clusters
Setup Changes
This topic discusses differences between the setup architecture from the last
product, as well as new features and work items in the setup process. Those
accustomed to supporting Exchange 2000 Server will expect some of the same
product features and behaviors to exist in Exchange 2003. The goal of this topic
is to cover any “gotchas” in differences between the two products that would
otherwise cause difficulty in support.
required to have the Active Directory Connector (ADC) installed when running
forestprep.
Troubleshooting temporary org object creation: Should there be any problems
creating this GUID, it will most likely be a permissions issue, caught at the pre-
requisite stage with a descriptive error message. If this is the case, one should
ensure that the logged-on user has full control privileges on the cn=Microsoft
Exchange,cn=services,cn=configuration,dc=<forest root DN> container. (By
default, Enterprise Admins has this permission). Although it is possible to
manually-create the temporary org object, it is neither recommended nor
supported since it would also require manually creating scores of child objects
and setting their permissions appropriately.
In Exchange Server 2003, the “Installation Type” prompt has moved to the
server setup mode. That is, the prompt will only occur when running setup.exe
without switches, and it will only occur once: when the first Exchange Server
2003 machine is being installed into a forest with no pre-existing Exchange
organization object. (The Exchange organization object is located at
(cn=<orgname>,cn=Microsoft Exchange, cn=services, cn=configuration,
dc=<dn of the forest root>.) If the installer chooses to create a new
organization, the placeholder orgname is renamed to whatever the installer
desires. If the installer chooses the Exchange 5.5 coexistence option, the
temporary orgname is renamed to match the Exchange 5.5 organization name.
In Exchange Server 2003, the 5.5 (Osmium) synchronization process with
Active Directory will occur only once, so only a permanent config CA comes
into existence. (i.e. no temporary config CA will exist). Table 1.1 outlines the
different states of the organizational object that can exist in Active Directory:
Table 1.1: Creation flow for Exchange Organization object in Active Directory
This architectural change does not affect manual creation of first Administrative
Group through System Manager (per 215930). However, when customers
launch Exchange System Manager to manually create their administrative
group, they might be surprised to see the GUID, {335A1087-5131-4D45-
BE3E-3C6C7F76F5EC}.
Note: When the temporary organization object exists, you must not run
Exchange 2000 Server setup. Although it does not get blocked through a pre-
requisite check, later in the setup process the Exchange 2000 Server setup
wizard does not understand the GUID organization object, and the installation
is likely to fail catastrophically.
Because there are several setup modes and component options, setup will
require different combinations of Active Directory permissions, depending
upon the detected topology. For example, setup operations dealing with a Site
Replication Service (SRS) still require Exchange Full Administrator at the
Organization level. Table 1.2 outlines the required permissions of the person
being logged on.
Setup Action Active Directory Permission(s) required
Install first Exchange 2003 server in a domain Exchange Full Administrator at Organization level
Install first Exchange 2003 server into a 5.5 site (SRS-
Exchange Full Administrator at Organization level
enable)
Uninstall/reinstall Exchange 2003 with an SRS Exchange Full Administrator at Organization level
First “ForestPrep” in forest [with schema update] or
ADC’s Setup when older schema is detected or Enterprise Admin [+ Schema Admin]
ADC’s setup used with the explicit “schemaonly” switch
Subsequent “ForestPrep” Exchange Full Administrator at Organization level
“DomainPrep” Domain Administrator
Install a server to have first instance of a
Exchange Full Administrator at Organization level
Groupwise/Lotus Notes connector
Install, maintain or remove server containing Key
Enterprise Admin
Management Server
Install, maintain or remove server with SRS enabled Exchange Full Administrator at Organization level
Exchange Full Administrator at Admin Group level +
Install additional server (non-SRSs, clusters EVSs)
machine account added to Domain Servers group
Run maintenance mode on any server (except Key
Exchange Full Administrator at Admin Group level
Management Server or SRS enabled)
Remove a server (no SRS present) Exchange Full Administrator at Admin Group level +
remove machine account from Domain Servers group
Last Saved: 7/24/2003 1:55 AM
Last Printed: 7/24/2003 12:55 PM
8 Module 1: Setup Changes
after setup
Remove last server in org Exchange Full Administrator at Organization level
Apply service pack Exchange Administrator at Admin Group level
Writes
All ACTRL_DS_CONTROL_ACCESS 0x00000100
Extended
Rights
Create All Create All ACTRL_DS_CREATE_CHILD 0x00000001
Child Child
Objects Objects
Delete All Delete All ACTRL_DS_DELETE_CHILD 0x00000002
Child Child
Objects Objects
ACTRL_DS_LIST_OBJECT 0x00000080
List Contents
Organization Container
cn=<org>,cn=Microsoft Exchange,cn=Services,cn=Configuration,dc=<domain>
List Contents
ACTRL_DS_LIST_OBJECT
List Contents
ACTRL_DS_LIST_OBJECT
List Contents
ACTRL_DS_LIST_OBJECT
List Contents
ACTRL_DS_LIST_OBJECT
List Contents
ACTRL_DS_LIST_OBJECT
List Contents
ACTRL_DS_LIST_OBJECT
siteAddressing
ACTRL_DS_LIST_OBJECT
Addressing Container
cn=Addressing,cn=<org>,cn=Microsoft Exchange,cn=Services,cn=Configuration,dc=<domain>
Read Permissions
Administrative Group
cn=<admin group>,cn=Administrative Groups,cn=<org>,cn=Microsoft Exchange,cn=Services,cn=Configuration,dc=<domain>
Default TLH
cn=Public Folders,cn=All Folder Hierarchies,cn=<admin group>,cn=Administrative Groups,cn=<org>,cn=Microsoft Exchange...
Connections Container
cn=Connections,cn=<routing group>,cn=Routing Groups,cn=<admin group>,cn=Administrative Groups,cn=<org>...
Servers Container
cn=Servers,cn=<admin group>,cn=Administrative Groups,cn=<org>,cn=Microsoft Exchange,cn=Services...
Server Object
cn=<server>,cn=Servers,cn=<admin group>,cn=Administrative Groups,cn=<org>,cn=Microsoft Exchange,cn=Services...
During server install (if the server is NOT a cluster Virtual Machine)
Protocols
Container
cn=Protocols,cn=<server>,cn=Servers,cn=<admin group>,cn=Administrative Groups,cn=<org>,cn=Microsoft Exchange...
fsdspermUserSendAs
fsdspermUserMailboxOwner
fsdspermUserSendAs
fsdspermUserMailboxOwner
fsdspermUserMailboxOwner
MTA Object
cn=Microsoft MTA,cn=<server>,cn=Servers,cn=<admin group>,cn=Administrative Groups,cn=<org>...
groupType
displayName
2000
Compatibl
e Access”
group
Exchange Enterprise Servers X Read Permissions “
List Contents
ACTRL_DS_LIST_OBJECT
List Contents
ACTRL_DS_LIST_OBJECT
List Contents
ACTRL_DS_LIST_OBJECT
List Contents
ACTRL_DS_LIST_OBJECT
AdminSDHolder Container
cn=AdminSDHolder,cn=System,dc=<domain>
Installation Directory
C:\Program Files\Exchsrvr (by default; may be chosen during setup)
For this folder, setup reads the ACL from the “Program Files” folder and duplicates it; the permissions shown below are those that exist by default on Program
Files.
Authenticated Users X X Read & Execute
Mailroot Directory
...\Exchsrvr\Mailroot
Exchweb Directory
...\Exchsrvr\exchweb
Exchweb\bin Directory
...\Exchsrvr\exchweb\bin
Exchweb\bin\auth Directory
...\Exchsrvr\exchweb\bin\auth
Exchweb\img Directory
...\Exchsrvr\exchweb\img
Exchweb\controls Directory
...\Exchsrvr\exchweb\controls
Exchweb\cabs Directory
...\Exchsrvr\exchweb\cabs
Exchweb\views Directory
...\Exchsrvr\exchweb\views
Exchweb\help Directory
...\Exchsrvr\exchweb\help
Marker Checks
During server setup, if the installer chooses to join an Exchange 5.5 site,
additional marker checks are enforced. This means that setup will check to see
if the deployment tools have been executed as far as step 2 in the ADC Tools
snap-in. (That step should have written the completion marker,
ADCUserCheck, to the description attribute of cn=Microsoft Exchange,
cn=services, cn=configuration, dc=<forest root DN> object in the configuration
naming context.) If the marker exists, setup will continue; otherwise, the
following error is displayed:
To ensure that an admin reads and performs the preparatory steps using the
deployment and ADC tools, rather than attempting to bypass the process
blindly, setup enforces this check when the first Exchange 2003 joins an admin
group containing any Exchange 5.5 directories (which include SRSs). Marker
checks are not performed on additional installs into mixed AGs where the 1st
Exchange 2003 has already joined an Exchange 5.5 site.
Note that the string “- Error: ADC Tools were not run in your organization.” Is
a variable string (%s) which can be replaced if other conditions are satisfied.
For example, if the ADCUserCheck marker exists, but other markers do not,
then the error message follows this format:
“Setup detected one or more of the following conditions that may affect your
Exchange deployment. Microsoft recommends resolving these conditions
before continuing this installation:\r\n%s\r\nPlease refer to your Exchange
Troubleshooting Tip If the customer is halted with the blocking error message,
use ADSI Edit or LDP.exe to view the description attribute. This is where any
of the three completion markers may exist. If ADCUserCheck is present, check
to see if its timestamp is older than two weeks. Note that if you’re not using
credentials of a person who has full exchange org permissions, you may not be
able to see this attribute. If you do not have the marker present, there are three
ways to populate it:
Manual entry through ADSIEdit
Running exdeploy.exe from command line, using the /adcusercheck switch.
(If 5.5-Active Directory objects are not in sync, this method will populate
the %S string with a warning indicating that objects have not replicated.
However, setup will not be blocked.)
Running ADC Tools’ Step 2 button, or Step 4 (Verify button)
Setup will not install until all ADC services are upgraded to Exchange
2003 version
This check ensures that no Windows 2000 ADC services exist. The reason
behind this is because Windows 2000 ADCs, when running public folder
connection agreements, have been known to cause corruption on public folders.
This prerequisite is checked on each run of Exchange 2003 setup.exe when no
switches are specified. Although it may not seem necessary to execute this
prerequisite check when the org is native mode, existing ADC installations will
be checked, nevertheless.
If the customer has a very large directory that is difficult to search visually, you
can search for the objectGuid of the Exchange Domain Servers/Exchange
Enterprise Servers groups by following these steps:
1. Power-on the virtual Machine “Solo” (Administrator/password)
3. Ask a lab partner or instructor to hide either Exchange Domain Servers
group or Exchange Enterprise Servers group in one of the organizational
units (OUs), and rename it. This will simulate supporting a large OU
hierarchy with thousands of users, where it would be painstakingly difficult
to determine where the object was moved.
4. If you were to run setup at this time, you would receive the prerequisite
message blocking setup.
5. Use ADSI Edit or a similar tool to view the properties of the domain
Recipient Update Service object (CN=Recipient Update Service
(STANDALONE),CN=Recipient Update Services,CN=Address Lists
Container,CN=Microsoft,CN=Microsoft
Exchange,CN=Services,CN=Configuration,DC=<forest root DN>)
6. Locate the following attributes on the domain Recipient Update Service,
since they contain the GUIDs for the Exchange Enterprise Servers and
Exchange Domain Servers groups, respectively:
msExchDomainLocalGroupGuid, msExchDomainGlobalGroupGuid. Copy
the values they contain. Let us assume that
msExchDomainLocalGroupGuid was {1E519285-D987-42C8-BE35-
8DC57F85F270}
7. Convert the GUIDs from string to Hex format. In the above example,
{1E519285-D987-42C8-BE35-8DC57F85F270} becomes
\85\92\51\1E\87\D9\C8\42\BE\35\8D\C5\7F\85\F2\70
8. In Active Directory Users and computers, right-click on the domain object,
and choose FIND. Do a custom search, and select the advanced tab.
9. Enter an LDAP query similar to the following:
objectGUID=\85\92\51\1E\87\D9\C8\42\BE\35\8D\C5\7F\85\F2\70 Where
“\85\92\51\1E\87\D9\C8\42\BE\35\8D\C5\7F\85\F2\70” would be replaced
by the values you converted in step 7.
10. Hit the FIND button, and you will be presented with the new name of the
group (if it has been renamed).
11. To determine the OU in which it resides, choose the “object” property sheet
to determine its changed location. If there are no objects found, this means
the group(s) have been deleted. Rerunning domain prep recreates these
groups.
INSTALLING EVS:
- network name resource must be online
REMOVING EVS:
- network name resource must be online
- System Attendant resource must be offline
UPGRADING EVS:
- network name resource must be online
- System Attendant resource must be offline
blocks this setup switch if the machine is a node of a cluster, thus customers
may only run normal setup. Additionally, the normal setup routine on a cluster
node no longer presents a message indicating that setup will install the cluster-
aware version, whereas the Exchange 2000 setup version would popup that
dialog.
For both Exchange 2000 Server and Exchange Server 2003, the component
selection screen allows for the granularity to install the System Management
Components without the messaging and collaboration components. This is what
is called an “Exchange System Management-only” install mode, and Exchange
administrators use this mode to administer their Exchange servers from their
workstations.
Previously for Exchange 2000 System Manager-only installs, customers were
only required to have the Windows 2000 administration package (which
includes Active Directory Users and Computers) to be installed onto their
Windows 2000 Professional edition operating systems. On Windows XP
operating systems, Exchange 2000 System Manager could not be installed
without hotfix q815529. This was due to the fact that the Exchange 2000 setup
engine, using a prerequisite check, searched for the GUID of the Windows
administration package. When the Exchange 2000 Server setup engine was
built, it only knew to check for the Windows 2000, and not Windows 2003,
administration package.
For a successful Exchange Server 2003 System Manager-only mode
installation, the following operating system prerequisites must be met:
Windows XP SP1:
Internet Information Services Snap-In component (In Add/Remove
Programs)
SMTP Service component (In Add/Remove Programs)
SMTP Service should be disabled after service is installed (reason for
disabling is that SMTP snap-in is only needed, and not the service itself.
Additionally, leaving SMTP service running leaves open another possible
point of attack)
WWW Service (SMTP requires this) should be disabled after service is
installed (reason being that it is a security threat)
Windows 2003 AdminPack (provides NNTP snap-in and Active Directory
Users and Computers snap-in)
Last Saved: 7/24/2003 1:55 AM
Last Printed: 7/24/2003 12:55 PM
34 Module 1: Setup Changes
Windows 2003
Internet Information Services Manager component (In Add/Remove
Programs)
Note Exchange 2000 System Manager may only be used to view (read-only)
Event ID 1069
Source: Cluster Service Clussvc
Category: 4
Type: Stop
Description: Cluster resource "<ResourceName>"
With Exchange 2003 installed on Windows 2000, the existence of the network
name will not prevent the Exchange virtual server’s network name from
starting. This change is a side-affect of the resource’s private property requiring
Kerberos support, because when the system attendant is created, it sets the
requirekerberos property on the network name resource. With Windows 2003
(regardless of whether Exchange 2003 is installed), the default behavior is such
that ANY network name resource will automatically create a corresponding
computer object.
b) Wait for the following event ID to be generated when a mobile user attempts
to access their mailbox through Outlook Mobile Access:
Event Type: Warning
Event Source: MSExchangeOMA
Event Category: (1000)
Event ID: 1101
Date: 6/12/2003
Time: 2:33:58 PM
User: N/A
Computer: BTSLABFE
Description:
Outlook(R) Mobile Access Browse Application could not initialize its
performance monitor counters because of the following error: The
requested Performance Counter is not a custom counter, it has to be
initialized as ReadOnly.
Thus, you may possibly use these commands to clean up a server you suspect
has incompatible .NET Framework versions. Then, to install ASP.NET as a
component:
1. Start/Control Panel/Add or Remove Programs/Add/Remove Windows
Components/Application Server/ASP.NET.
2. Check the check box and install it.
3. To enable ASP.NET:
4. Run Internet Information Services (IIS) Manager;
5. Navigate to "Web Service Extensions".
6. Select "ASP.NET v1.1.4322" and click on “Allow”
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET
Files).
Setup Changes
M: drive removed
In Exchange 2000 Server, the M: drive caused a lot of problems, as it was
easily exposed through explorer and customers adopted the impression that
mailbox and public folder permissions could be manipulated through this file
system interface. Furthermore, file-based antivirus and backup software would
manipulate objects in the M: drive, accidentally corrupting messages or setting
the archive bits on them such that they would not be properly accessible.
Therefore, Exchange Server 2003 no longer presents the Exchange Installable
File System as drive letter M. Reclaiming the M: drive is possible by enabling
this registry parameter, although it is strongly discouraged:
Path:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EXIFS\Par
ameters\
Parameter: DriveLetter
Type: String
Value: M
The M: drive should only be exposed for gaining access to non-MAPI file data
(such as editing an .asp that executes out of the store). You should not share out
portions of the M: drive for SMB user access (instead, you should use Web
Folders).
Note Enabling the Installable File System drive will lead to prompts for
The following Outlook Web Access Themes files will be renamed on the CD:
Setup\i386\exchange\exchweb\themes\0\*.0
Setup\i386\exchange\exchweb\themes\1\*.1
Setup\i386\exchange\exchweb\themes\2\*.2
Setup\i386\exchange\exchweb\themes\3\*.3
Setup\i386\exchange\exchweb\themes\4\*.4
Amap.tlb.0
Mapmex.tlb.0
All the Outlook Mobile Access resources files will be renamed in the CD:
Setup\i386\Exchange\Oma\Browse\bin\<Culture_Lang>\*.<Cultur
e_Lang>
ChooseDC switch
The Exchange 2003 SETUP.EXE program has a new switch; /choosedc. This
allows you to specify which domain controller should be using during the
installation process for reading and writing directory information. Its command-
line syntax is:
Setup.exe /choosedc name_of_DC
Tip If you need to confirm that a customer typed the /chooseDC switch
properly, search the progress log for this string (without the servername) to
verify:
If the /chooseDC switch is used, but does not have a server name after the
switch, then this window appears:
If you are upgrading, you can remove the Exchange Full Admin right from the
cluster service account once you have upgraded all your servers to Exchange
2003.
Where to start:
There are many different ways setup can go wrong, as there are many
distributed processes occurring on the network environment to complete the
task. Although the deployment tools avoid many of the directory and DNS mis-
configuration problems of past Exchange 2000 Server experiences, problems
can still occur. Therefore, you may find that traditional Exchange 2000 Server
troubleshooting methods to still apply. Much of this begins with reading from
the application event log to determine whether the setup completed, or if the
problem logged by the setup program is consistent with the customer’s problem
description. A minor new feature in Exchange Server 2003 is the improvement
on informational events from the source MSExchangeSetup, and you can
expect to see the following at the end of each successful setup session:
Event Category: Microsoft Exchange Setup
Event ID: 1001
Description: Exchange Server setup (build 6885) completed
successfully.
You should examine the event, error, and setup.log files located in the \Program
Files\Microsoft Integration\exchsrvr\logs folder. The setup.log file will tell you
which components were selected to be installed, as they are not easy to glean
from the progress log (discussed below).
The Exchange 2003 setup engine is not much different from the Exchange 2000
setup process, which was designed to tolerate minor errors. If a minor error
occurs during installation, you can correct the cause of the error and continue.
In fact, Setup attempts to run as many checks as possible before the actual
installation takes place. When you are presented with the component selection,
you can determine whether errors occurred during the initial checks. If you see
four dashes (----) adjacent to a component instead of Install, it usually means
that an error message will occur if you try to perform an action (Install,
Remove, and so forth) on that component. The error messages at this stage
provide useful information about what the error might be. Setup may be unable
find installed prerequisite services, such as NNTP and SMTP, or the installer
doesn’t have the permissions to run setup. Thus, when selecting the install
action, you will be warned of the problem.
If the initial Setup checks do not uncover an error, and you proceed to the later
stages of setup, a catastrophic failure occurs. Usually, you are notified in which
component or action the error occurred, and then given a hexadecimal error
number; for example, 0xC0070430. If you encounter such an error, try clicking
Retry because a transient error may have occurred on either the local computer
or network. For example, the error code earlier in this paragraph indicates that
Setup attempted to install a service that already exists. You might get this error
if you are reinstalling the server after a failed attempt. If you are not proceeding
in Setup after you click Retry, use the Knowledge Base to see if the error is
known.
Your next step is to look at the progress log in the root directory of your system
partition. Exchange 2003 setup will always generate or append to the Exchange
Server Setup Progress.log file. In cases where you are joining the first
Exchange 2003 server to an Exchange 5.5 site, the SRS and configuration
connection agreement must be created. Any replication errors between Active
Directory and the SRS would appear in the Active Directory Connector.log file.
The progress log contains extremely detailed lists of all functions called and the
results of the Setup process. Because you need the source code to understand
the function names, not everything in the progress log is recognizable.
However, by viewing the contents of a log file, you can discover reasons why
Setup failed.
Progress logs are concatenated. This means that all Setup attempts are recorded
in one long file, so it is best to go to the end of the file and work backwards.
Just plant the cursor at the last byte of the progress log, and search upwards for
errors. Some useful keywords to search on are the word “failed,” and snippets
of text/error codes from popup dialogs during the setup session, such as
“0xC0070430” from the previous example.
Note that setup errors can be either soft or hard, and both kinds of errors appear
in the logs. Soft errors are ignored by the Setup process, and you will not see a
visual indication of them in the user interface. Here is a prime example of a soft
error:
[09:49:41] ScGetClusterSvcDir
(l:\admin\src\libs\exsetup\exmisc.cxx:2339)
Error code 0XC0070424 (1060): The specified service
does not exist as an installed service.
Interestingly, you see the file name and path to the source code in these errors.
One of the most interesting sections of the progress log is the following:
The most important information included in this excerpt concerns the domain
controller from which the server reads Active Directory. You can also see the
schema master here, so if you receive an error saying that Setup cannot contact
the schema master, you can find the computer name of the schema master and
try to contact it manually.
Short names are used frequently in the logs. It helps if you understand some of
them, such as the following:
Whether the installation process is successful or unsuccessful, the last entry in
the log indicates that the Setup process is being removed from memory, and
looks something like the following:
[16:03:46] CComBOIFacesFactory::QueryInterface
(K:\admin\src\udog\BO\bofactory.cxx:52)
Error code 0X80004002 (16386): No interface.
The log files may provide more information than you need. Fortunately, there is
a tool called LogParser (\\exutils\exes\logparser\2003) that reads the progress
logs and presents them to you in a format that is easier to read. This does not
mean that LogParser translates errors, but it does show you the individual
installation attempts and categorizes the errors.
New to Exchange 2003 is this new entry that appears in all progress logs.
Logparser sees it as a “hard error,” but it may be safely ignored:
GetServerAppletalkAddress
(f:\df6803\admin\src\udog\excommon\ptudutil.cxx:1917)
Error code 0X00273F (10047): An address
incompatible with the requested protocol was used.
In a full length setup log instance (a log instance from a successful setup), the
general, high-level flow of logged information is as follows (colors stand for
phases of setup: Initialization (plum/burgundy), PreSetup (orange), Setup
(blue), PostSetup (red)
PreSetup
Setting installation action on selected components
OrgPrep actions (ForestPrep, DomainPrep), as appropriate
Stopping of services
Creation of file copy queues
File copy
SetUp
Installation of components/subcomponents
o Registry entries
Terminology
The progress log will be scattered with component names or their nicknames, as
well as notes from prior versions of Exchange. Use the following table to
decipher what a progress log is trying to check:
55 = Exchange Server 5.5
Osmium = Exchange Server 5.5
Oz = Exchange Server 5.5
Configuration Information
One of the first places to look for an idea of how Exchange Setup interpreted
your domain, org, and accounts is in the configuration information section of
the log. The configuration information looks like this:
With the configuration information, a user can tell which is the Schema
operations master setup is trying to contact, which domain controller setup has
contacted, what domain it thinks it is a part of, and often what account has been
granted installation permissions (PTAdministratorAccount).
A prerequisite failure will occur in the initialization phase of setup, and looks
like this:
[04:12:39] Prerequisites for Microsoft Exchange Messaging
and Collaboration Services failed: Multiple components cannot
be assigned the requested action(s) because:
- Setup is unable to access the Windows 2000 Active Directory
- Failed to look up the Windows 2000 site to which this
computer belongs. Please verify that your computer is
configured with correct site information and is in a Windows
2000 domain where the domain controller is reachable.
If a user has successfully launched setup, satisfying all the Exchange setup
prerequisites, there are several kinds of setup errors that are logged to the
progress log, some of which are expected. Whenever setup attempts to perform
an action, and that action fails, an error is returned. In many cases we expect
failure, so you will see many errors logged like this:
[16:05:11] CService::ScQueryServiceConfig
(f:\df6885\admin\src\libs\exsetup\service.cxx:539)
Error code 0XC0070424 (1060): The specified service
does not exist as an installed service.
[16:05:11] Service = 'MSExchangeSRS'
CServiceManager::ScGetServiceInfo
(f:\df6885\admin\src\udog\setupbase\tools\svcmgr.cxx:415)
Error code 0XC0070424 (1060): The specified service
does not exist as an installed service.
[16:05:11] Service = 'MSExchangeSRS'
CServiceManager::ScStartService
(f:\df6885\admin\src\udog\setupbase\tools\svcmgr.cxx:481)
Error code 0XC0070424 (1060): The specified service
does not exist as an installed service.
[16:05:11] Failed to start the SRS on server DARKWINGDUCK
[16:05:11] CAtomSRS::ScRemoveAllDRCsAssociatedWithLocalServer
(f:\df6885\admin\src\udog\exsetdata\components\server\a_srs.cx
x:2443)
Error code 0XC0070424 (1060): The specified service
does not exist as an installed service.
[16:05:11] Leaving
CAtomSRS::ScRemoveAllDRCsAssociatedWithLocalServer
[16:05:11] === IGNORING PREVIOUS ERRORS ===
ScRemoveAllDRCsAssociatedWithLocalServer called from
CAtomSRS::ScRemoveDSObjects
(f:\df6885\admin\src\udog\exsetdata\components\server\a_srs.cx
x:1967)
The operation has completed successfully.
In these cases, setup may be trying to query the status of a service it has not yet
created, or starting a service that is not installed, or trying to clean up directory
objects that do not exist.
However, in the case of a fatal string of errors, you might see something more
like this (notice the component error message, in bold):
"x:\Exchange Server
2003\rtm\6623.0\server\rtl\usa\setup\i386\exchange\adc" -
console -RO -CA "cn=Config CA_FirstAG_EXSETUPLAB57,cn=Active
Directory Connections,cn=Microsoft
Exchange,cn=Services,cn=Configuration,dc=alextestdom22,dc=exte
st,dc=microsoft,dc=com" -dc EXSETUPLAB64 -log 2 "D:\Active
Directory Connector.Log"
Strategy Tip for any Error Messages: If you have an instance of setup
running, and are being presented with an error message, you can open up the
setup log while setup is still running and skip right to the end of the log, which
should have as its last entry the error which generated the UI error message.
Highlight the last log entry, and several lines above it (look for the closest
Entering CAtom… line above the error entry. It will contain the name of
the function being called by setup at the time of the failure, which is very useful
for tracking down the section of code in which the error occurred), and cut and
paste that section into a separate text file. By grabbing the error text in this
way, you will make it easier to find in the log later. If you instead continue
with the setup, allowing setup to complete, the error message can be difficult to
find, “hidden” as it is in the body of the log file.
Strategy for “Retry” dialog boxes: If your setup is hung with a retry/cancel
pair of buttons, you are often at a recoverable state if the problem is a transient
network error (as mentioned in the Troubleshooting Exchange 2003 failures
section). A bad entry in a DNS cache (i.e. negative DNS caching), would be an
example of a transient error that can go away if not retried in ten minutes.
However, if resolving the root cause requires user interaction, and if the errors
in the progress log are vague, there are some utilities you can use to assist in
assisting setup to recover:
Use network monitor to capture packets between the installing server, any
Exchange 5.5 servers in the site, the ADC server, and the domain controllers
and global catalogs chosen by setup (gleaned from the progress log’s
configuration information section). Once the capture filter is set, start the
capture and immediately hit retry. The server will usually make the same calls
(hopefully across the wire) and you can later examine the capture to determine
where the problem resides. To keep the number of frames small so that you
need not examine extraneous traffic, immediately stop the capture as soon as
the “retry/cancel” dialog returns.
If the error message relates to Active Directory Service Interfaces (ADSI), or if
the error code in the progress log is accompanied by an LDAP protocol error
similar to those listed in 218185 - Microsoft LDAP Error Codes, the directory
service is probably from a domain controller. In the case where the problem is
reproducible, running setup again using the /chooseDC switch is used to
narrow-down the domain controller choices, thereby making it easier to
decipher the netmon capture.
If the error code or the surrounding progress log entries mention ‘DAPI’, then
you can focus on the Exchange 5.5 directory service. The root cause could just
be a simple permissions setting on a naming context. However, in most cases,
the root cause is with IIS, WMI, or some other operating system-level
component. Use the clues from the progress log to initiate general
troubleshooting in those areas, and contact a platforms specialist in case KB-
hunting results in nothing fruitful.
Strategy for common “Exchange 2000” errors: Often, error messages that
you search upon will produce search results matching Exchange 2000 errors.
Do not discount the errors, as Exchange 2000 and Exchange 2003 setup engines
are essentially the same. For example, if you receive a 0xC103798A error
during Exchange 2003 setup, and setup is having problems registering a DLL,
you may find Exchange 2000 KB article Q245029. Do attempt the workaround
in that article, even if the documented DLL is different. It is likely that there is
still an Exchange 5.5 exchmem.dll present on the server.
0xC103798A is an EXTREMELY generic error, and so a Knowledge
Base resolution should never be used after diagnosing that error code
alone. This error means that an internal component has failed, and thus
you must ALWAYS dig within the progress log when troubleshooting
this. Customers will typically only use the error code before searching
in KB, and so their initial problem reports may mislead you by quoting
from the KB. Thus, you should always be diligent in obtaining the
progress log when troubleshooting.
0X80072030 is another common error code, and it typically means that
an object could not be found – either a file on the local disk, a local
registry entry, but more typically in the Active Directory. If it is the
first two, use filemon or regmon (from www.sysinternals.com) to
monitor the setup program. If it is the latter, use network monitor to
determine what object the setup program is attempting to use. The
packets in the network monitor trace can be viewed by timestamp
(Display | Options | Time of Day), and you can correlate these with the
timestamps on the errors in the setup progress log.
Strategy for clusters: Unlike single-server installations, where the files are
copied and registered and directory service objects are added in a single session,
cluster installs are divided into phases. The first phase is the file-copy and
registration phase of the binaries onto each node. Here, the setup engine logs to
the progress log as usual. However, setup does not create objects in Active
Directory. Although setup will declare success for installing on each node, the
installation is only partially complete. The second phase involves manipulating
the cluster administrator program (cluadmin.exe) to create the necessary
resources. At this stage, the setup engine is not running, and instead,
cluadmin.exe performs the background processing. Surprisingly, the creation of
the Exchange System Attendant resource will write to the setup progress log,
logging another session beginning with “Beginning setup run.” So when
troubleshooting problems with the System Attendant creation or initial startup,
check in 2 places:
The Exchange Server Setup Progress.Log
The cluster.log file, located in %windir%\cluster on each node. The
cluster.log file shows important cluster properties such as whether or not a
parameter is being set, based upon an application’s needs:
progress log says the installer has selected. This is because the progress log will
pre-process through some of the installation types even before the user has a
chance to pick an action from the component picker tree. For example, in a
forest containing a single domain controller that already has Exchange 2000
Server SP2 installed, the progress log for Exchange 2003 setup will say:
[09:18:51] Prerequisites for Microsoft Exchange Messaging
and Collaboration Services failed: The component "Microsoft
Exchange Messaging and Collaboration Services" cannot be
assigned the action "Upgrade" because:
- The local domain configuration is not up-to-date. You must
run setup with the "/DomainPrep" switch within this domain.
If you have already done this with the current version of
Setup, then you must wait for replication to complete.
Consult your documentation for details.
- Server Z2 must be a Microsoft Exchange 2000 server with
Microsoft Exchange Service Pack 3, or higher, installed.
The above text may mislead you to believe that the installer chose the
“upgrade” action, but this is what the progress log contains, even before the
user has a chance to choose an action on the component selection screen.
Another strategy is to search the progress log for the string “is set to action” for
the components’ selected action in the component picker tree. However, these
too may show system-selected component actions. You may be inclined at this
point to look at the setup.log in \program files\microsoft integration\Microsoft
Exchange\logs, but that log only lists the summary of chosen components post-
installation.
To accurately determine what action the customer selected during installation,
look for a series of looping entries. (These looping entries correspond to user
clicks onto the component picker screen itself, but not an action that the user
has selected.) At the end of those loops, you may find an entry similar to the
following:
[09:39:25] Using cached result for domain "/dc=com/dc=contoso"
Following the “cached result” entry, the progress log will show the actual user-
selected action. In most cases, it will look exactly like the pre-processed entries
from above. However, in some cases, the installer may have chosen another
action, such as “remove.”
[18:34:08] CInsParser::ScProcessLine
(K:\admin\src\libs\exsetup\hiddenw1.cxx:1226)
Error code 0XC1037989 (31113): An internal
component is not responding.
[18:34:08] Processing file
'z:\setup\i386\exchange\Misc.ins', at or near line 10
(CreateProcess:C:\WINNT\System32\WBEM;C:\WINNT\System32\WBE
M\mofcomp.exe "C:\WINNT\System32\WBEM\exwmi.mof";600000)
CInsParser::ScProcessLine
(K:\admin\src\libs\exsetup\hiddenw1.cxx:486)
Error code 0XC1037989 (31113): An internal
component is not responding.
[18:34:08] Registry file name:
'z:\setup\i386\exchange\Misc.ins'
CRegistryManager::ScProcessFile
(K:\admin\src\udog\setupbase\tools\regmgr.cxx:95)
Error code 0XC1037989 (31113): An internal
component is not responding.
[18:34:08] Filename = '%sourcedir%\Misc'
CBaseAtom::ScRefreshRegistryKeys
(K:\admin\src\udog\setupbase\basecomp\baseatom.cxx:1217)
Error code 0XC1037989 (31113): An internal
component is not responding.
[18:34:08] CBaseAtom::ScReinstall
(K:\admin\src\udog\setupbase\basecomp\baseatom.cxx:1015)
Error code 0XC1037989 (31113): An internal
component is not responding.
[18:34:08] Service = '' CBaseServiceAtom::ScReinstall
(K:\admin\src\udog\setupbase\basecomp\basesvcatom.cxx:231)
Error code 0XC1037989 (31113): An internal
component is not responding.
[18:34:08] mode = 'Reinstall' (61955) CBaseAtom::ScSetup
(K:\admin\src\udog\setupbase\basecomp\baseatom.cxx:775)
Error code 0XC1037989 (31113): An internal
component is not responding.
Any of these functions could be causing the problem, and the main clue may
likely have appeared when setup runs the misc.ins script. Since setup has
already exited, you may often find that manually running some of the
commands that setup attempted will reveal more clues: When running
‘mofcomp.exe "C:\WINNT\System32\WBEM\exwmi.mof” from the command
prompt revealed that it was successful after 25 minutes (1,500,000
milliseconds), this meant that the 600,000 millisecond sleep parameter wasn’t
enough. At this point, one would copy all of the setup files to the hard drive,
modify line ten of the misc.ins script file by bumping-up the sleep time, and
then rerun setup. In this case, setup proceeded past this point and completed
successfully.
Objective: This lab will get the student familiarized with logparser and
significant sections of the progress log. Answers are in Appendix A, but the
learning experience will be ruined if answers viewed prematurely.
1. Power on any virtual machine (preferably SOLO since we will be using it in
the next lab).
2. Mount the “Admin_Labfiles.ISO” CD image into the virtual machine.
3. Open the file d:\module1_setupquestions\question1.log using notepad.
4. Can you tell what option(s) were set during component selection?
6. Navigate to the D: drive and install the new version of the logparser utility.
7. Launch logparser and reopen the question2.log. How many times was setup
run? (Hint: The number of sessions is on the upper-left panel of logparser)
10. On the last setup session, is the user installing into the forest root domain?
11. Try to find out the scenario (i.e. pure Exchange 2003, mixed Exchange 2003
with Exchange 5.5, Exchange 2003 and Exchange 2000, or all server
versions (5.5/2000/2003) installed) (Hint, if logparser only has
configuration information checked, you might find useful data.)
12. Open the Exchange Server setup progress log from
d:\module1_setupquestions\question3.log
13. Was setup successful? Did the services start?
14. If the customer says that his Exchange services are inoperable, and he sent
you progress3.log, can you explain why it is not operable? Do you think the
stores mounted?
Other questions:
18. Marker checks are enforced in which of the following scenarios? (Check all
that apply)
a) Setup of a new Exchange 2003 server in a site where Exchange 5.5 and
Exchange 2000 servers exist
b) Setup of a new Exchange 2003 server in a site where Exchange 2003
and Exchange 5.5 servers exist
c) Setup of new Exchange 2003 server in a site where Exchange 5.5 exists
d) Setup of new Exchange 2000 server in a site where Exchange Server
5.5 and Exchange 2000 Server exist
e) Setup of new Exchange 2000 server in a site where only one Exchange
Server 2003 server already exists.
19. T/F: There are a fixed number of atoms running during setup.
Exercise 1:
In this exercise, students will troubleshoot an upgrade from Exchange 2000 SP3
to Exchange Server 2003 build 6851. There is a specific problem to this pre-
release build that does not exist in the released/shipped build. However, we can
practice troubleshooting using the procedures discussed in the troubleshooting
lesson.
Lab setup: Power-on “Solo.”
Username: Standalone\Administrator
Password: password
“Solo” is a Windows 2000 SP3 domain controller running Exchange 2000
Server SP3. It is a standalone server with no complicated components (no SRS
or installed connectors). Exchange Server 2003 build 6851 forestprep and
domainprep have already been executed without problems.
1) Use Logparser to examine the existing progress log file on the C: drive.
Can you determine if forestprep and domainprep have already been
executed? Were there any problems with those installs?
2) Mount the Exchange 2003 beta build (6851) .ISO image onto the
virtual CD ROM drive, and start the server upgrade process. Setup will
fail catastrophically during the setup phase. DO NOT choose the
CANCEL button!
3) For each time you choose “retry” confirm that you see “Retrying failed
operation.” DO NOT choose the CANCEL button!
4) Make a copy of the setup progress.log file, and you may run logparser
against that copy. (The reason we choose to make a copy is because the
logparser cannot open the file that is already locked by setup.
Similarly, if logparser opens a previous progress log, a new setup
instance cannot append to the progress log because is locked. Then,
setup will resort to creating a new progress log with a “2” suffix.) DO
NOT choose the CANCEL button! As in the upgrade scenario,
pressing cancel will result in a partial/broken installation.
5) Proceed to troubleshoot only using logparser against the progress log
file.
Instructor notes: The mssearch service has been disabled. In this simple
exercise, students are to simply review the progress log file while they get
the “retry/cancel” option. They should open the progress log, view the last
setup session, and look for these errors:
[16:58:04] Entering
CAtomMDB::ScInstallCreateSearchApplication
[16:58:04] Creating Microsoft Search application
[16:58:04] Creating search admin component
[16:58:04] Getting the applications interface
[16:58:04] CAtomMDB::ScInstallCreateSearchApplication
(f:\df6803\admin\src\udog\exsetdata\components\server\a_mdb
.cxx:1975)
Error code 0X80070422 (1058): The service cannot
be started, either because it is disabled or because it has
no enabled devices associated with it.
[16:58:04] Leaving
CAtomMDB::ScInstallCreateSearchApplication
[16:58:04] Entering CAtomMDB::ScPauseSearchFullPopulation
[16:58:04] Entering CAtomMDB::ScGetBuildCatalogsInterface
[16:58:04] Creating search admin component
[16:58:04] Getting the applications interface
[16:58:04] CAtomMDB::ScGetBuildCatalogsInterface
(f:\df6803\admin\src\udog\exsetdata\components\server\a_mdb
.cxx:2253)
Error code 0X80070422 (1058): The service cannot
be started, either because it is disabled or because it has
no enabled devices associated with it.
[16:58:04] Leaving CAtomMDB::ScGetBuildCatalogsInterface
[16:58:04] CAtomMDB::ScPauseSearchFullPopulation
(f:\df6803\admin\src\udog\exsetdata\components\server\a_mdb
.cxx:2352)
Error code 0X80070422 (1058): The service cannot
be started, either because it is disabled or because it has
no enabled devices associated with it.
[16:58:04] Leaving CAtomMDB::ScPauseSearchFullPopulation
[16:58:04] CAtomMDB::ScRefreshMDBDSObjects
(f:\df6803\admin\src\udog\exsetdata\components\server\a_mdb
.cxx:835)
Error code 0X80070422 (1058): The service cannot
be started, either because it is disabled or because it has
no enabled devices associated with it.
[16:58:04] Leaving CAtomMDB::ScRefreshMDBDSObjects
[16:58:04] CAtomMDB::ScRefreshDSObjects
(f:\df6803\admin\src\udog\exsetdata\components\server\a_mdb
.cxx:627)
Error code 0X80070422 (1058): The service cannot
be started, either because it is disabled or because it has
no enabled devices associated with it.
[16:58:04] Leaving CAtomMDB::ScRefreshDSObjects
[16:58:04] CBaseAtom::ScReinstall
(f:\df6803\admin\src\udog\setupbase\basecomp\baseatom.cxx:1
138)
Error code 0X80070422 (1058): The service cannot
be started, either because it is disabled or because it has
no enabled devices associated with it.
[16:58:04] Service = 'MSExchangeIS'
CBaseServiceAtom::ScReinstall
(f:\df6803\admin\src\udog\setupbase\basecomp\basesvcatom.cx
x:247)
Error code 0X80070422 (1058): The service cannot
be started, either because it is disabled or because it has
no enabled devices associated with it.
[16:58:04] Leaving CBaseServiceAtom(Information Store
Service)::ScReinstall
[16:58:04] CBaseServiceAtom::ScUpgradeFrom2000
(f:\df6803\admin\src\udog\setupbase\basecomp\basesvcatom.cx
x:418)
Error code 0X80070422 (1058): The service cannot
be started, either because it is disabled or because it has
no enabled devices associated with it.
[16:58:04] Leaving CBaseServiceAtom(Information Store
Service)::ScUpgradeFrom2000
[16:58:04] mode = 'Upgrade' (61968) CBaseAtom::ScSetup
(f:\df6803\admin\src\udog\setupbase\basecomp\baseatom.cxx:8
41)
Error code 0X80070422 (1058): The service cannot
be started, either because it is disabled or because it has
no enabled devices associated with it.
The strategy is to look a few lines above the initial error for the calling
function. They will see that setup tried to create the MSSearch service.
Hopefully, the students will understand that this Exchange 2000 service
was disabled, and it must be re-enabled. Once started, they hit the retry
button, and the upgrade to Exchange 2003 proceeds.
When you are finished with your troubleshooting and have proceeded through
the upgrade past the point of failure, power off the virtual machine and discard
changes on the undo drive.
Exercise 2:
Turn on the virtual machine located in the “SetupExercise2” folder.
Servername: Z2
Username: MS\Administrator
Password: Password1
This virtual machine is similar to the virtual machine in the first exercise.
Practice upgrading and troubleshooting the errors you encounter. You may use
the release bits (Ti6844.4) to perform the upgrade.
In this exercise, the disk is near capacity, but not full enough for setup to
fail the prerequisite check. The GUI portion of setup should fail without
any indication of a true reason. Thus, students have an opportunity to
investigate using the progress log.
When you are finished with this lab, power off Z2 and discard any changes to
the undo drive.
Exercise 3:
Upgrading a cluster
The purpose of this exercise is to observe the steps required for a rolling
upgrade on a cluster. There is nothing “broken” in this configuration.
Power on the cluster nodes 1 and 2 located in the “c:\vms\flats\module 1 -
setup*” folder (or it may be called something similar). Please be sure not to
start the cluster virtual machines from module #5 (Clustering Lab).
Setup: Each cluster node is also a domain controller. Note: This configuration
is meant to optimize lab equipment; it is not a recommended configuration in
reality, as cluster nodes should not reside on domain controllers.
1. What build of Exchange Server 2003 is installed?
2. Open cluster administrator
3. Right-click on the EXVS1 group. What new option do you see?
4. Right-click on the system attendant resource. Observe that the same option
is selectable.
5. In the “net name test” cluster group, create a new System Attendant
resource.
6. Open the setup progress log using logparser (located on the desktop).
Although you never ran setup.exe, do you see any changes?
7. Mount the Ti6944.4EntEval.ISO image to the virtual machine.
8. Upgrade each node via rolling upgrade (refer to getting started guide). But
instead of choosing “upgrade” on the component selection screen, choose
“reinstall.”
Appendix A: Answers
1.2.4: "The component Microsoft Exchange is set to "Reinstall"
1.2.5: Not really. If we wanted to find out, we'd need to search for the string
"Beginning Setup" or patterns of asterisks ("*****") and count the lines they
occur.
1.2.6: Nine times
1.2.8: Setup was run on 1/13/2003. This was Exchange 2000 Server release
build (4417)
1.2.9: Build 6895. No, it was not successful because this entry does not exist at
the end:
CComBOIFacesFactory::QueryInterface
(f:\df6895\admin\src\udog\bo\bofactory.cxx:54)
Error code 0X80004002 (16386): No interface.
Instead, it was probably killed in the middle of a dialog box.
1.2.10: No, this is where we can make use of our "m_str" searches to find server
role information. All in the same general area, we find:
DSROLE_PRIMARY_DOMAIN_INFORMATION::DomainNameFlat = "MLABNET"
DSROLE_PRIMARY_DOMAIN_INFORMATION::DomainNameDns =
"mlabnet.com"
DSROLE_PRIMARY_DOMAIN_INFORMATION::DomainForestName =
"mlabroot.com"
m_strRootDomain = "mlabroot.com"
In this case, the user is installing to some other domain in the forest
(mlabnet.com) that appears to be a root of its own tree. The forest root domain
is mlabroot.com.
1.2.14: The server is not operational because this was a cluster node
installation. And as such, no Active Directory objects were created representing
the server or its stores. So users will not be able to use it until a virtual server
Last Saved: 7/24/2003 1:55 AM
Last Printed: 7/24/2003 12:55 PM
Module 1: Setup Changes 75
has been created, which in turn creates the IS resource, in which case the stores
can mount. In its present state, no stores are mounted.
1.2.16: No, setup chose its own suitable domain controller for setup:
No user-specified DC; setup has chosen m_strDC = "CRPDALDCS00"
1.2.18: A and C. (B is not an answer because the first Exchange 2003 server
install had already performed its marker checks)
1.2.19: False. The number of atoms running varies, depending on the scenarios
detected, and which options the installer chooses from the component picker.
Acknowledgments
Microsoft Employee
Vincent Yim
Max Vaysburg, Ross TenEyck, Alexander MacLeod, Gwen Zierdt, Bryan
Atwood
KB article
823145 XADM: Exchange 2003 Server Setup and Installation Top Support
Issues
Contents
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.
Microsoft, MS-DOS, Windows, Windows NT, Active Directory, ActiveX, Excel, Exchange Server
5.5, Exchange 2000 Server, Exchange Server 2003, Internet Explorer, Internet Information Server,
Word are either registered trademarks or trademarks of Microsoft Corporation in the United States
and/or other countries.
The names of actual companies and products mentioned herein (Groupwise, Lotus cc:Mail, Lotus
Notes) may be the trademarks of their respective owners.
Mobile Services
Under Global Settings, right-click on Mobile Services and pull up Properties:
Note that right-clicking on Mobile Services also allows you to create a new
Mobile Carrier:
New Diagnostics
Servers container -
Servers container - there are more details for servers
Under the Administrative Group, select the Servers container and view
additional information about servers in the right pane:
Database tab of the store shows time and type of last backup
To view Properties of a Mailbox or Public folder stored in Exchange System
Manager (under the Storage Group), go to the Database tab:
In Exchange System Manager, under the Server object, expand the Protocols
container and then HTTP and select Exchange Virtual Server. Microsoft-
Server-ActiveSync and Outlook Mobile Access are new virtual directories.
New General tab for Exchange Virtual Directory under HTTP virtual
server and new Authentication method
In Exchange System Manager, under the Server object, expand the Protocols
container and then HTTP and select Exchange Virtual Server. Pull up the
properties of Exchange Virtual Directory.
Mailbox
Introduction ......................................................................3
Dependencies ..................................................................4
General Overview.............................................................4
Troubleshooting..............................................................10
Tools ..............................................................................17
Labs ...............................................................................19
Acknowledgments ..........................................................22
1
Information in this document, including URL and other Internet Web site references, is subject to change without notice.
Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people,
places, and events depicted herein are fictitious, and no association with any real company, organization, product, domain
name, e-mail address, logo, person, place or event is intended or should be inferred. Complying with all applicable
copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may
be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic,
mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of
Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering
subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the
furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual
property.
Microsoft, MS-DOS, Windows, Windows NT, Active Directory, ActiveX, Excel, Exchange Server 5.5, Exchange 2000
Server, Exchange Server 2003, Internet Explorer, Internet Information Server, Word are either registered trademarks or
trademarks of Microsoft Corporation in the United States and/or other countries.
The names of actual companies and products mentioned herein (Groupwise, Lotus cc:Mail, Lotus Notes) may be the
trademarks of their respective owners.
2
Introduction
In Exchange Server 2003 the Move Mailbox Wizard has been updated to be multithreaded and have the
ability to recover if it encounters corrupt mailbox entries.
By default it will attempt to move the whole mailbox in one attempt. If it fails, it will attempt to move the
mailbox item by item. You can set a maximum number of corrupt items, but if it exceeds this number the
mailbox move will fail.
By default, Move Mailbox uses four threads, which means it will attempt to move four mailboxes at a time.
Limitations
As of the Exchange 2003 release, there is no ability to
move mailboxes between Administrative groups when
you are in mixed mode environments.
Being in Native Mode means that you have only
Exchange 2000 or Exchange 2003 servers only in your
org, and you have selected to switch your org to Native
mode in Exchange System Manager.
The limitation of not being to move mailboxes between
Administrative groups is because of the distinguished
names (also known as DNs) and other attributes placed
on the mailboxes and mailbox items within the mixed
mode admin groups. These attributes involve a large
cost of adding and changing when moving between
administrative groups within the mixed mode
environment.
There is no ability to have the destination store of a
moving user to reside in a Recovery Storage Group.
Moving mailboxes is allowed within the same storage Native Mode gives you more flexibility
groups with no limitations. This is to say that any store
that exists within a storage group can be the destination
of the Move User request. Within the same storage
group directly implies that the Mailbox Stores reside on
the same server.
Moving mailboxes outside of the current Mailbox Store’s
current Storage Group is allowed within the same
server. If the storage groups reside on different servers,
then it depends on whether the servers exist in different
Admin Groups or not.
You cannot move the System Mailbox, System
Attendant Mailbox or SMTP Mailbox. When you right-
click Exchange Tasks, you will not see the Move
Mailbox option for these special mailboxes.
Likewise, if you attempt to move System Mailboxes with
user mailboxes, the detailed report will show errors for
the system mailboxes; they will not be moved.
System Mailbox has no option to move it.
3
Dependencies
Client
Windows 2003 Admin Tools
Exchange 2003 System Manager
Server
Exchange 2003 System Manager
General Overview
It is possible to move a mailbox between versions of Exchange that are visible through System Manager.
So it is possible to move mailboxes between Exchange 5.5 / Exchange 2000 / Exchange 2003.
Click Next.
4
You will see this dialog, as long as the
user(s) have a mailbox on a server.
Click Next.
5
You can schedule the start date and time of
when the move will start.
6
This Event gets logged in the application log
when the move starts.
7
Then it opens the destination mailbox.
8
This Event gets logged in the application log
when the move is successful.
Reports
If you selected to view the detailed report,
you will see a similar XML output of the
summary report.
The XML log file is generated on the disk
with the errors pertaining to each failed
mailbox move operation.
The log file contains mailboxes that failed
with message ID, date of message and
subject in the log.
The XML report resides in the “My
Documents\Exchange Task Wizard Logs\ “
directory.
Note that the XML report may not be
viewable on a machine that does not have
the XML parser installed. (The XML parser is
automatically installed whenever you install
any Exchange 2003 binaries on a machine)
9
Troubleshooting
Under the bonnet
Summary
The mechanics of how the Move Mailbox operation works is that a connection is made to the source and
destination servers, the folder hierarchy is created on the destination server, and then a ‘fast MAPI transfer’
process is used to move the date from the source to the destination server. Then, if any corrupted items are
encountered, the operation defaults to a non-fast MAPI transfer.
In the "fast" mode we copy the folder "Mailbox – User1" from the source server to the destination server. If
this fails, we just know that the whole operation failed and not necessarily which item it failed on.
In the "non-fast" mode we copy "Message 1", "Message 2", "Message 3", "Message ...", from the Inbox, then
copy "Message 1", "Message 2", "Message 3", "Message ...", from the Sent Items, etc.
Detail
The way in which we actually perform the move mail box is strictly MAPI.
1. We perform a MAPI logon to the first message store where we are moving the messages from.
2. A pointer to the Message Store is retrieved.
3. A pointer to the destination Message Store is retrieved.
4. The Mapi CopyTo() function is called on the top of the information store first to see if we can do a one
copy operation, from the source message store to the new destination message store.
By default the lcid (localization) of the destination mailbox will match that source. When the admin
sets PR_IN_TRANSIT to FALSE on the destination mailbox store, we set the ptagIsLocalized
property on the mailbox table. This prevents the mailbox from becoming relocalized.
5. This can be overwritten by a registry value "Localize On First Logon" which is a DWORD value on
ParametersSystem,and if it is set > 0, we will revert to the old/current mailbox.
10
Note: Related KB is 810326 XADM: Folder Names May Be Changed to Hebrew in Migration from
Exchange http://support.microsoft.com/?id=810326
6. If there is a failure in the Message Store copy, we make a copy message by message through the
Message Store calling the proper CopyTo() function from each message containing a failure. As long
as it does not exceed the failure limitation, we will continue the operation message by message until the
full contents of the Message Store are copied or the limit of “bad messages” is reached.
Note: Each time we call the MAPI/extended MAPI functions to copy/open the messages, we are
employing the store functions that call out to their Virus scanning APIs. When the user has Virus
scanning ability on the server, these abilities will be employed.
As the number of users who are chosen to have their mailbox moved increases, Exchange’s performance
will decrease, depending on the size of the mailbox as well as the destination of the move and network
bandwidth.
If the move happens between the same server, the scalability will be a lot higher than between two slow link
servers, since many of the moves will complete faster on the same server.
The majority of the scalability features of Move Mailbox depend on external factors, disk speed, network
speed, and complexity of the mailbox. The actual copy of messages itself is spawned across a maximum of
five threads and will scale accordingly to hardware and other external factors mentioned previously.
The monitoring of a Move Mailbox feature comes through the admin UI and the call backs received from the
copyTo MAPI command that come into maildsmx.dll. A status bar indicates the current progress.
Event ID 1006:
You get this when Move Mail starts to move a
mailbox.
11
Event ID 1007:
You get this when a move is successfully completed.
Event ID 1008:
A move failure due to unknown causes. This could
be related to a global catalog problem, or offline
store. Always look for accompanying events, such as
91xx, and perform knowledge base searches to
determine cause and resolution.
Event ID 1008:
Mailbox already exists.
12
Event ID 1009:
You get this if you cancel the move OR if the move is
terminated by selecting the “Cancel tasks that are
still running after:” in the Task Schedule.
Event ID 1023:
Severity=Warning
SymbolicName = evtMoveMailboxSetInTransitFailed
Language=English
Unable to set a property on the message store on
'%1'. Result: %2
Event ID 1024:
Event ID 9162:
Severity=Error
SymbolicName = evtMoveMailboxContextInitFailed
Language=English
Failed to initialize the Move Mailbox command.
%nError: %1
Event ID 9163:
Severity=Error
SymbolicName = evtMoveMailboxGet55Session
Language=English
Failed to connect to the Exchange 5.5 directory on
server '%1'.
13
%nError: %2
Event ID 9164:
Severity=Error
SymbolicName =
evtMoveMailboxFailedToOpenObject
Language=English
Failed to open object '%1' on server '%2'.
%nError: %3
Event ID 9165:
Severity=Error
SymbolicName = evtMoveMailboxUpdate55Directory
Language=English
Failed to update the Exchange 5.5 directory on
server '%1'.
%nhomeMDB: %2
%nhomeMTA: %3
%n%nError: %4
Event ID 9166:
Event ID 9167:
Event ID 9168:
14
Severity=Error
SymbolicName = evtMoveMailboxOpenStore
Language=English
Failed to open mailbox '%1' in mailbox store '%3' on
server '%2'.
%nError: %4
Event ID 9169:
Event ID 9170:
Severity=Error
SymbolicName =
evtMoveMailboxUpdateW2kDirectory
Language=English
Failed to update mailbox on Active Directory server
'%1'.
%nhomeMDB: %2
%nhomeMTA: %3
%nmsExchHomeServer: %4
%n%nError: %5
Event ID 9171:
Severity=Error
SymbolicName = evtMoveMailboxLoadMapi
Language=English
Failed to initialize MAPI32.DLL.
%nError: %1
Event ID 9172:
Severity=Error
SymbolicName = evtMoveMailboxCopyTo
Language=English
Failed to copy messages to the destination mailbox
store.
%nError: %1
15
Event ID 9173:
Severity=Warning
SymbolicName = evtMoveRollbackNT
Language=English
Failed to restore mailbox on Active Directory server
'%1'.
%nhomeMDB: %2
%nhomeMTA: %3
%nmsExchHomeServer: %4
%n%nError: %5
Event ID 9174:
Severity=Warning
SymbolicName = evtMoveRollback55
Language=English
Failed to restore mailbox on Exchange 5.5 server
'%1'.
%nhomeMDB: %2
%nhomeMTA: %3
%n%nError: %4
Event ID 9175:
Registry Tweaks
All of these can be found under:
HKEY_CURRENT_USER\Software\Microsoft\Exchange\MSExchangeAdmin\Exchange Task
Wizard\ShowWelcomePage is a dword with a value of 1 to show the Welcome page and 0 not to show it.
HKEY_CURRENT_USER\Software\Microsoft\Exchange\MSExchangeAdmin\Exchange Task
Wizard\MaxBadItems is a dword. By default it is 3, and this updates to the value you set in the GUI.
Scripting
Move Mailbox is scriptable. This is documented on Microsoft Developer Network (MSDN) and uses
CDOEXM (Collaboration Data Objects for Exchange Management).
16
Tools
To help resolve issues in the mailbox move process, Development is working on getting the documentation
into the SDK of the schema of the files, which are XML output from the full Exchange Task Wizard.
Fortunately, you can customize the XML reports to your own liking; all you have to do is apply an extensible
style sheet to the files that are output by the task wizard. See the attached file for an example style sheet:
MoveMailboxReport
.xslt (8 KB)
To apply the style sheet, open one of the XML reports under the "..\Exchange Task Wizard Logs" folder with
Notepad, and insert the following statement as the second line in the file (i.e. immediately after the <xml> top
line):
<?xml-stylesheet type="text/xsl" href="C:/MoveMailboxReport.xslt"?>
Save your report and open it using Internet Explorer. You should now see the transformation.
Instructor note: .xslt file is available on corpnet at
\\learn05\courseware\messaging\Exchange_2003_Admin_TS\Instructor_Guide
17
Transformed Output
18
Labs
Lab 3.1: Move Mailbox - Exchange Server 5.5 to Exchange Server 2003
Objectives
After completing this lab, you will be able to:
Move multiple mailboxes from an Exchange Server 5.5 server to an Exchange Server 2003 server.
Observe how new "Exchange Tasks" now operates upon multiple objects.
Servers:
Exchange 2000 Server domain controller/global catalog (to be turned-on first): Z2
Exchange Server 5.5 member: z0
Exchange Server 2003 member: Z3
Estimated time to complete this lab: 10 minutes
Goal: In this exercise, you will move multiple mailboxes from the Exchange 5.5 server to the Exchange 2003
server.
1. Move Exchange Server 5.5 a. Open Active Directory Users and Computers snap-in.
Mailboxes
b. Click on View, then Choose Columns, and select Exchange
Mailbox Store and move it to the Displayed Columns field. Click
OK.
c. Select multiple Exchange 5.5 users by either using Shift + Click
or CTRL + Click from the Users container. (You may need to
pre-create them if they do not already exist)
d. Right-click the users and click Exchange Tasks.
e. The Welcome to the Exchange Tasks Wizard appears. Click
Next.
f. In the Select a Task to Perform box, click Move Mailbox and
click Next.
g. On the Move Mailbox screen, verify the Current Mailbox
Store is the Exchange 5.5 server name and the Server name
(which is the intended destination) is Z3. Select the Mailbox
Store and the Storage Group that the mailbox should be moved
to on the Exchange 2003 store.
h. Click Next.
i. At the Completing the Exchange Task Wizard, click Finish.
j. Repeat the steps to move the remaining users named Move
and Swing.
2. Verify Mailboxes have a. Using Outlook Web Access, logon to the moved mailboxes,
moved and are accessible which reside on the Exchange 2003 server.
to the Outlook web client.
19
Lab 3.2: Move Mailbox - Exchange 2000 Server to Exchange Server 2003
Objectives
After completing this lab, you will be able to:
Move mailboxes from an Exchange 2000 server to an Exchange 2003 server using Exchange System
Manager.
Observe move mailbox ability using Exchange System Manager.
Estimated time to complete this lab: 10 minutes
Goal
In this exercise, you will move multiple mailboxes from the Exchange 2000 server to the Exchange 2003
server, using Exchange System Manager.
1. Move Exchange 2000 a. Open Exchange System Manager on the Exchange 2003
Mailboxes using Exchange server (Z3).
System Manager
b. Navigate to Mailboxes on your Exchange 2000 Mailbox Store
(Z2).
c. Select one or more of the Exchange 2000 mailboxes. (If none
appear, you must pre-create them on the Exchange 2000 store,
and send a mail item into their mailboxes)
d. Right-click the user(s) and click Exchange Tasks.
e. The Welcome to the Exchange Tasks Wizard appears. Click
Next.
f. In the Select a Task to Perform box, click Move Mailbox and
click Next.
g. On the Move Mailbox screen, verify the Current Mailbox
Store is the Exchange 2000 server name and the Server name
(which is the destination) is Z3. Select the Mailbox Store and
the Storage Group that the mailbox should be moved to on the
Exchange 2003 server.
h. Click Next.
i. At the Completing the Exchange Task Wizard, click Finish.
2. Verify Mailboxes have a. Using Outlook Web Access, logon to the moved mailboxes,
moved and are accessible which reside on the Exchange 2003 server.
to the Outlook web client.
20
Lab 3.3: Move Mailbox - Exchange Server 2003 to Exchange Server 2003
Objectives
After completing this lab, you will be able to:
Move mailboxes from an Exchange 2003 server to an Exchange 2003 server and then view the XML
output.
Apply a style sheet to the XML report generated by Move Mailbox wizard.
Estimated time to complete this lab: 15 minutes
Goal
In this exercise, you will move multiple mailboxes from the Exchange 2000 server to the Exchange 2003
server, using Exchange System Manager.
1. Move Exchange 2003 a. Create a second mailbox store on Z3, which is your Exchange
Mailboxes 2003 server.
b. Select one of the Exchange 2003 users currently residing on the
first mailbox store.
c. Right-click the user and click Exchange Tasks.
d. The Welcome to the Exchange Tasks Wizard appears. Click
Next.
e. In the Select a Task to Perform box, click Move Mailbox and
click Next.
f. On the Move Mailbox screen, verify the Current Mailbox
Store is Z3/First Storage Group/Mailbox Store and the Server
name is also Z3. Select the new mailbox store you created in
step 1a. Click Next.
g. At the Completing the Exchange Task Wizard, click Finish.
h. Notice the location of the XML file generated at the end of the
Move Mailbox.
i. Open the file with Notepad.
2. Viewing Move Mailbox a. Copy the XML file generated from the Move Mailbox Wizard to a
XML file with a “parser” temporary folder. (It is located underneath your “My Documents”
folder by default.)
b. Copy the style sheet MoveMailboxReport.xslt from the
admin_labfiles .ISO image to the same temporary directory as
the XML file.
c. Open the XML file generated by Move Mailbox and under the
first line add:
d. <?xml-stylesheet type="text/xsl"
href="MoveMailboxReport.xslt"?>
e. Save Changes to the XML file.
f. Double-click the XML file you modified in step 2e.
21
Acknowledgments
Microsoft Employee
Paul Flaherty
Fabio Pintos, James Baker, Shawn McGrath, Thomas Andrychowski, Vincent Yim, Steve Schiemann
KB article
822892 Move Mailbox Improvements in Exchange 2003 (http://support.microsoft.com/?id=822892)
264413 Error Connecting to Destination Server During Move Mailbox
(http://support.microsoft.com/?id=264413)
22
Module 4:
Troubleshooting the
Recovery Storage
Contents
Group
Introduction.............................................................................................................1
What is the Recovery Storage Group? ....................................................................3
Creating a Recovery Storage Group .......................................................................7
Adding a Mailbox Store to the Recovery Storage Group .....................................10
Active Directory Attributes...................................................................................17
Lab 4.1: Create a Recovery Storage Group and review the Active Directory
attributes................................................................................................................20
Overriding the Recovery Storage Group...............................................................25
Restoring the data..................................................................................................27
Recovering Exchange 2000 Server Mailbox Stores..............................................33
Exmerge ................................................................................................................35
Known issues with Exmerge.................................................................................48
Exercise 2: Recovery Storage Group Scenario 1 ..................................................50
Exercise 3: Recovery Storage Group Scenario 2 ..................................................54
Details for Exercise 3: Disaster recovery after a Store Crash using the Recovery
Storage Group .......................................................................................................55
Acknowledgments.................................................................................................58
Information in this document, including URL and other Internet Web site references, is subject to
change without notice. Unless otherwise noted, the example companies, organizations, products,
domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious,
and no association with any real company, organization, product, domain name, e-mail address,
logo, person, place or event is intended or should be inferred. Complying with all applicable
copyright laws is the responsibility of the user. Without limiting the rights under copyright, no
part of this document may be reproduced, stored in or introduced into a retrieval system, or
transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or
otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.
Microsoft, MS-DOS, Windows, Windows NT, Active Directory, ActiveX, Excel, Exchange Server
5.5, Exchange 2000 Server, Exchange Server 2003, Internet Explorer, Internet Information Server,
Word are either registered trademarks or trademarks of Microsoft Corporation in the United States
and/or other countries.
The names of actual companies and products mentioned herein (Groupwise, Lotus cc:Mail, Lotus
Notes) may be the trademarks of their respective owners.
Module 4: Troubleshooting the Recovery Storage Group 1
Introduction
In this session we will look at the Recovery Storage Group in Exchange Server
2003.
The Recovery Storage Group is a new type of Storage Group in Exchange
Server 2003 which is designed to facilitate the recovery of Mailbox Store data
without the need for an alternate Active Directory forest for recovery.
In Exchange 2000 Server, we required the use of an alternate Active Directory
forest/Exchange org to recover data without affecting the production
environment.
The Recovery Storage Group is designed to simplify the data recovery process
and lower the TCO for customers by eliminating the need for hardware for an
alternate recovery forest.
The Recovery Storage Group allows us to restore production Mailbox Stores to
live servers. Once the restore has been performed, we can use Exmerge to
merge the data back into the live stores.
We will look at the process of recovering data and also the sort of issues we can
run into and how to solve them.
2 Module 4: Troubleshooting the Recovery Storage Group
Exchange 2000 Server required the use of a separate Active Directory forest in
order to restore databases and recover mail items without affecting the
production system in any way.
A typical recovery scenario would be:
A server crashes and a mailbox store cannot be mounted. The transaction logs
are still available. After unsuccessfully attempting to get the store to mount, the
administrator would take copies of any log files and database files from the
time of the crash and then mount blank databases so that the users could log in
and send/receive mail.
A separate Active Directory forest would then have to be set up and a new
Exchange organization would have to be created in this forest. The following
information must remain consistent with the production environment:
Exchange Organization Name
Administrative Group Name
Storage Group Name
Logical Database Name
LegacyExchangeDN
The administrator must also ensure that the Operating System and Exchange
have the same service packs and hot fixes as the production machines.
When the administrator has done this, he could start the restore of the databases
to this recovery server.
Once the restore was complete and any log files have been replayed, the
database would be at a consistent state. The administrator would then use a
utility like Exmerge to export the data to .pst files and then import it into the
live database.
The option of switching the recovered databases from the alternate forest with
the blank databases in production is also available. This will reduce the amount
of time required to Exmerge data back to the production server.
This is obviously a fairly long process and in larger environments, it meant that
customers would have to maintain a separate Active Directory forest for this
purpose.
The recovery steps for Exchange 2000 Server are explained in 813337.KB.EN-
US
A Microsoft Support Webcast goes into great detail on this subject:
Support Webcast: Microsoft Exchange 2000 Alternate Server Data
Recovery
http://support.microsoft.com/default.aspx?scid=kb;en-
us;811063&gssnb=1
Module 4: Troubleshooting the Recovery Storage Group 3
The Recovery Storage Group is a new type of Storage Group that can be
created on servers running Exchange Server 2003 in order to facilitate Mailbox
data recovery.
An existing Mailbox Store can be added to a Recovery Storage Group and then
recovered while the original database is still online.
Note The Mailbox store is not physically added to the Recovery Storage
Group. A placeholder object is created in the Recovery Storage Group that is
used as a reference back to the original Mailbox Store. We will look at this in
more detail later.
Exmerge is then used to merge the recovered information over to the production
Mailbox Store.
A Recovery Storage Group can be created on both Standard and Enterprise
editions of Exchange Server 2003.
Recovery Storage Groups will work irrespective of the Operating System that
Exchange Server 2003 is installed on.
In order to add a Mailbox Store to the Recovery Storage Group it must exist
in the Active Directory
All restores will default to Mailbox Stores that are in the Recovery Storage
Group, not to the live database. (Note: The backup client must be pointed to
the server hosting the Recovery Storage Group)
There is a registry key to override this behaviour (“Recovery SG Override”)
(See Section 7)
Mailbox Stores in the Recovery Storage Group do not mount on start-
up/failover.
By default the “This database can be overwritten by a restore” is checked on
recovery databases
Public Folder Stores cannot be added to a Recovery Storage Group
New Mailbox Stores cannot be created in a Recovery Storage Group
When the Mailbox Store is mounted, all mailboxes remain disconnected and
cannot be reconnected
No new mailboxes can be created on a recovery database
MAPI is the only protocol that is supported
When the Mailbox Store in the Recovery Storage Group is mounted, you
will receive a warning (prompt)
The log file prefix for the Recovery Storage Group is Rnn
On an Active/Active cluster (2 Node) we can create one Recovery Storage
Group per cluster
On an Active/Passive cluster we can create one Recovery Storage Group per
Exchange Virtual Server (EVS)
Mailbox Stores from standalone servers can be added to an Recovery
Storage Group on a clusters and vice versa provided they are in the same
Administrative Group
No online maintenance will be run on recovery databases
System and Mailbox policies are not applied to recovery databases
Recovery Storage Groups cannot be renamed
Recovery Databases cannot be backed up
In order to successfully Exmerge out the data for a particular user, their
mailbox must exist on the same mailbox store as of the time of backup
Note To recover Public Folder databases, the alternate forest method is still
required.
Module 4: Troubleshooting the Recovery Storage Group 5
We then use Exmerge to export/import the new data from the clean
databases we created.
When the Exmerge is finished, dismount and delete the mailbox store in the
Recovery Storage Group. Delete the Recovery Storage Group.
The reason for switching the databases with each other is so that we Exmerge
the minimum amount of data. The blank mailbox stores will hold a relatively
small amount of data compared to the live mailbox store so it makes sense to
only Exmerge this data. This is, of course, a matter of preference and there is
nothing to stop you Exmerging over the larger amount of data to the new
databases.
Remember that when Exmerging large amount of data, lots of transaction logs
are generated so there must be sufficient disk space on the server.
Module 4: Troubleshooting the Recovery Storage Group 7
Using Exchange Server 2003 System Manager we now have a new choice when
creating Storage Groups on an Exchange 2003 server. As well as normal
Storage Groups, we can now create Recovery Storage Groups.
The steps to create a Recovery Storage Group are as follows:
Right-click on the chosen server object in Exchange System Manager and
choose New – Recovery Storage Group.
8 Module 4: Troubleshooting the Recovery Storage Group
The Recovery Storage Group Properties sheet will now be displayed. Here
we can specify a name for the Recovery Storage Group. It is a good idea to use
a name that clearly identifies it as a Recovery Storage Group as the icon in
Exchange System Manager for a Recovery Storage Group and a normal Storage
Group are the same.
The Recovery Storage Group must have a unique name on the server. It cannot
have the same name as a normal Storage Group that is already in use on the
server. The name of the Recovery Storage Group does not have to match the
name of the Storage Group that hosted the Mailbox Store that we are about to
restore.
Specify the Transaction log location and the System Path Location using the
browse buttons. This location cannot be changed afterwards.
The Transaction log location and System path location should NOT be set to
the same as an existing Storage Group on the Exchange 2003 server. To try and
simplify the whole process, use the same paths for the transaction logs, system
path and database files.
As almost no data is written to Mailbox Stores mounted in a Recovery Storage
Group, there will be very few transaction logs generated. Therefore, there is no
real performance gain by splitting the transaction logs and database files onto
separate drives (This is contrary to normal best practices regarding normal
Storage Groups in Exchange 2000 Server and Exchange Server 2003)
Module 4: Troubleshooting the Recovery Storage Group 9
When the Recovery Storage Group has been created, we can check its default
settings by taking the properties of the newly created Recovery Storage Group.
Note that the Transaction log location and System Path Location cannot be
changed. If you must change these locations, then you can simply delete the
Recovery Storage Group, create a new one, and then specify the correct paths.
The Log File Prefix is set to R00 by default. This cannot be changed.
Circular Logging cannot be enabled on a Recovery Storage Group.
A Recovery Storage Group cannot be renamed. If you must use a different
name for your Recovery Storage Group then you will have to delete it and
recreate it.
10 Module 4: Troubleshooting the Recovery Storage Group
Once the Recovery Storage Group has been created, Mailbox Stores that need
to be recovered can be added to it.
In Exchange System Manager 2003, right-click on the Recovery Storage Group
and choose Add Database to Recover. Notice that there is no option to create
new databases in a Recovery Storage Group.
In a mixed Exchange 2000/2003 environment, you will need to be using
Exchange System Manager 2003 in order to create and manage a Recovery
Storage Group.
Module 4: Troubleshooting the Recovery Storage Group 11
12 Module 4: Troubleshooting the Recovery Storage Group
The Select database to recover dialog box will then be presented. Here we will
be presented with a list of eligible Mailbox Stores. The criteria for eligible
Mailbox Stores are as follows:
The Mailbox Store must exist in Active Directory.
The Mailbox Store must be hosted on a server within the same
Administrative Group.
The Mailbox Store must be from a server that is running a minimum of
Exchange 2000 Server SP3 and a maximum version no higher than the
server where the Recovery Storage Group resides.
If a Mailbox Store already exists in the Recovery Storage Group, then only
Mailbox Stores from the same original Storage Group will be presented.
Notice that the version of Exchange is quoted and the fact that databases from
later versions of Exchange and versions earlier than Exchange 2000 Server SP3
will not be shown.
Choose the desired Mailbox Store and click OK.
Module 4: Troubleshooting the Recovery Storage Group 13
This error basically means that we have previously added a Mailbox Store to
the Recovery Storage Group and there are no more Mailbox Stores available
from the same original Storage Group.
Check the contents of the Recovery Storage Group to see if you have a Mailbox
Store there and remove it if necessary.
If there is no Mailbox Store in the Recovery Storage Group, have a look at the
Recovery Storage Group object using LDP or ADSIEdit. If there are any
Mailbox Stores listed there, delete them and try again.
Failing that, delete the Recovery Storage Group and try to add the Mailbox
Store again.
14 Module 4: Troubleshooting the Recovery Storage Group
On the General tab notice the default settings. We must now give the Mailbox
Store a name. This will always default to the display name of the Mailbox Store
in the Active Directory. This can, however, be changed to whatever you like.
Notice which settings are disabled by default.
Module 4: Troubleshooting the Recovery Storage Group 15
Now that we have created a Recovery Storage Group and added a Mailbox
Store to it for recovery, we can take a closer look at the inner workings of the
Recovery Storage Group and how the various parts fit together.
There are several new Active Directory attributes to identify the various
components that make up the Recovery Storage Group.
MsExchMaxRestoreStorageGroups
This is an attribute of the Information Store object on each Exchange 2003
server.
It controls the maximum number of Recovery Storage Groups that can be
created on an Exchange 2003 server. It is an integer value and is set to 1 by
default. If you try to create a second Recovery Storage Group you will receive
the following error:
18 Module 4: Troubleshooting the Recovery Storage Group
Note The image below shows the new user interface (UI) for the Windows
2003 version of ADSIEdit.
Note Be aware that this value can also be changed using one of these tools.
If this value were changed to 2, for example, then we would be able to create
two Recovery Storage Groups on the server. However, when we try to perform
a restore to this server, the restore would fail and the following Event ID would
be generated in the application log:
If you are seeing more than one Recovery Storage Group on an Exchange 2003
server then this attribute has almost certainly been changed manually. Any extra
Recovery Storage Groups should be deleted and this value should be set back to
1.
20 Module 4: Troubleshooting the Recovery Storage Group
Objective:
To understand the Active Directory attributes that make up the Recovery
Storage Group.
Exercise 1
1. Log into Z3 using the credentials above.
2. Start Exchange System Manager.
3. Drill down to ORG - Administrative Groups - Hubsite – Z3- First
Storage Group. Notice that we have only the default Mailbox Store and
Public Folder Store on this server.
4. Right-click on the Z3 server object and choose New - Recovery
Storage Group.
5. The Recovery Storage Group properties page now appears.
6. Leave the name as the default setting and also leave the Transaction
Log Location Path and System Path Location as the default settings.
Notice that the Enable Circular logging option is grayed out.
7. Click OK. We now have a Recovery Storage Group on Z3. Notice that
you cannot change the name or location of the Recovery Storage Group
after it has been created.
8. Right-click on the Recovery Storage Group and choose Add Database
to Recover.
9. Notice that all Mailbox Stores in the Administrative Group are now
displayed. Notice that the X500 Distinguished name of each of the
Mailbox Stores are also displayed.
10. Choose the Mailbox Store (Z3) and then click OK. The properties page
for the Mailbox Store to be added will now appear. Accept the default
settings and click OK.
11. We now have Mailbox Store(Z3) in the Recovery Storage Group
12. Start ADSIEdit by clicking on Start, then Run. Type Adsiedit.msc in
the field and click OK.
13. Drill down to the following location:
Module 4: Troubleshooting the Recovery Storage Group 21
If this value is changed to FALSE or NOT SET then the Recovery Storage
Group will effectively be converted to a normal Storage Group. It is not
recommended to change the values of Storage Groups in this manner.
Module 4: Troubleshooting the Recovery Storage Group 23
MsExchOrigMDB
This is a string value attribute of all Mailbox Store objects in Exchange Server
2003. A Mailbox Store that is hosted in a normal Storage Group will have the
attribute set to <not set>. When a Mailbox Store is added to a Recovery
Storage Group this attribute is set to the Distinguished Name of the original
Mailbox Store.
This attribute is used to link the new Mailbox Store Active Directory object in
the Recovery Storage Group back to its original Mailbox Store.
If this registry key is set to 1 then the Recovery Storage Group is ignored and
restores will be targeted at the mailbox stores in the ordinary storage groups on
the server.
Note The Information Store service does not have to be restarted for this
registry setting to take effect. The Information Store will recognize its existence
immediately.
Once the Recovery Storage Group has been created and the mailbox store
added to it, the restore process can begin.
When starting the backup client software it is important to remember that the
client software must be pointed to the Exchange 2003 server that contains the
Recovery Storage Group with the placeholder Mailbox Store object in it.
Using the Recovery Storage Group we can perform an online restore of the
Mailbox Store using an online backup set and a backup client like NTBACKUP
or an offline restore using existing .edb and .stm files.
signatures of these log files match those in the backup set. Use the
ESEUTIL /ml command to determine the signature of the log files.
7. Verify that hard recovery has completed successfully by running the
ESEUTIL /mh command against the .edb file. The header should contain a
line called State: Clean Shutdown. If Dirty Shutdown is displayed, then
hard recovery has not been initiated. To initiate a hard recovery, use a
command prompt and go to the folder containing the restore.env file and
issue the following command: ESEUTIL /cc
8. Verify that This database can be overwritten by a restore is checked and
then mount the Mailbox Store.
Module 4: Troubleshooting the Recovery Storage Group 29
When the Mailbox Store is mounted, all mailboxes will appear as disconnected
Note that there is no Full Text Indexing node on Mailbox Stores that are
mounted in a Recovery Storage Group.
The Mailboxes cannot be reconnected to Active Directory user objects.
30 Module 4: Troubleshooting the Recovery Storage Group
In the picture below we see the files that are restored to the server.
Notice that we have an E00.log and E00.chk file in this folder. This is the log
file prefix of the original Mailbox Store.
The log files from the E00 series are first replayed into the database. Then the
database is detached from the E00 log sequence and is then attached to the
Recovery Storage Group R00 log file sequence. The E00.log files and E00.chk
files are not removed from the folder.
You do not need to remove these files for the Recovery Storage Group to
function correctly.
Module 4: Troubleshooting the Recovery Storage Group 31
When the Mailbox Store is mounted, all mailboxes will appear as connected.
This is a little misleading as they are, in fact, disconnected. This is a known
issue with the Recovery Storage Group and will not be fixed. It does not affect
functionality of the Recovery Storage Group in any way.
Module 4: Troubleshooting the Recovery Storage Group 33
Note 6803 is the build of Exchange Server 2003 used in this example. The
Release To Manufacturing build is 6944.
In this scenario we will be able to restore our Exchange 2000 Server SP3
Mailbox Store to the Recovery Storage Group successfully. We will then be
able to mount the Mailbox Store in the Recovery Storage Group on the
Exchange 2003 server. Once we have mounted this Mailbox Store a database
upgrade will take place on the .edb and .stm files. This will mean that you may
not be able to mount this database back on the Exchange 2000 SP3 server after
this operation.
During the restore process you can specify to perform a hard recovery (Last
Backup Set). This will effectively bring the database to a consistent state (Clean
Shutdown). During this process the Recovery Storage Group server will
perform a partial mount of the database which will initiate the database
upgrade. So even if you choose not to physically mount the Mailbox Store on
34 Module 4: Troubleshooting the Recovery Storage Group
the Recovery Storage Group server, you still may not be able to move the
database files back to the Exchange 2000 server.
It is recommended to Exmerge the data back from the Recovery Storage Group
server to the Exchange 2000 SP3 server.
Module 4: Troubleshooting the Recovery Storage Group 35
Exmerge
Exchange Server 2003 will include a new version of Exmerge which is used to
salvage data from Mailbox Stores that are mounted in a Recovery Storage
Group. Earlier versions of Exmerge cannot be used for this purpose.
Exmerge uses a new method to log onto recovery databases. It performs an
“Admin logon” which basically will view the Mailbox table of the database. It
will see a list of mailboxes and will then match these mailboxes to the
corresponding Active Directory user objects by matching the Mailbox GUID it
sees in the database to a Mailbox GUID in the Active Directory.
If it cannot match this Mailbox GUID to an Active Directory object, then it will
skip the mailbox and an error will be generated in the exmerge.log file. We will
look at the cause of this later.
The first step of the Exmerge process is to extract the data into .pst files. The
process can be broken down as follows:
1. The Exmerge Splash Screen:
36 Module 4: Troubleshooting the Recovery Storage Group
6. A list of mailboxes on the specified store will now be presented. Select the
desired mailbox(es) and then click Next.
Module 4: Troubleshooting the Recovery Storage Group 39
8. Specify a folder on the server where the .pst files will be created. A network
share can be used but this will have a performance impact on the recovery.
Whenever possible, use drive space on the local server.
40 Module 4: Troubleshooting the Recovery Storage Group
9. Here you choose to save the various settings in Exmerge. Click Next.
At this point we have successfully exported the data from the mailbox in the
Recovery Storage Group out to a .pst file. The next step is to import the data
back into the production Mailbox Store.
If you encounter any failures during the initial data export, the best place to start
is the Exmerg.log file. This file will be located in the same folder as the
Exmerge.exe file.
Module 4: Troubleshooting the Recovery Storage Group 41
Once we have the data exported to .pst files, we can then import the data into
the production Mailbox Store. The Exmerge import process is as follows:
1. Set the correct permissions on the target Mailbox Store. By default,
Administrator(or the account used to install Exchange), Domain Admins
and Enterprise Admins have an inherited Deny and an inherited Allow on
Send As and Receive As on mailbox stores. This effectively results in a
Deny on the Mailbox Store. In order to successfully import data to a
Mailbox Store, we either have to override these permissions or use an
account that does not have a Deny.
The default permissions for a Mailbox Store in Exchange Server 2003 are as
follows:
The Administrator has an inherited Deny for Receive As and Send As.
Domain Admins and Enterprise Admins will also have the same inherited
Deny. If we were to attempt to import data using the Administrator account into
a user’s mailbox on this store with these permissions set, it would fail and we
would see the following on the Exmerge.log file:
[21:53:44] Error opening message store (MSEMS). Verify that
the Microsoft Exchange Information Store service is running
and that you have the correct permissions to log on.
(0x8004011d)
42 Module 4: Troubleshooting the Recovery Storage Group
If you are seeing this error on the Exmerge.log file, then you need to check that
the account you are using has Send As and Receive As.
Module 4: Troubleshooting the Recovery Storage Group 43
In order to override these inherited, Denies we can set explicit Allows as shown
in the image below:
These explicit Allows take precedence over inherited Denies. Remember that
the explicit Allows must be set for the user and all groups that the user is a
member of. In this case we would have to set explicit Allows for Domain
Admins and Enterprise Admins.
When the permissions have been set up correctly, we can continue with the
import.
44 Module 4: Troubleshooting the Recovery Storage Group
3. Select the database that we are going to import the data into. Notice that
Recovery Storage Groups are not visible when importing data.
Module 4: Troubleshooting the Recovery Storage Group 45
6. Choose the directory that contains the .pst files and then click Next.
If you have any issues during the import process,s then Exmerge will display as
follows:
In this situation, the first place to check is the Exmerge.log file. The log file will
offer more detailed information on what went wrong.
The most common error here is incorrect permissions. Check the security on the
target mailbox store and try the import again.
48 Module 4: Troubleshooting the Recovery Storage Group
An issue you may run into when trying to extract data from a Recovery Storage
Group using Exmerge is when Exmerge cannot match the Mailbox GUID from
the database with a user object in the Active Directory. The following error will
be shown during the extraction phase:
There are a couple of workarounds to allow us to get the data from the
mailboxes in this scenario.
The first workaround is to perform a “victim restore” of the mailbox store to
another Exchange 2003 server in the same Admin Group. Once the mailbox
store has been successfully restored to another server, we can then reconnect the
required mailboxes to Active Directory objects and then use Exmerge to extract
the data.
See the following article for a more detailed look at the process:
324127 XADM: How to Restore an Information Store Database to a Server
That Resides in the Same Active Directory Forest
http://support.microsoft.com/?id=324127
The second workaround would be implemented if the customer has already
performed the restore of the data using a Recovery Storage Group. Let us
assume the customer has restored a fairly large database in order to recover
some data from a mailbox that has since been deleted. The customer then
discovers that he cannot Exmerge out the data due to the Mailbox GUID
mismatch problem. We really do not want to tell the customer to perform a new
“victim restore” as that will obviously take a fair amount of time.
We have the mailbox store in the Recovery Storage Group and it should be
consistent. We can create a new Storage Group on the Exchange 2003 server
and then create a Mailbox Store in this Storage Group. Make sure that the
Mailbox Store that is created has the same database names as our restored
Recovery Database. We can then move the database files from the Recovery
Storage Group into the Storage Group, mount the mailbox store, reconnect the
necessary mailboxes and Exmerge out the data.
50 Module 4: Troubleshooting the Recovery Storage Group
Overview of Exercise 2
1. User1 needs a piece of mail or their entire mailbox recovered.
2. Create a Recovery Storage Group on any server in the Admin Group AG1.
3. Add Mailbox Store MBX1 to Recovery Storage Group.
4. Start backup client and restore valid backup of MBX1. (The backup client
will need to be pointed to the server containing the Recovery Storage
Group). Check the ”Last Backup Set” as appropriate.
5. Mount MBX1 in the Recovery Storage Group. (All users appear as
disconnected.)
6. Exmerge out User1’s data (from Recovery Storage Group to PST).
7. Exmerge in User1’s data (from PST to live Mailbox Store).
8. Done. Dismount and delete MBX1 in the Recovery Storage Group. Delete
the Recovery Storage Group.
Objective:
To recover a single mail item using a Recovery Storage Group.
42. Use Exchange System Manager and drill down to the server Z2. Take
properties on the Mailbox Store(Z2) and select the Security tab.
43. Click on the Advanced tab and uncheck the Allow Inheritable
permissions checkbox.
44. Click Copy and then OK and then Yes.
45. For Administrator, Domain Admins and Enterprise Admins, make sure
that they have only Allow checked for Receive As and Send As. Click
Apply and then OK
46. We are now ready to recover the mail item using Exmerge. Start
Exmerge.exe from the bin folder.
47. Click Next.
48. Choose Extract and Import (One Step Procedure) and click Next.
49. For the Exchange Server name, type Z3 (this is the server with the
Recovery Storage Group) and type Z2 for the domain controller.
50. Click the Options button.
51. Accept the default settings on the Data tab.
52. Click the Message Details tab. In the Enter new message subject tab
type IMPORTANT and then click Add. Then click OK.
53. Click Next.
54. In the Destination Exchange Server, type Z2 and click Next.
55. Choose the Recovery Storage Group/Mailbox Store (Z2) and click
Next. (Note: You will not get the Recovery Storage Group option with
previous versions of Exmerge.)
56. Select the ‘Exercise2’ mailbox and then click Next.
57. Click Next to accept the default locale.
58. Select the folder c:\exmerge and click Next.
59. Click Next to start the import.
60. Click Finish.
61. Go to the Exercise2 mailbox in Outlook Web Access and the mail item
IMPORTANT should be back in place.
62. We can now dismount and delete the Recovery Storage Group mailbox
store. Use Exchange System Manager to dismount the Mailbox Store in
the Recovery Storage Group. Then delete the Mailbox Store.
63. Then Delete the Recovery Storage Group from Exchange System
Manager
64. Delete the directory c:\program files\exchsrvr\recovery storage group.
65. We now have to reset the permissions on the live mailbox Store.
Locate the Store, select Properties and then choose the Security tab.
66. For Administrator, Domain Admins and Enterprise Admins check both
the Allow and Deny checkboxes for Receive As and Send As.
67. Then check the “Allow inheritable permissions” checkbox.
68. Click Apply. You will receive a warning that the properties will not be
visible until the next time you open it. Click OK and then OK again.
54 Module 4: Troubleshooting the Recovery Storage Group
Objective:
To simulate a store crash, and recover an entire Mailbox Store while allowing
users to send/receive e-mail using a “dialtone” (temporary empty swap)
database.
Overview of Scenario 2 Recovery Storage Group Restore
1. MBX store1 becomes corrupted and will not mount. Log files are intact. Other
databases in the Storage Group are okay.
2. Move out corrupted databases and mount blank (dialtone) databases. Users can log in
and start working immediately.
3. OST files are destroyed (since their keys were in the corrupted DB). Presently, there is
workitem in Outlook 2003 to stop this from happening and redirect user to OWA
instead, but these are just plans and not final.
4. Create an Recovery Storage Group on any server in the same AG and add MBX1 to it
5. Copy over required log files from original server to the Recovery Storage Group.
6. Start backup client and restore valid backup of MBX1. (The backup client will need to
be pointed to the server containing the Recovery Storage Group). Check the ”Last
Backup Set” as appropriate.
7. Mount MBX1 in the Recovery Storage Group. All users appear as disconnected
8. Dismount both copies of MBX1. Both databases will be set as ”Clean Shutdown”.
Switch the databases with each other and remount them. Old OST keys now recovered.
9. Exmerge over the restored data to the live database
10. Exmerge the ”new” data from the Recovery Storage Group MBX1 (previous
dialtone) back into the recovered MBX1. This should be relatively little data.
11.Done. Dismount and delete MBX1 from the Recovery Storage Group
Module 4: Troubleshooting the Recovery Storage Group 55
Username: Administrator
Password: Password1
15. Repeat the previous step, but except change it on the Public Folder
Store. We will assume that the customer does not care for immediate
public folder access, so we will not cover this as the pub may be
repaired on another server, or on the same server at a later time.
16. Open an explorer and drill down to c:\program files\exchsrvr\mdbdata.
Move all the files (except for pub.edb & pub.stm) to c:\temp (create the
folder if necessary)
17. Start the Information Store service using the command "net start
msexchangeis"
18. Go to ESM and mount the Mailbox Store. You will be warned that one
of the database files is missing. Click Yes to accept this.
19. Go back to Ex3user’s mailbox and confirm that the mailbox is empty.
20. Create a new mail item, address it to Ex3user and attach the progress
log file(s) again. In the subject type "Post Crash - Blank Store"
21. At this point our user can send and receive mail. For the next steps, we
must create an Recovery Storage Group, restore from our backup set
and also replay any log files that we moved in to c:\temp
22. Using ESM create an Recovery Storage Group on the server and add
the Mailbox Store(Z3) to it.
23. Go to c:\temp and copy the following files into "c:\program
files\exchsrvr\Recovery Storage Group": E00.log & any other log file
from the E00xxxxxx.log range (Do not move Res1.log and res2.log.
They are not required)
24. Start NTBACKUP and choose the restore tab
25. Drill down through the media we created in the earlier step. Select the
Mailbox Store and the Log Files only.
26. Click on Start Restore.
27. Leave the Restore To: field as default. Specify c:\templogs as the
temporary location. As we want to perform a hard recovery afterwards
we should check the Last Backup Set.
28. Click OK to start the restore. Click OK again to confirm. After the
restore is complete it may take a while before hard recovery completes
successfully.
29. Look in the Application Log for an ESE 902 event. This signifies that
the hard recovery succeeded
30. The Mailbox Store in the Recovery Storage Group is now at a
consistent state.
31. We are now going to dismount the live Mailbox Store and switch the
database files with each other.
32. Go to ESM and dismount the nearly-empty Mailbox Store
33. Open an explorer and drill down to c:\program files\exchsrvr\mdbdata.
34. Move priv.edb & priv.stm to a temporary location (Perhaps a new
directory named something like c:\cleanshutdown-almostempty)
35. Move the files "Mailbox Store (Z3).edb & .stm from c:\program
files\exchsrvr\Recovery Storage Group to c:\program
files\exchsrvr\mdbdata (Notice that the database names are not the
same by default)
Module 4: Troubleshooting the Recovery Storage Group 57
36. Once the files are in the mdbdata folder we need to rename them back
to priv1.edb & priv1.stm
37. Use ESM and take properties on the live Mailbox Store. On the
database tab check the "This database can be overwritten by a restore"
38. We can now mount the Mailbox Store
39. The Ex3user user should now be able to see the mail items prior to the
crash in his mailbox
40. The Post crash mail should not be visible
41. We now have to move the database files from the temporary location
(created in step 34) into c:\program files\exchsrvr\Recovery Storage
Group.
42. Clean-up any other residual files in the Recovery Storage Group
directory so that only the EDB and STM remain.
43. Rename the edb and stm to the names expected by the non-Recovery
Storage Group store object in AD. (Typically Mailbox Store (Z3).edb
& .stm)
44. We can now mount the Mailbox Store in the Recovery Storage Group
45. The Mailbox Store in the Recovery Storage Group is now mounted.
We will now use Exmerge to merge over the post crash data into the
live store.
46. Use the same steps as outlined in Scenario 1 to use Exmerge out the
data from the Recovery Storage Group to the live store.
47. When you are done, dismount and delete the Recovery Storage Group.
58 Module 4: Troubleshooting the Recovery Storage Group
Acknowledgments
Microsoft Employee
Simon Walsh
Michael Lee
Module 5: Clustering
Contents
Resource Dependencies 1
Cluster Service Account Permissions 5
MsExchange_NodeState 9
DNS registration/Kerberos 12
AntiAffinityClassNames 16
Mount Point Drives 22
Creating an Exchange Virtual Server 33
Upgrading an Exchange Virtual Server to
Exchange 2003 56
Removing an Exchange Virtual Server 64
Lab 5.1 : Clustering 88
Information in this document, including URL and other Internet Web site references, is subject to
change without notice. Unless otherwise noted, the example companies, organizations, products,
domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious,
and no association with any real company, organization, product, domain name, e-mail address,
logo, person, place or event is intended or should be inferred. Complying with all applicable
copyright laws is the responsibility of the user. Without limiting the rights under copyright, no
part of this document may be reproduced, stored in or introduced into a retrieval system, or
transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or
otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.
Microsoft, MS-DOS, Windows, Windows NT, Active Directory, ActiveX, Excel, Exchange Server
5.5, Exchange 2000 Server, Exchange Server 2003, Internet Explorer, Internet Information Server,
Word are either registered trademarks or trademarks of Microsoft Corporation in the United States
and/or other countries.
The names of actual companies and products mentioned herein (Groupwise, Lotus cc:Mail, Lotus
Notes) may be the trademarks of their respective owners.
Module 5: Clustering 1
Resource Dependencies
Exchange 2000 The Information Store resource has five dependencies: SMTP, HTTP, POP,
Resource Dependency IMAP and Microsoft Search service. The message transfer agent (MTA) and
Tree Routing Engine resources are directly dependant on the System Attendant. In
the event of a failover, all resources that have a dependency must go offline
before the resource that it is dependant on them can attempt to go offline.
In the scenario above the SMTP, HTTP, IMAP4, POP3 and Microsoft Search
service must successfully go offline (or fail) before the Information Store
resource can attempt to go offline. The MTA and Routing Engine resources can
attempt to go offline immediately, as they do not have any resources that are
dependant on them.
Traditionally in Exchange 2000 clusters, the SMTP and the Information Store
resources took the longest amount of time to go offline/come online. This could
be attributed to large SMTP queues or mounting/dismounting large databases.
This obviously will lead to longer failover times as the Information Store
resource has to wait for the SMTP resource to go offline before it can attempt to
go offline/come online.
Module 5: Clustering 3
In Exchange Server 2003, the resource-dependant tree has been altered so that
all Exchange 2003 cluster resources are now directly dependant on the System
Attendant resource.
Resource Dependency Here we see that all the Exchange related resources are now directly dependant
Tree in Exchange 2003 on the System Attendant. This effectively means that the SMTP (and other
protocol resources) can now be brought online/go offline in parallel with the
store. This makes for faster failovers of the Exchange Virtual Server.
During the creation of the Exchange Virtual Server process, the correct
dependencies will be set.
Note The POP3 and IMAP4 resources are not created by default. If they are
created manually, then you will need to set a dependency on the System
Attendant (this is mandatory).
You will see the above entries for all Exchange resources that are upgraded to
Exchange 2003.
Module 5: Clustering 5
Related articles/bugs:
329702.KB.EN-US
In order to successfully create, delete or modify an Exchange 2000 Exchange
Virtual Server, the Windows 2000 cluster service account required “Exchange
Full Administrator” permissions at the organization level if it was the first
Exchange Virtual Server in the org. If it was not the first Exchange Virtual
Server in the org then it required Exchange Full Administrator on the Admin
Group that it was being installed into.
6 Module 5: Clustering
Permission The Exchange Virtual Server creation process (shown above) can be broken
requirements in down as follows:
Exchange 2000
Permissions In the Exchange 2003 the Exchange Virtual Server creation process can be
requirements in broken down as follows:
Exchange 2003
MsExchange_NodeState
In this screen shot we can see that Nodes 1 and 2 have the value set and Nodes
3 and 4 do not.
In Exchange 2000 we did not check if a node in the cluster had the Exchange
binary files installed. This would cause problems when calculating if
Active/Active or Active/Passive was allowed in the cluster.
For example, If we have a three-Node cluster but we have only installed
Exchange 2000 on two of the Nodes, we should be allowed to have an
10 Module 5: Clustering
In Exchange 2003 we now write this value to the registry on each Node in order
to tell us that the Node is Exchange enabled (i.e. it can be added as a possible
owner of an Exchange 2003 resource).
It is also used to determine the maximum number of Exchange Virtual Servers
that can be created in the cluster.
For example if we have six Nodes in the cluster but only four of them have the
MSExchange_NodeState set to 1, then we can create a maximum of three
Exchange Virtual Servers.
The maximum is three in this example, as we always enforce at least one
passive node in cluster with greater than two Nodes.
The registry value is written to the following location:
HKLM\Cluster\Nodes\<Node_ID>\Parameters\MSExchange_NodeState
REG_DWORD=1
Note The Node_ID value is set when the node is added as a member of the
cluster. The first node in a cluster will always have a Node ID of 1.
When the value is set to 1, then the node is Exchange 2003-enabled and can be
set as a possible owner of Exchange 2003 resources in the cluster.
If this value is set to 0 or does not exist, then the Node will not be allowed as a
possible owner for Exchange 2003 resources.
If you attempt to add a cluster node as a possible owner of an Exchange 2003
resource you will receive the following error:
From the Exchange Server Setup Progress log we can see Setup writing these
attributes:
[02:25:13] Entering
CAtomClusterServer::ScSetExchangeStateOnCluster
[02:25:13] Entering CAtomClusterServer::ScSetNodeProperty
[02:25:13] Setting DWORD MSExchange_NodeState=1 on node
'NODE1'
[02:25:13] Setting DWORD MSExchange_CurrentBuild=452526080 on
node 'NODE1'
[02:25:13] Leaving CAtomClusterServer::ScSetNodeProperty
[02:25:13] Leaving
CAtomClusterServer::ScSetExchangeStateOnCluster
[02:25:13] Entering
CAtomClusterServer::ScEnableNodeAsPossibleOwer
[02:25:13] Leaving
CAtomClusterServer::ScEnableNodeAsPossibleOwer
DNS registration/Kerberos
Related articles:
Article 235529
Windows 2000 SP3 added support for Kerberos authentication against clustered
virtual servers. Prior to Windows 2000 SP3, all authentication against clustered
virtual servers was NTLM or NTLM version 2 (NTLMv2). Prior to Windows
2000 SP3, a clustered virtual server did not have a corresponding Active
Directory computer object. When the RequireKerberos property was set to 1
and the Network Name resource was restarted an Active Directory computer
object would be created.
Support for another property RequireDNS was also added in SP3. This would
mean that the clustered virtual server would have to successfully register its
own host record (A-record) in DNS in order to come online.
Both of these properties are private properties of a Network Name resource and
can be set to either 0 or 1. RequireKerberos and RequireDNS have defaults of 1
and 0, respectively. Setting either of these values to 1 is not supported for an
Exchange 2000 Virtual Server. An Exchange 2000 Network Name resource
required that these properties be set to 0.
Therefore all authentication against Exchange 2000 Virtual Servers is NTLM or
NTLM version 2.
In Exchange 2003 we now enforce the use of Kerberos authentication. This is
done automatically by the setup process for non-clustered servers. For clusters,
these private properties are set during the creation of the virtual server. To view
the properties in Windows 2000 we need to use the command line cluster.exe
tool as follows:
Cluster res “my EVS Network Name” /priv
In Windows 2000 this can only be set by using the command line tool
cluster.exe. In the screenshot above, the cluster.exe command has already been
used to change the RequireDNS property to a value to “1”.
14 Module 5: Clustering
In Windows 2003 Server these properties are changeable from the GUI of
cluster administrator.
As mentioned earlier, there is no need to set these manually as the setup process
will automatically set requireKerberos to 1 and requireDNS to 0. If, after
starting these resources with their defaults, you change requireKerberos to 0
(i.e. uncheck it from the UI,) then the Network Name resource will fail to come
online. Changing the DNS requirement does not affect how resources come
online unless you are using static DNS, where all records need to be entered by-
hand.
From the Exchange Server Setup Progress.log we can see Exchange Virtual
Server-creation setting these values:
Module 5: Clustering 15
The requirement for DNS registration to succeed was removed from Exchange
2003 in build 6917. This was due to the fact that the Network Name resource
would fail to come online if the DNS service in use did not support dynamic
updates.
If a dynamic update DNS service is in use, then the RequireDNS can be set to
1 for an Exchange 2003 Network Name resource.
If a non dynamic update DNS service is in place then it is essential to make sure
that the correct A-records exist for the Exchange Virtual Server Network
Names resource. If this is missing you may run into transport/routing issues.
The requireKerberos setting will now create an Active Directory object for the
Exchange Virtual Server. In order for this to succeed, the Cluster Service
account will need to have the “Add workstations to the Domain” right. It should
be a domain account and will therefore have this right by default.
A detailed description of the Network Name resources in Windows 2003 can be
obtained in article 302389.
16 Module 5: Clustering
AntiAffinityClassNames
In the image above we can see a four-Node cluster. There are three Exchange
Virtual Servers and the AntiAffinityClassNames property is set to “Microsoft
Exchange Virtual Server”.
If EVS01 was to fail, then failover manager would try and find a node in the
cluster that did not own a cluster group with this property set to “Microsoft
Exchange Virtual Server”.
In this case EVS01 would fail over to node CLU-NODE04.
The value of AntiAffinityClassNames is not visible from the GUI. It can only
be seen using the cluster.exe command line tool.
Module 5: Clustering 19
When one creates an Exchange 2003 virtual server on a Windows 2003 cluster
this attribute will be automatically set to “Microsoft Exchange Virtual
Server”. If you are seeing it set to some other string then it has probably been
changed manually and should be changed back to the default setting.
20 Module 5: Clustering
In the above image we can see that there are three Nodes in the cluster. By
selecting Best Possible, then the cluster group containing the Exchange Virtual
Server will be moved to a Node that does not currently host a group with the
AntiAffinityClassNames set to “Microsoft Exchange Virtual Server”.
Module 5: Clustering 21
Mount Point Drives have been available since Windows 2000. They were,
however, not supported for use in Windows 2000 clusters. This essentially
limited the drive letter assignments in a Windows 2000 cluster to a maximum
of 26. This number included local drive assignments on each cluster node.
For example, a cluster node may have local physical disks A: (Floppy Drive),
C: (Local Disk) and D: (Local Disk). This would effectively leave 23 drives
that could be assigned to the cluster. As each node in the cluster may be a
possible owner of each of these 23 disk resources, this would limit the entire
cluster to 23 disk resources.
As the supported number of Nodes in clusters increases, this limitation begins
to seriously hamper the ability to build enterprise class solutions.
In Windows 2003 Server, support for mount point drives has been added in
Windows clusters.
Support for Mount Point Drives does not exist in Windows 2000.
A mount point drive is an entire volume that is mounted inside another folder
that is hosted by another volume.
Module 5: Clustering 23
The steps to create a mount point drive available for cluster use are as follows:
1. A new unformatted disk will be available in Disk Manager. Make sure that
it is a Basic Volume. Right-click it and choose new partition.
5. In this scenario we are going to use Disk R: which is a disk in our cluster.
6. I have created a new folder on R:\ called Mount which will host the new
volume.
26 Module 5: Clustering
7. Give the volume a label and then format it using NTFS. It must be formatted
with NTFS.
10. To avoid confusion, Mount Point drives appear as physical disks rather than
folders when viewed in Explorer. If you were to remove the Mount Point
Drive then the folder R:\Mount would remain on R:\ as a normal folder.
28 Module 5: Clustering
11. Now we have to create the cluster resource for the Mount Point Drive.
Note The Mount Point Drive resource must be in the same cluster group as
our hosting disk R:\.
Using Cluster Administrator, locate the correct Cluster Group and then
create a new resource. Give the resource a name and choose Physical Disk
for the resource type. Click Next.
Module 5: Clustering 29
12. Set the possible owners for the resource. In this scenario we only have one
Node.
30 Module 5: Clustering
14. Now choose the correct Mount Point Volume that we created earlier. If you
are unsure, then use Disk Manager to locate the correct disk number.
Module 5: Clustering 31
15. After clicking “Finish,” the Mount Point Drive resource will now appear in
Cluster Administrator.
16. The Mount Point Drive properties can then be seen in the registry:
32 Module 5: Clustering
Once the Exchange 2003 binaries have been installed on the cluster Node we
can now create an Exchange Virtual Server. It is a good idea to make sure that
all the required Nodes in the cluster have the Exchange 2003 binary file
installed before proceeding with the Exchange Virtual Server creation.
The Exchange Virtual Server creation process is much the same as Exchange
2000.
First we need to create a cluster group to house the Exchange Virtual Server.
Within this group we must have at least one physical disk resource, at least one
IP address resource, and a network name resource.
The network name resource must have a dependency on all the IP address
resources in the cluster group (assuming that all the IP address resources will be
used for Exchange 2003 purposes)
When we have these resources in the group, we can begin the creation of the
System Attendant resource. Once the System Attendant Resource has been
created all the other Exchange 2003 cluster resources will be created
automatically.
Right-click on the Exchange 2003 cluster group and choose New Resource and
then choose Microsoft Exchange System Attendant. Give it an identifiable
name and click Next
34 Module 5: Clustering
Module 5: Clustering 35
Add the Nodes that will be possible owners of the System Attendant Resource.
These Nodes will also be added as possible owners of all the other Exchange
resources that are automatically created. A Node must be specified as a possible
owner of a resource in order for us to failover to that Node.
Note If you attempt to add a Node that does not have the
MSExchange_NodeState value set to 1 then you will receive the following
error:
The specified Node will not be able to be a possible owner of the resource until
the Exchange 2003 binary files have been installed on the Node (which in turn
will add the MSExchange_NodeState value in the registry).
Now we have to set the dependencies on the System Attendant Resource. You
must set a dependency on the Network Name resource and all disk resources
that you plan to use for Exchange 2003 related use. This includes all Mount
Point Disks which will contain Exchange 2003 data.
If more than one Administrative Group exists, choose the Administrative Group
that we will install the Exchange Virtual Server into.
If this is not the first Exchange Virtual Server in the cluster, then this choice
will be automatically set to the Admin Group of the other Exchange Virtual
Server(s). All Exchange Virtual Servers in a cluster must be part of the same
Admin Group.
Module 5: Clustering 37
38 Module 5: Clustering
Now we have to choose a path for the Exchange Virtual Server. We must
specify a path on a disk that we specified in the dependencies section earlier.
If the specified location is not empty, then we will receive the following error:
Remove files from the specified directory, or specify a new directory that is
empty.
40 Module 5: Clustering
We will now be presented with an overview of the choices made in the creation
wizard.
If you need to change any of the choices, then you can use the Back button to
navigate back and make the necessary changes.
Click Finish to start the creation process. This may take a little while as it
actually creates all the other Exchange 20003 cluster resources.
When the process is complete you will receive a prompt as follows:
Module 5: Clustering 41
In the Cluster Administrator tool, we should now see all the Exchange 2003
cluster resources. They will be offline.
Exchange 2003 no longer creates an IMAP4 and POP3 cluster resource. This is
part of a security push and also ties in with a standalone installation which also
disables the IMAP4 and POP3 services by default.
Exchange Virtual The entire Exchange Virtual Server process is logged to the Setup Progress
Server Creation Log. If any difficulties arise as part of the creation process, the best place to
outlined in setup start looking is in this log.
progress log
Below is a copy of the entire process:
42 Module 5: Clustering
[07:10:40] We have sufficient admin rights, the schema is up to date and org-level
objects are present on the local DC; m_strDCToUse = "DC"
[07:10:40] Sanity check:
[07:10:40] m_strDCToUse = "DC"
[07:10:40] m_psesToUse->m_strServerName = "DC"
[07:10:40] Leaving CDirectoryManager::ScInitializeSessions
[07:10:40] Leaving CDirectoryManager::ScInit
[07:10:40] Leaving CDirectoryManager::ScReInitWithDC
[07:10:40] Entering ScGetDomainInfoFromServer
[07:10:40] Leaving ScGetDomainInfoFromServer
[07:10:40] Entering ScGetExchangeDsConfigFromDs
[07:10:40] Looking for Exchange server object 'EVS01'
[07:10:40] Couldn't find the Exchange Server Object for this server.
[07:10:40] Leaving ScGetExchangeDsConfigFromDs
[07:10:40] Entering ScGetOrganization
[07:10:40] Organization name='EXCHANGE'
[07:10:40] Leaving ScGetOrganization
[07:10:40] Entering ScGetExchangeServicesInstallPathFromRegistry
[07:10:40] Exchange install path on server 'node02.exchange.org' is 'C:\Program
Files\Exchsrvr'
[07:10:40] Leaving ScGetExchangeServicesInstallPathFromRegistry
[07:10:40] Data path is 's:\mount\exchsrvr'
[07:10:40] Entering ScEnumerateExchangeServersInCluster2
[07:10:40] Entering ScEnumerateExchangeServersInCluster
[07:10:40] Getting cluster resource info...
[07:10:40] Adding cluster network name resource 'CLUSTER' to list
[07:10:40] Adding cluster network name resource 'EVS01' to list
[07:10:40] Executing LDAP query
"(&(objectCategory=msExchExchangeServer)(|(networkAddress=netbios:CLUSTER)(networkA
ddress=netbios:EVS01)))"
[07:10:40] Leaving ScEnumerateExchangeServersInCluster
[07:10:40] Leaving ScEnumerateExchangeServersInCluster2
[07:10:40] Responsible MTA server name: EVS01
[07:10:40] Context data "ClusterToBind" (CStr), previously set to "localhost",
being reset to "node02.exchange.org" ClusterToBind
(f:\titanium\admin\src\udog\inc\exsetctx.hxx:146)
The operation has completed successfully.
[07:10:40] Context data "LocalServer" (CStr), previously set to "NODE02", being
reset to "EVS01" LocalServer (f:\titanium\admin\src\udog\inc\exsetctx.hxx:139)
The operation has completed successfully.
[07:10:40] Context data "ResponsibleMTAServer" (CStr), previously set to "NODE02",
being reset to "EVS01" ResponsibleMTAServer
(f:\titanium\admin\src\udog\inc\exsetctx.hxx:138)
The operation has completed successfully.
[07:10:40] Entering CFileManager::ScSetInstallDestDir(sz)
[07:10:40] Leaving CFileManager::ScSetInstallDestDir(sz)
[07:10:40] Entering ScCheckLocalAndRemoteExchangeBuilds
[07:10:40] Entering ScGetExchangeBuild
[07:10:40] Exchange build number on server 'node02.exchange.org' is '6944.0'
[07:10:40] Leaving ScGetExchangeBuild
[07:10:40] Entering ScGetExchangeBuild
[07:10:40] Exchange build number on server 'localhost' is '6944.0'
[07:10:40] Leaving ScGetExchangeBuild
[07:10:40] Leaving ScCheckLocalAndRemoteExchangeBuilds
[07:10:40] Entering ScCheckStateOfDependentResources
[07:10:40] Entering ScBindToEVS
46 Module 5: Clustering
The first step to upgrade an Exchange 2000 cluster is to install the Exchange
2003 binary files on the cluster Nodes. The Exchange 2003 binary files can
only be installed on a passive node in the cluster. Setup will not continue if you
attempt to install them on an active node.
The process of installing the binary files on a passive Node does not really
differ in any way from Exchange 2000.
For this scenario we can assume an Active/(Passive Exchange 2000 cluster that
will be upgraded to Exchange 2003. We can also assume that the other
installation prerequisites have been met.
The steps to upgrade are as follows:
On the passive Node run setup.exe and upgrade the binary files. In this case it is
called CLU-NODE02.
Module 5: Clustering 57
Assuming that all the installation prerequisites have been met, the installation of
the files should complete. In Exchange 2000 clusters we recommended that you
have a Microsoft Distributed Transaction Coordinator (MSDTC) resource in the
cluster. There was no hard requirement for this. In Exchange 2003 there is, so if
the Exchange 2003 setup does not detect the presence of an MSDTC resource it
will fail and report an error to the user.
Once the binary files have been installed you must reboot the server. During the
installation, the Exchange 2000 binaries are updated. The Exchange resource
.dll file exres.dll is also updated. To be sure that we are using the correct
version of exres.dll, it is advisable to reboot the server.
58 Module 5: Clustering
When we have rebooted the passive Node, we then have to take the Exchange
Virtual Server on the active node offline and then fail it over to the passive
Exchange 2003 node. If we attempt to just fail the Exchange Virtual Server
over, it will not come online. This is because we have to manually initiate the
upgrade process (we will look at this later).
The process of installing the binary files is logged in the progress log. A sample
progress log from the binary upgrade process is included at the end of this
document.
Module 5: Clustering 59
In order for the upgrade process to successfully complete, the Network Name
resource and the Physical Disk resources associated with the Exchange Virtual
Server must be online. If they are not, you will receive the following errors:
60 Module 5: Clustering
The Exchange Virtual Server is still offline at this point, but the cluster is
effectively running Exchange 2003.
Bring the Exchange 2003 resources online.
62 Module 5: Clustering
We will now have a computer object in the Active Directory for the Exchange
Virtual Server.
Upgrading the number A few customers may desire to scale-out the number of Exchange Virtual
of cluster nodes with Servers in a cluster, while simultaneously upgrading their operating systems.
Exchange 2003 and Here are the steps to do so:
Windows 2003
1. Start off with Exchange 2000 SP3 running on Windows 2000 SP3.
2. In-place upgrade Exchange 2000 to Exchange 2003 on node 1
(passive).
3. Fail-over and in-place upgrade Exchange 2000 to Exchange 2003 on
node 2 (now passive).
4. In-place upgrade Windows 2000 to Windows 2003 on node 2
(passive).
5. Fail-over and in-place upgrade Windows 2000 to Windows 2003 on
node 1 (now passive).
6. Add more nodes.
7. Create the appropriate number of new Exchange Virtual Server in
Exchange 2003.
64 Module 5: Clustering
The attribute is a private property of the Cluster Group that houses the
Exchange Virtual Server. This property is set on the group during the creation
of the Exchange Virtual Server and can be seen in the Progress Log:
[03:04:48] Entering ScUpdatePropertiesOnGroup
[03:04:48] Processing group 'EVS01'
[03:04:48] Setting property
'MSExchange_VirtualServerName'='EVS01'
[03:04:48] Leaving ScUpdatePropertiesOnGroup
This property should not be changed in any way. If this value is different from
the name of the Exchange Virtual Server, then it has probably been changed
manually and should be changed back to reflect the Network Name resource
that represents the Exchange Virtual Server.
66 Module 5: Clustering
The supported methods for removing an Exchange Virtual Server are by right-
clicking on either 1) the cluster group containing the Exchange Virtual Server
or 2) the System Attendant Resource and choosing Remove Exchange Virtual
Server.
In order to successfully remove an Exchange Virtual Server you need to have
Exchange Full Administrator permissions on the Administrative Group that the
Exchange Virtual Server belongs to.
Note If this is the last Exchange 2003 Server in the organization, then you will
need to Exchange Full Administrator permissions on the organization.
The Windows 2000/2003 cluster service account does not require any
permissions on the Organization or Administrative Group.
Move or delete the mailboxes and then try to remove the Exchange Virtual
Server again.
Take the System Attendant resource offline and try the operation again.
Each Exchange 2003 cluster will only have one message transfer agent (MTA)
resource for the entire cluster. This is by design. By default it is the first
Exchange Virtual Server in the cluster that will get the MTA resource. If we are
attempting to remove the group that owns the MTA resource and there are other
Exchange Virtual Servers still available in the cluster, then we will receive the
following error:
68 Module 5: Clustering
Problem removing In this situation we cannot remove the Exchange Virtual Server, as it hosts the
Exchange Virtual Server MTA resource required by all the Exchange Virtual Servers that still exist in the
hosting an MTA cluster. One option would be to move all mailboxes from another Exchange
resource in an Virtual Server in the cluster to the Exchange Virtual Server that hosts the MTA
Active/Active or resource and then remove that Exchange Virtual Server instead. There is no
Active/Active/Active/Pas
supported method for moving an MTA resource from an Exchange Virtual
sive cluster
Server to another Exchange Virtual Server.
Module 5: Clustering 69
If all these conditions have been met, then the Exchange Virtual Server will be
successfully removed. We will not receive any dialogs to say that it was
successful, but all the Exchange 2003 resources should have been deleted from
the Exchange Virtual Server cluster group and the computer object will be
removed from Active Directory.
The removal process will be logged in the Progress Log. This log can be
reviewed for reference afterwards. The entire contents of the progress log
removal process can be found at the bottom of this document.
70 Module 5: Clustering
After the Exchange Virtual Server has been successfully removed, the
MSExchange_VirtualServerName property will be removed from the cluster
group:
Deleting the System If a customer has deleted the Exchange 2003 System Attendant resource by
Attendant Resource mistake, we can use the following procedures to rebuild the Exchange Virtual
Server based on the Active Directory information.
We can take a look at the deletion process and how to recreate the Exchange
Virtual Server.
Remember that this is not the supported method. We are doing this to illustrate
how we recreate the Exchange Virtual Server.
Module 5: Clustering 71
The System Attendant resource and all resources that have a dependency on it
will now be listed. Click Yes to confirm the deletion.
All the Exchange 2003 resources will now be deleted from the Exchange
Virtual Server cluster group.
In this scenario we will also receive an error in the application log stating that
the System Attendant resource has been deleted improperly but the Exchange
Virtual Server still exists.
If we now look in Exchange System Manager we can see that the Exchange
Virtual Server still exists.
Module 5: Clustering 75
In this situation we have to recreate the Exchange Virtual Server based on the
original parameters in order to successfully remove it afterwards.
The steps are as follows:
In the original Exchange Virtual Server cluster group, make sure that the disks,
IP addresses and the Network Name resources are all online. Then right-click in
the group and choose New Resource. Choose Microsoft Exchange System
Attendant.
Set all the required possible owners of the resource and click Next.
76 Module 5: Clustering
Module 5: Clustering 77
Set a dependency on all the disks and IP addresses as you had in the original
Exchange Virtual Server.
The choice of Administrative Group will be presented. Notice that this cannot
be changed because Cluster administrator reads only one Admin Group in
Active Directory.
78 Module 5: Clustering
The data drive is then presented. Notice that it is grayed out. This information is
read in from Active Directory and cannot be changed.
Module 5: Clustering 79
We will then be presented with the summary of the creation process. Click
finish to initiate the creation.
When this is done we will now have all the Exchange 2003 cluster resources
back in place. The supported method of removal can now begin.
Beginning on the next page you will find an excerpt from the progress log for a
successful removal of the Exchange Virtual Server:
80 Module 5: Clustering
[07:01:42] We have sufficient admin rights, the schema is up to date and org-level
objects are present on the local DC; m_strDCToUse = "DC"
[07:01:42] Sanity check:
[07:01:42] m_strDCToUse = "DC"
[07:01:42] m_psesToUse->m_strServerName = "DC"
[07:01:42] Leaving CDirectoryManager::ScInitializeSessions
[07:01:42] Leaving CDirectoryManager::ScInit
[07:01:42] Leaving CDirectoryManager::ScReInitWithDC
[07:01:42] Entering ScGetDomainInfoFromServer
[07:01:42] Leaving ScGetDomainInfoFromServer
[07:01:42] Entering ScGetExchangeDsConfigFromDs
[07:01:42] Looking for Exchange server object 'EVS01'
[07:01:42] Organization name is 'EXCHANGE'
[07:01:42] Admin group name is 'First Administrative Group'
[07:01:42] Admin group name of routing group is 'First Administrative Group'
[07:01:42] Routing group name is 'First Routing Group'
[07:01:42] Responsible MTA server name is 'EVS01'
[07:01:42] Leaving ScGetExchangeDsConfigFromDs
[07:01:42] Entering ScGetExchangeServicesInstallAndDataPathFromAD
[07:01:42] Exchange data path on server 'EVS01' is 'S:\EXCHSRVR'
[07:01:42] Exchange install path on server 'EVS01' is 'C:\Program Files\Exchsrvr'
[07:01:42] Leaving ScGetExchangeServicesInstallAndDataPathFromAD
[07:01:42] Entering ScEnumerateExchangeServersInCluster2
[07:01:42] Entering ScEnumerateExchangeServersInCluster
[07:01:42] Getting cluster resource info...
[07:01:42] Adding cluster network name resource 'CLUSTER' to list
[07:01:42] Adding cluster network name resource 'EVS01' to list
[07:01:42] Executing LDAP query
"(&(objectCategory=msExchExchangeServer)(|(networkAddress=netbios:CLUSTER)(networkA
ddress=netbios:EVS01)))"
[07:01:42] Found 1 server objects:
[07:01:42] DN=/dc=org/dc=exchange/cn=Configuration/cn=Services/cn=Microsoft
Exchange/cn=EXCHANGE/cn=Administrative Groups/cn=First Administrative
Group/cn=Servers/cn=EVS01
[07:01:42] Leaving ScEnumerateExchangeServersInCluster
[07:01:42] Leaving ScEnumerateExchangeServersInCluster2
[07:01:42] Responsible MTA server name: EVS01
[07:01:42] Context data "ClusterToBind" (CStr), previously set to "localhost",
being reset to "node02.exchange.org" ClusterToBind
(f:\titanium\admin\src\udog\inc\exsetctx.hxx:146)
The operation has completed successfully.
[07:01:42] Context data "LocalServer" (CStr), previously set to "NODE02", being
reset to "EVS01" LocalServer (f:\titanium\admin\src\udog\inc\exsetctx.hxx:139)
The operation has completed successfully.
[07:01:42] Context data "ResponsibleMTAServer" (CStr), previously set to "NODE02",
being reset to "EVS01" ResponsibleMTAServer
(f:\titanium\admin\src\udog\inc\exsetctx.hxx:138)
The operation has completed successfully.
[07:01:42] Entering CFileManager::ScSetInstallDestDir(sz)
[07:01:42] Leaving CFileManager::ScSetInstallDestDir(sz)
[07:01:42] Entering ScCheckLocalAndRemoteExchangeBuilds
[07:01:42] Entering ScGetExchangeBuild
[07:01:42] Exchange build number on server 'node02.exchange.org' is '6944.0'
[07:01:42] Leaving ScGetExchangeBuild
[07:01:42] Entering ScGetExchangeBuild
[07:01:42] Exchange build number on server 'localhost' is '6944.0'
84 Module 5: Clustering
[07:01:46] Leaving
ScDetermineIfLocalDomainServerGroupHasAlreadyBeenACLedOnExchangeCT
[07:01:46] Entering ScFindRoutingGroupThatContainsServer
[07:01:46] Leaving ScFindRoutingGroupThatContainsServer
[07:01:46] Entering ScPRQ_DoesNotContainLastMAPIMDBInMixedModeAG
[07:01:46] This prerequisite has PASSED -- ID:62235 --
[07:01:46] Leaving ScPRQ_DoesNotContainLastMAPIMDBInMixedModeAG
[07:01:46] Entering ScCheckStateOfSAResource
[07:01:46] Entering ScBindToEVS
[07:01:46] Binding to cluster'node02.exchange.org'
[07:01:46] Binding to EVS 'EVS01'
[07:01:46] Leaving ScBindToEVS
[07:01:46] Entering ScFindSystemAttendantResource
[07:01:46] Searching for System Attendant resource
[07:01:46] Found System Attendant resource named 'EVS01 SA'
[07:01:46] Leaving ScFindSystemAttendantResource
[07:01:46] Leaving ScCheckStateOfSAResource
[07:01:46] Entering ScDeleteExchangeClusterResources
[07:01:46] Entering ScBindToEVS
[07:01:46] Binding to cluster'node02.exchange.org'
[07:01:46] Binding to EVS 'EVS01'
[07:01:46] Leaving ScBindToEVS
[07:01:46] Entering ScFindSystemAttendantResource
[07:01:46] Searching for System Attendant resource
[07:01:46] Found System Attendant resource named 'EVS01 SA'
[07:01:46] Leaving ScFindSystemAttendantResource
[07:01:46] Entering ScDeleteResourceRecursive
[07:01:46] Opening resource named 'EVS01 SA'
[07:01:46] Entering ScDeleteResourceRecursive
[07:01:46] Opening resource named 'Exchange Message Transfer Agent Instance
(EVS01)'
[07:01:46] Deleting resource 'Exchange Message Transfer Agent Instance (EVS01)'
[07:01:47] Leaving ScDeleteResourceRecursive
[07:01:47] Entering ScDeleteResourceRecursive
[07:01:47] Opening resource named 'Exchange Information Store Instance (EVS01)'
[07:01:47] Deleting resource 'Exchange Information Store Instance (EVS01)'
[07:01:47] Leaving ScDeleteResourceRecursive
[07:01:47] Entering ScDeleteResourceRecursive
[07:01:47] Opening resource named 'Exchange Routing Service Instance (EVS01)'
[07:01:47] Deleting resource 'Exchange Routing Service Instance (EVS01)'
[07:01:47] Leaving ScDeleteResourceRecursive
[07:01:47] Entering ScDeleteResourceRecursive
[07:01:47] Opening resource named 'Exchange MS Search Instance (EVS01)'
[07:01:47] Deleting resource 'Exchange MS Search Instance (EVS01)'
[07:01:48] Leaving ScDeleteResourceRecursive
[07:01:48] Entering ScDeleteResourceRecursive
[07:01:48] Opening resource named 'SMTP Virtual Server Instance 1 (EVS01)'
[07:01:48] Deleting resource 'SMTP Virtual Server Instance 1 (EVS01)'
[07:01:48] Leaving ScDeleteResourceRecursive
[07:01:48] Entering ScDeleteResourceRecursive
[07:01:48] Opening resource named 'Exchange HTTP Virtual Server Instance 100
(EVS01)'
[07:01:48] Deleting resource 'Exchange HTTP Virtual Server Instance 100 (EVS01)'
[07:01:48] Leaving ScDeleteResourceRecursive
[07:01:48] Leaving ScDeleteResourceRecursive
[07:01:48] Leaving ScDeleteExchangeClusterResources
86 Module 5: Clustering
Contents
Overview............................................................. 1
Lesson 1: Deployment Tools .............................. 2
Lesson 2: ADC Tools........................................ 39
Lab 6.1 Exchange 2003 ADC replication
featuring Deployment and ADC Tools ............. 71
Appendix A: Sample log files .......................... 86
Appendix B: Learning Measure Answers ....... 107
Acknowledgments........................................... 107
Information in this document, including URL and other Internet Web site references, is subject to
change without notice. Unless otherwise noted, the example companies, organizations, products,
domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious,
and no association with any real company, organization, product, domain name, e-mail address,
logo, person, place or event is intended or should be inferred. Complying with all applicable
copyright laws is the responsibility of the user. Without limiting the rights under copyright, no
part of this document may be reproduced, stored in or introduced into a retrieval system, or
transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or
otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.
Microsoft, MS-DOS, Windows, Windows NT, Active Directory, ActiveX, Excel, Exchange Server
5.5, Exchange 2000 Server, Exchange Server 2003, Internet Explorer, Internet Information Server,
Word are either registered trademarks or trademarks of Microsoft Corporation in the United States
and/or other countries.
The names of actual companies and products mentioned herein (Groupwise, Lotus cc:Mail, Lotus
Notes) may be the trademarks of their respective owners.
Module 6: Deployment Tools and ADC Tools 1
Overview
For this module, we will discuss the new deployment features available with
Exchange Server 2003 and differentiate the deployment process from Exchange
2000.
Topic 1 Deployment Tools
Topic 2 Active Directory Connector (ADC) Tools
Topic 3 Appendix
Prerequisites
1) Experience with installing Exchange 2000 into Exchange 5.5 sites
2) Prior usage of Virtual PC or Virtual Server
2 Module 6: Deployment Tools and ADC Tools
Basic Overview
History:
Customers that installed Exchange 2000 experienced a paradigm shift in the
complexity of the underlying operating system. With Windows 2000
introducing several new concepts, installers were burdened with learning the
differences in how Active Directory uses Domain Name System (DNS),
Lightweight Directory Access Protocol (LDAP), and a variety of new server
roles for establishing suitable infrastructures for Exchange 2000. Microsoft
Product Support Services learned that these infrastructures failed too often, or
were never configured correctly at their inception. Although many of the
support calls were caused by platform-level mishaps (such as improper DNS
configurations, Active Directory permission-misconfigurations, and lack of
connectivity to operations masters), more daunting challenges existed for
migrations from Exchange 5.5. These Exchange 5.5 migration challenges were
often
discouraging customers from deploying Exchange 2000. (For example, a
customer might find it extremely difficult to roll back after a failed disaster
recovery scenario following a failed in-place upgrade.)
completely ignored or skipped by customers. For example, NTDSNoMatch
is supposed to be written on Exchange 5.5 objects, yet customers didn’t
know of the existence of NTDSNoMatch due to delayed documentation
when Exchange 2000’s retail version shipped. Additionally, many
customers skipped configuration of Connection Agreements due to their
complexity, or even worse…
improperly configured through guesswork. (Installers who were new to
Exchange 2000 were accustomed to “Install first, configure later”
methodologies, yet Exchange 2000 deviated from other server applications
Module 6: Deployment Tools and ADC Tools 3
The solution:
Efforts to prevent Exchange 2000 deployment mistakes of the past have
culminated into the creation of the Exchange 2003 deployment tools. A
multipurpose effort, the deployment tools not only avoids the huge gap in
customer education when Exchange 2003 ships; it also proactively scans the
Active Directory and Exchange 5.5 infrastructures for possible problems that
may prevent successful Exchange 2003 deployments. The customer education
effort is achieved through a comprehensive help file/installation guide, which
takes into consideration four major deployment scenarios and provides
prescriptive deployment steps for each. A picture of the help file is shown in
figure 1.1:
4 Module 6: Deployment Tools and ADC Tools
Figure 1.1: An example of the deployment tools step-by-step deployment guide, in the form of a
compiled HTML help file. (pre-release version)
Tool Execution
Figure 1.2: Tool execution through the help file spawns the exdeploy.exe command line tool with a
hidden switch. Under the hood, the CHM is running “exdeploy.exe /s:racecar /gc:palindromes
/t:orgprepcheck”
The command window disappears when the exdeploy tool has finished
execution. However, during execution, the tools will log success and failure
information into exdeploy.log file, typically located in c:\exdeploy logs. Log
files are appended-to, not overwritten, when tools are run more than once.
Although exdeploy.chm contains links to launch the tools, the tools themselves
may not be launched without the existence of binaries (DLLs and EXEs) within
the same directory as the CHM file. The deployment tools help file and binaries
are located on the Exchange 2003 CD, underneath the \support\exdeploy
directory.
Method 2 – From the command prompt: The error-checking tools may also
be launched from the command line by running exdeploy.exe. Exdeploy.exe is
an executable that can launch various deployment tools depending upon the
switches used. In fact, all of the deployment tools may be launched using
exdeploy.exe, without requiring the CHM file. However, none of the tools may
be launched from the CHM/HTA file if the CHM/HTA exists in a directory
without exdeploy.exe supporting it.
Using Method 2 to manually execute a deployment tool should only be used
when troubleshooting, or when someone is already familiar with the ordering of
the help file (since some tools will fail unless you have performed certain steps
only mentioned in the CHM file). Here is an example of running a deployment
tool from the command prompt:
D:\SUPPORT\EXDEPLOY>exdeploy /s:55server /gc:gc01
/t:adcusercheck
Results of these tools will be logged to 'exdeploy.log'.
Exchange Deployment Tools documentation provides information
on how to solve encountered issues.
Calling ADCUserCheck...
ADCUserCheck completed successfully.
Module 6: Deployment Tools and ADC Tools 7
Like Method 1, tools will still create/append-to logfiles located in the logging
path (c:\exdeploy logs by default). Some tools will even write their own logfile,
named after the tool itself. Often, installers will attempt to run the tools
comprehensively (using the /c switch), so that all of the tools will be run with
one command line execution. Comprehensively running the tools is not useful
for the customer before setup because many of the deployment tools tests will
fail when it checks for existence of Active Directory objects that only exist
post-setup. However, it is useful to Microsoft Product Support Services for
troubleshooting an installation that has already completed, since a low level of
information gathering (i.e. list of server names, sites, list of unreplicated users)
is readily available in c:\exdeploy logs.
Deployment tools may also be launched in tool groups. For instance, when you
run “/t:DSScopescan” you actually launch five deployment tools contained
within that group: DSConfigSum, DSObjectSum, UserCount, VerCheck, and
OrgNameCheck. Tool groupings are documented within exdeploy.exe usage
(simply by typing exdeploy /?) and also within the exdeploy.chm reference
topics.
Method 3 – from the Exchange 2003 setup wizard: The user has no control
here, as setup.exe will automatically launch a few of the deployment tools to
perform some basic pre-requisite checking before continuing setup. In
Exchange 2000, there were fewer checks prior to the file-copy/register phase, so
when setup proceeded to the latter stages, it would often fail catastrophically.
The Exchange 2003 setup program is now improved with additional pre-
requisite checks, some of which look for completion of certain deployment
tools before allowing itself to proceed to file-copy/registry modification phases
of setup. Since setup.exe employs the use of the same tools as exdeploy.exe, we
will discuss the glue DLL that is utilized by both.
Figure 1.3: Exchange 2003 Glue DLL has multiple interfaces, since it is
called by exdeploy and Exchange 2003 setup.
The Exchange 2000/2003 setup program runs through prerequisite checks upon
launch, and if any prerequisite checks fail, their associated errors (possible
8 Module 6: Deployment Tools and ADC Tools
dissect multiple runs of the exdeploy-progress.log so that you can view each
run by itself. Another minor thing to note here is that a lot of the same entries
you find in exdeploy-progress.log will also be logged into the setup wizard’s
progress.log file. Search for HrDirPreReq anytime setup is joining an Exchange
5.5 site, and you’ll get to the deployment tools section of the Exchange Server
Setup Progress.log.
On the right-hand side of figure 1.3, the glue DLL will call into the actual tools
themselves. The tools are EXEs, DLLs, or even scripts. If the individual tool is
a script or separate EXE (such as policytest.exe), then the glue DLL makes a
call to CreateProcess.
10 Module 6: Deployment Tools and ADC Tools
Markers:
Before discussing the process flow, consider that several phases of the
deployment tools will create markers in Active Directory. These “completion”
markers are intended to ensure that customers use the deployment tools and
ADC Tools. Without them in place, setup will block customers from installing
the first Exchange 2003 server any organization containing Exchange 5.5 or
Site Replication services. Without Exchange 2003 setup logic to detect these
markers, installers would skip the proper deployment steps and tools, thereby
encountering the same deployment problems that existed with Exchange 2000.
Also, one of the main differences from Exchange 2000 is that in Exchange
2003, installers will no longer be able to launch the setup wizard from setup.exe
at the root of the CD without being forced into deployment tools. This single
entry-point initiative for setup was deemed necessary for several reasons: 1)
Development and Product Support Services want customers to review the
exdeploy.chm to prevent problems, 2) the deployment tools are not very
discoverable since they are in a completely separate directory from
\setup\i386\setup.exe, and 3) setup will not be able to continue unless a certain
condition (ADCUserCheck marker) is satisfied by the deployment tools.
ADCUserCheck, along with other markers, are illustrated in figure 1.4 below:
Module 6: Deployment Tools and ADC Tools 11
Figure 1.4: The deployment tools completion markers, viewed through ADSI Edit
As seen in the above illustration, markers are attribute values stamped in the
“description” attribute of the Microsoft Exchange container in Active Directory.
Each value contains three fields:
The marker name - named after the tool that stamped it.
The timestamp of the marker – indicates the time (not in GMT) that the tool
was last executed.
A status flag – describing if the tool’s result was a success or failure.
The marker of biggest concern is the ADCUserCheck marker, which is stamped
when the user clicks the button to run Step2’s Data Collection or to verify step
4 in the ADC tools (discussed in Lesson #2). ADCUserCheck is the most
important marker, since its absence will prevent setup from proceeding beyond
its initialization phase. Also, notice the timestamp: 2003003282359. If that
value is more than two weeks old, the installer will be warned about the need to
rerun the tool. The purpose of the timestamp is to prevent the tool’s result from
becoming stale, since customer environments may have changed drastically
over weeks or months, and it is highly likely they have more unreplicated
objects from the time they originally passed ADCUserCheck. Specifically, the
purpose of rerunning the tool is that after a time threshold, customers may need
to rereplicate or configure new Connection Agreements.
12 Module 6: Deployment Tools and ADC Tools
Troubleshooting Tip As an installer and for the purposes of saving time, you
could manually insert the ADCUserCheck marker using ADSIEdit and skip all
of the deployment tools. However, normal customers should not utilize this
shortcut since you want them to utilize deptools/adctools.
Module 6: Deployment Tools and ADC Tools 13
Process Flow
The deployment process begins when customers insert their Exchange 2003 CD
or run setup.exe from the root of the CD. Either action launches the intro/splash
screen, which in previous versions of Exchange provided a direct link to
setup.exe within the \setup\i386 folder. In Exchange 2003, the splash screen no
longer allows Exchange setup to be directly launched. Instead, installers may
only choose the deployment tools link.
14 Module 6: Deployment Tools and ADC Tools
Figure 1.5: The introductory splash screen, no longer allows on-demand Exchange installations.
Deployment Scenarios
Figure 1.6: Process flow for all of the steps covered by exdeploy.chm
Figure 1.6 illustrates the process flow, which contains scenarios identified at the
top of the screen, enclosed by borders. The most full-featured scenario for
installing the first Exchange 2003 server is “Coexistence with Exchange 5.5.”
In the coexistence scenario, deptools examines the existing Exchange 5.5 and
Active Directory infrastructure for Exchange 2003 suitability. Note that inter-
organizational (cross-forest) migrations or deployments of multiple Exchange
organizations are too advanced and are not discussed by exdeploy.chm. Cross-
forest deployments is discussed in another training module.
Module 6: Deployment Tools and ADC Tools 17
DSScopeScan
Since the “Coexistence with Exchange 5.5” scenario runs through the entire
gamut of deployment tools, this discussion will concentrate on the Exchange
5.5/2003 deployment. Beginning with the DSScopeScan tool group, which runs
a set of tools intended to provide administrators a quick estimate of the size of
the organization to help with gauging the deployment project’s length, one may
easily foresee possible deployment blockers. When the deployment
administrator/consultant runs the DSScopescan tool group, the following tools
execute:
DSConfigSum: Outputs server name, Windows version, and Exchange
version. Notes whether the server contains a public folder store. Notes
whether Key Management Service is installed. Notes whether Internet Mail
Service is installed. Notes whether the server is a directory bridgehead
server. Outputs any inbound, outbound, or 2-way connectors. This tool is
probably more beneficial to support engineers in data gathering, as it
outputs site names and Exchange server versions within those sites. This
additional output is logged to DSConfigSum.log.
DSObjectSum: Notes number of public folders. Notes number of
distribution lists. Notes number of distribution lists with hidden
membership. Notes number of contact objects. There is no additional
logfile; all output for this tool is directed to exdeploy.log. This tool is useful
in determining how many groups may be affected with disappearing
membership: More information is in KB article 321205.
UserCount: Notes number of users in each site. Notes total number of users
in the Exchange 5.5 directory. If this number is ever zero, it generally
indicates a permissions problem (you might be running deptools with the
wrong credentials to the 5.5 directory) or an LDAP protocol configuration
problem (search buffer might be set too low per KB article 320482).
Extended output is fed to usercount.log.
VerCheck: Determines if any Exchange 5.5 server versions are not
compatible with the Active Directory connector. (At least one must be
Exchange 5.5 SP3). Outputs to vercheck.log.
18 Module 6: Deployment Tools and ADC Tools
In the output above, the entries “TestEXConnect” and “TestNTConnect” are the
result of the additional debug logging. Enabling this environment variable also
causes exdeploy.log to be produced with debug output whenever Exchange
2003 setup.exe calls upon the deployment tools glue DLL.
20 Module 6: Deployment Tools and ADC Tools
DCDiag/NetDiag
Troubleshooting DCDiag:
If DCDiag fails to run due to a “DsIsMangledDnW error,” check to see if the
version of dcdiag.exe is compatible with the operating system. The file version
for the Windows 2003 DCDiag is 5.2.xxxx, whereas the Windows 2000 version
should be 5.0.xxxx.
If dcdiag reports that, for example, a schema role holder is not available,
forestprep will not be able to run. In this instance, one would utilize Q324801
or Q255504 to transfer or seize the role. Forestprep will also have problems if
DCDiag reports that a domain controller is not contactable, when in fact it has
been removed from the forest (but its metadata remained). In that scenario, one
would remove the orphaned domain or domain controller via q230306.
If there are any other errors output by DCDiag, one would run dcdiag with the
verbose (/v) switch for more details regarding the possible root cause.
Additionally, the /q switch suppresses non-problematic information, so you can
get to the meat of the failure quickly.
Netdiag follows DCDiag, and in the same manner, it examines various aspects
of the computer’s network configuration to determine if there are any errors.
Netdiag troubleshooting tip: Netdiag with the /q switch will suppress most
tests marked with “Pass,” which eases readability for failures. If netdiag
encounters a problem, the /fix switch may be used to resolve transient issues.
For example, if there is a negative cache issue that would eventually go away in
ten minutes, /fix would correct the issue sooner. However, hard configuration
problems – such as a misconfigured DNS server setting – cannot be fixed.
Module 6: Deployment Tools and ADC Tools 21
Running these tools would be useless if the customer does not review their
output, so following the execution of netdiag, dcdiag, and the dsscopescan tool
group, installers should search through the exdeploy.log, netdiag.log, and
dcdiag log files for any errors. These errors, along with their corrective
suggestive actions, are generally covered in the help file. However, there may
be instances where the help file does not log any errors. So engineers should
often ask themselves, “Does this output make sense?” For example, it is a fact
that any organization contains least one site and at least one server per site.
However, if the site or server count is zero, one may conclude that
DSConfigSum did not perform its task properly. In this instance, one would
also determine if there are more than 100 sites or 100 servers within a container.
(100 is the default number for reporting zero objects because that is the default
threshold for Exchange 5.5 directory service to enumerate a container via
LDAP.) If there are indeed containers with more than 100 objects (not counting
recipient subcontainers), one would reconfigure the Exchange 5.5 LDAP
protocol’s search limit above 100.
Forestprep/Domainprep
The next steps are for the user to run setup /forestprep and /domainprep.
Traditionally, these switches were executed only from the command prompt.
The exdeploy.chm now includes an embedded script to launch these modes
from the ActiveX® control, provided that the path is populated correctly.
Running the help file from a file share or a path that contains a space will most
likely output an Internet Explorer popup saying “An invalid server name was
entered.” For this reason, the HTA is used to run the CHM file to slightly alter
the behavior.
22 Module 6: Deployment Tools and ADC Tools
OrgPrepCheck
Once these actions are completed, the user is prompted to run the
OrgPrepCheck tool group - comprised of the following tools:
OrgCheck: verifies the Exchange extensions to the Active Directory
schema, checks the existence and membership of the Exchange Domain
Servers group and Exchange Enterprise servers group, and checks that a
global catalog server is available in a domain in which DomainPrep has
been run. There is no additional logfile.
PolCheck: This exdeploy command simply runs a Createprocess to launch
policycheck.exe (inherited from the support directory of the Exchange 2000
CD). PolCheck will determine if the Exchange Enterprise Servers group has
been granted the SeSecurityPrivilege (a.k.a. “Manage Auditing and Security
Logs”). Effectively, this determines if the domainprep procedure has
completed successfully, and ample time has been given for this right to
propagate to the domain controllers of the present domain. The extended
output of all domain controllers rights will be logged to exdeploy-
polcheck.log, and will appear similar to the following:
Module 6: Deployment Tools and ADC Tools 23
===============================================
Local domain is "ti.vm" (TI)
Account is "TI\Exchange Enterprise Servers"
========================
DC = "TINETDC"
In site = "Default-First-Site-Name"
Right found: "SeSecurityPrivilege"
[17:43:03] Entering HrFindPrintErrorMessage
[17:43:03] Leaving HrFindPrintErrorMessage
[17:43:03] PolCheck completed successfully.
[17:43:03] #*** Policy Check finished: ***#
Process Flow
SetupPrep
Setupprep is the next tool that the exdeploy.chm runs, although it is not actually
a tool group that can be run from exdeploy.exe. When the user runs SetupPrep,
the CHM file silently launches exdeploy.exe with the /t: OrgNameCheck,
OrgCheck, and PubFoldCheck switches. The first two tools are redundant, and
do not serve any additional purpose since they were run previously. The last
tool, PubFoldCheck, is significant in that it performs the same operation as the
DS/IS Consistency Adjuster against the public information store. This resolves
potential issues with “zombie users” causing public folder accessibility and
performance problems previously seen in Exchange 2000 deployments into
Exchange 5.5 sites. Article 309788 contains information about this problem.
The DS/IS Consistency Adjuster options performed by pubfoldcheck are
Remove unknown user accounts from public folder permissions:
PubFoldCheck removes users that are no longer valid from public folder
permissions.
Inconsistencies more than 1 day: PubFoldercheck performs the above
actions for only inconsistencies that are older than one day.
Although the help file may indicate the opposite, the code in PubfoldCheck will
not use the DS/IS option to rehome public folders because of the possibility
causing replication storms, thereby causing a support call-generator. The
helpfile text, though incorrect on the release CD, will be fixed in the web-
release version of the Exdeploy package.
In the above sample output, the ADCUserCheck marker exists, but not all of the
objects have been replicated between Exchange 5.5 and Active Directory
(determined by the trailing flag within the ADCUserCheck value). So if any
completion marker (ADCUserCheck in this case) contains a trailing “1” flag at
the end of the value (for example, ADCUserCheck;2003003282359;1) the “1”
value signifies that a tool detected an error, so setup will only warn the user
about out-of-sync directories, as shown in figure 1.7:
Figure 1.7: Setup shows the result of its calls upon the deployment tools, or
the result from a deployment tool’s completion marker in Active Directory.
In the above figure, setup warns the user of unreplicated objects, but it does not
prevent setup from continuing. So after being warned, the customer may
continue with setup, and subsequently install Exchange 2003 and the Site
Replication Service. If the flag was set to 0, there would be no warning.
However, if the ADCUserCheck marker does not exist, setup will block itself
from continuing, as shown by the blocking message in figure 1.8:
Figure 1.8: Blocking message if ADC Tools have not been executed.
Validation Tools
Validation Tools
These are a series of tools used to check on the success of the server
installation. The output of these tests should give customers a better idea of
what problems exist that are not normally seen by any existing GUI
administration tool.
ADCConfigCheck – verifies that the config Connection Agreement (created
during setup) properly replicated server objects, connector objects, store
objects, etc. from the Exchange 5.5 directory to Active Directory. If there are
any inconsistencies, unsynchronized system objects are enumerated in
adcconfigcheck.log and exdeploy.log. A sample adcconfigcheck.log output
would look like this:
Error: Configuration object 'cn=Internet Mail Connector
(Z0),cn=Connections,cn=Configuration,ou=HubSite,o=Microsoft'
has not replicated to Active Directory.
objects. E2kdsinteg does not make changes to any objects in Active Directory.
Depending on the number of mail-enabled objects and configuration objects in
Active Directory, it may take a substantial period of time to process the mail-
enabled objects for any of the following issues:
Public mailbox database contains no home message transfer agent (MTA).
Public mailbox database contains no Exchange 5.5 distinguished name.
Public mailbox database does not belong to an existing top-level hierarchy.
Public mailbox database does not contain an owning server.
Public mailbox database contains no proxy addresses.
Public mailbox database contains no primary SMTP address.
Public mailbox database contains no primary X.400 address.
Public mailbox database contains an ambiguous Exchange 5.5 distinguished
name.
Private mailbox database contains no Exchange 5.5 distinguished name.
Private mailbox database is not linked to a corresponding public mailbox
database.
Private mailbox database does not have a corresponding gateway object in
Active Directory.
Private mailbox database contains an ambiguous Exchange 5.5
distinguished name.
MTA contains duplicate Exchange 5.5 distinguished name.
MTA contains an ambiguous Exchange 5.5 distinguished name.
Site Replication Service contains no proxy addresses.
Site Replication Service contains no primary SMTP address.
Site Replication Service contains no primary X.400 address.
Site Replication Service contains no home mailbox database.
Site Replication Service contains no home MTA.
Site Replication Service contains no Exchange 5.5 distinguished name.
Site Replication Service has duplicate Exchange 5.5 distinguished name.
System attendant contains no proxy addresses.
System attendant contains no primary SMTP address.
System attendant contains no primary X.400 address.
System attendant contains no home mailbox database.
System attendant contains no home MTA.
System attendant contains no Exchange 5.5 distinguished name.
System attendant contains an ambiguous Exchange 5.5 distinguished name.
Exchange server does not belong to a routing group.
Exchange server does not have a responsible MTA server.
Exchange server contains no Exchange 5.5 distinguished name.
Exchange server contains an ambiguous Exchange 5.5 distinguished name.
Recipient policy does not contain an associated administrative group.
Module 6: Deployment Tools and ADC Tools 31
PrivFoldCheck – This tool performs a DS/IS against the Exchange 5.5 private
information store. Like PubFoldCheck, it removes zombie entries from access
control lists (ACLs) to prevent performance issues when the mailboxes are
moved to Exchange 2003. Output is appended to exdeploy.log.
Module 6: Deployment Tools and ADC Tools 33
Post-installation steps
The process flow for the Exchange 5.5 coexistence scenario ends after
privfoldcheck, but the installer has several additional tasks if the project plan
involves migration. Per figure 1.6, exdeploy.chm provides an optional path for
deploying an additional server installation. This additional path does not
introduce new steps from the first server installation, so its details will not be
discussed here. Afterwards, exdeploy.chm leads towards the post-installation
steps, which discuss moving mailboxes from Exchange 5.5 to Exchange 2003,
using pfmigrate to rehome public folders from 5.5, optimizing memory usage,
using the Internet mail wizard, configuring remote procedure call (RPC) over
HTTP, and subscribing to Microsoft security bulletins. Among that list, the only
new admin component feature from Exchange 2000 that is not covered in any
other training module is PFMigrate, which is used for migrating public folder
and system folder content.
34 Module 6: Deployment Tools and ADC Tools
PFMigrate
Once customers have moved mailboxes from Exchange 5.5 to Exchange 2003,
exdeploy.chm will instruct customers to move their public folders to the new
Exchange 2003 server. Pfmigrate.wsf is used to automatically update the
hierarchy by programmatically changing replica settings of all public folders
that are homed on any source server (Exchange 5.5 SP3 or later).
This is a script that was developed because the administrative process for
rehoming public folders through Exchange System Manager is not clearly
spelled out in steps, and customers administering thousands of public folders
would have a frustrating migration experience by repetitively clicking through
the UI.
Nevertheless, PFMigrate is not absolutely necessary, so customers may opt not
to use the script. Instead, they may propagate the public/system folder replica
list within the Exchange 5.5 admin.exe UI (Q185043) or Exchange System
Manager (Q288150).
Usage: PFMigrate cannot be launched from the exdeploy help file. Instead, it is
used from the command prompt with the following syntax:
pfMigrate.wsf /S:<source server> /T:<target server>
[/WMI:<server>] [/N:<number of public folders>] [/A] [/D] [/R]
[/F<log file path>] [/NNTP] [/Y] [/SYNC] [/SF]
For example, the following command line execution of pfmigrate will add up to
4000 public folder replicas to a server called “tinetdc” and a report is generated
in the “mypfs.txt” file:
>pfmigrate.wsf /S:ozpdc /T:tinetdc /n:4000 /a
/f:mypfs.txt
After running the above command twice (appending the /sf switch on the
second iteration), here is what will be logged to the output file:
36 Module 6: Deployment Tools and ADC Tools
--------------------------------------------------------------
------------------
Microsoft Exchange Public Folder Migration Tool
--------------------------------------------------------------------------------
Note After the pfmigrate script finishes, customers will tend to open the report
file immediately. However, it is possible for them to see no progress in the
report, and they might not see any changes to the Exchange 5.5 replica list
because of latency in the scripting engine. Because the pfmigrate report lags
behind the actual processing, customers should be patient with the utility until
the above text is logged.
Note The Exchange 5.5 server actually retains the data from the removed
replica until the nightly Information Services (IS) maintenance window runs,
typically starting at 1:00 A.M. Therefore, even on a barely-used server, public
and system folders may take hours to be removed, even after the script returns
control to the command prompt.
Module 6: Deployment Tools and ADC Tools 39
This topic discusses the new Active Directory Connector (ADC) Tools feature,
which is a part of the deployment tools process for the “Coexistence with
Exchange 5.5” and “Coexistence with Mixed Mode Exchange 2000 and
Exchange 5.5” scenarios.
40 Module 6: Deployment Tools and ADC Tools
A new snap-in
Installed with the Exchange 2003 version of the Active Directory Connector
Services management snap-in (ADCTools.dll), an additional node appears on
the left-hand side of the management console.. Figure 2.1 illustrates the new
snap-in.
Module 6: Deployment Tools and ADC Tools 41
Figure 2.1: The ADC Tools node is available after installing the Exchange 2003 version of the Active
Directory Connector management snap-in. Half of the ADC tools’ wizards (in gray) may not be
launched until prerequisite wizards have finished.
The new snap-in feature will help Administrators easily deploy Exchange 2003
in their existing Exchange 5.5 topologies, as it provides UI and logic that will
help them to perform these tasks:
Plan for necessary Connection Agreements (that will synchronize Exchange
5.5 directory and Active Directory) to start the Exchange 2003 rollout.
Get the Resource mailboxes correctly replicated to the Active Directory.
Automatically create and configure recipient and public folder Connection
Agreements.
However, since the ADC Tools snap-in is separated from exdeploy.chm, the
instructions are delivered differently. After each action, instructions appear
dynamically in an information window at the bottom of the snap-in. The
instructions are dynamic because, depending upon what situations are detected,
the order of the steps change. For instance, if all objects in the Exchange 5.5
directory are mapped to unique Windows NT SIDs, then there is no need to run
the resource mailbox wizard. Consequently, after the user has run data
collection, step 4 becomes available immediately. Otherwise, step 4 will be
grayed out until the user completes step 3’s resource mailbox wizard. The
42 Module 6: Deployment Tools and ADC Tools
dynamic messages that appear in the information window are listed in Chart
2.1, along with their corresponding situations:
Steps Substeps Situation Next step Where UI behavior Message in info section New Message in Info Section
detected logged
First launch of Everything is ADC tools Enables you to configure ADC Tools helps you configure Active Directory
the ADC tools disabled except Active Directory Connector, which Connector, which synchronizes the Exchange
set button provides synchronization between 5.5 directory and Active Directory. To start ADC
the Exchange 5.5 directory and Tools, in Step 1 Tool Settings, click Set. Then
Active Directory. To start ADC specify an Exchange 5.5 server, LDAP port
tools, under settings, click Set. number, and log file location.
Then specify an Exchange 5.5
server, port number, and log file
location.
Step 1 User sets the need to run Data validation Step 1 is complete. Continue with Step 2 Data
configuration the data button will be Collection by clicking Start. Step 2 scans your
fields collection enabled directories, detects mailbox-matching problems,
(step2) and identifies recommended connection
agreements. Results are stored for use in
subsequent steps.
Step 2 Run Data no Resource Error: There are custom matching Error: The Data Collection tool found
collection Mailbox rules found in the ADC installation. customized object matching rules in the ADC
wizard no The ADC Connection Agreement Management properties. ADC Tools cannot be
Connection tools will not be available. used when customized matching rules exist.
Agreement
wizard we
Custom need to have
matching a success
rules detected marker
NTDSnomatc User need to NTDSNoMatch Damage Detection Warning: Data Collection found resource
h damage clean Scan found unmarked resource mailboxes that are mismatched or missing a
detected mailboxes that have been master account SID. Use the following Microsoft
replicated and need to be cleaned Knowledge Base articles to resolve problems,
up. Please consult KB articles and then rerun Step 2: Q256862, "XADM: How
Q256862 "XADM: How to Correct to Correct Mismatched Accounts After Active
Mismatched Accounts After Active Directory Connector Replication"
Directory Connector Replication" (http://support.microsoft.com?kbid=256862);
and Q278966 "XADM: Unable to Q278966, "XADM: Unable to Move or Log On to
Move or Log On to Exchange Exchange Resource Mailbox"
Resource Mailbox" for instructions (http://support.microsoft.com?kbid=278966).
to clean up mailboxes.
All objects are user do not everything is Step 2 is complete. All objects are already
replicated need to run enabled synchronized. You do not need to run Step 3
Resource Resource Mailbox Wizard. However, you may
Mailbox run Step 4 Connection Agreement Wizard to
wizard , may view and create recommended connection
still need to agreements.
run
Connection
Agreement
wizard
(optional)
Data Check for the everything is Data Collection stopped. Check the ADC Tools
collection cause and grayed log file for the cause. Then repeat Step 2.
stopped for rerun the data
some reason. collection
If no resource need to go Resource Mailbox Step 2 is complete. No resource mailboxes were
mailboxes are directly to wizard will still be detected; therefore, you do not need to run Step
detected Connection enabled 3 Resource Mailbox Wizard. Continue with Step
Agreement Connection 4 Connection Agreement Wizard.
wizard Agreement wizard
is enabled
Objects not Connection Warning: ADUserScan detected Warning: The Data Collection tool found mail-
replicated Agreement that some mail-enabled users, enabled users, contacts, or groups that are not
from Active wizard contacts, or groups were not replicated from Active Directory to the Exchange
Directory to (maybe the replicated from the Active Directory 5.5 directory. Running the Connection
Exchange 5.5 Resource to the Exchange 5.5 directory. Agreement Wizard in Step 4 will resolve these
Mailbox issues.
wizard if there
is
ntdsnomatch
issues)
Module 6: Deployment Tools and ADC Tools 43
Objects not ' Warning: ADCObjectCheck Warning: The Data Collection tool found objects
replicated detected that some objects were that are not replicated from the Exchange 5.5
from not replicated from the Exchange directory to Active Directory. Running the
Exchange 5.5 5.5 directory to the Active Directory. Connection Agreement Wizard in Step 4 will
to Active resolve these issues.
Directory
User Hit the Rerun the User has cancelled the operation. The Data Collection tool was cancelled. Repeat
cancel button data collection Step 2.
Unstamped Need to run NTDSNoMatch detected that some The Data Collection tool found objects that must
Resource the Resource objects need to be marked as be marked as resource mailboxes before they
mailboxes Mailbox resource mailboxes before they can can be replicated to Active Directory. Running
detected wizard step 3 be imported into the Active the Resource Mailbox Wizard in Step 3 will
Directory. Please review and import resolve these issues.
the changes using the Resource
Mailbox wizard.
Step 3 Run the Network To dialog There may be a problem with network or LDAP
Resource problem connectivity. Check network connections and
Mailbox run the Resource Mailbox Wizard again.
Wizard Permissions To dialog Ensure your account has the View Only Admin
issues role (at a minimum) in the Exchange 5.5
directory under the organization, site, and
configuration nodes. Ensure that the specified
Exchange server is running Exchange 5.5 SP3
or a later version. If access is still denied, add
the current Active Directory account to the
Exchange 5.5 server's Local Administrators
group.
Cancel Admin will pop Verification was cancelled. Rerun the Resource
up a message Mailbox Wizard, and then click Verify again.
to warn that
user needs to
rerun the
wizard
All resource Need to go to Connection Verification is complete. Continue with Step 4
mailboxes are step 4 Agreement wizard Connection Agreement Wizard.
stamped and final
validation are
enabled
Step4 Run the The wizard Run the Connection Agreement Wizard is finished. Allow
Connection was validation time for the changes to replicate throughout
Agreement successfully (step5) Active Directory. Then click Verify.
wizard run
Some objects Need to rerun Warning: ADCObjectCheck still Warning: The Exchange 5.5 directory still
44 Module 6: Deployment Tools and ADC Tools
are not the detects that some objects were not contains objects that are not replicated to Active
replicated Connection replicated from the Exchange 5.5 Directory. If you have just run Connection
from the Agreement directory to the Active Directory. If Agreement Wizard, allow time for directory
Exchange 5.5 wizard to the connection agreements have replication to complete.
directory to create the just been created by the
Active missing Connection Agreement Wizard,
Directory Connection please allow time for Active
Agreements Directory replication to complete.
or allow
enough time
for replication
to happen.
Run the last Some objects Need to rerun Warning: ADUserScan detected Warning: Active Directory still contains objects
validation are not the that some mail-enabled users, that are not replicated to the Exchange 5.5
replicated Connection contacts, or groups were not directory. If you have just run Connection
from Active Agreement replicated from the Active Directory Agreement Wizard, allow time for directory
Directory to wizard to to the Exchange 5.5 directory. If replication to complete.
Exchange 5.5 create the the connection agreements have
missing just been created by the
Connection Connection Agreement Wizard,
Agreements please allow time for Exchange 5.5
or allow directory replication and Active
enough time Directory replication to complete.
for replication
to happen.
Everything is The customer ADC Tools are complete and Active Directory
okay is done with Connector is successfully configured. Return to
his ADC the Deployment Tools or continue your
deployment , Exchange deployment.
need to
complete the
deployment
Although the user is able to choose the Exchange 5.5 server, the global catalog
used by ADC Tools is not user-selectable. When the ADC Tools chooses a
global catalog, it sticks with it unless there are network problems. To determine
which global catalog is being used by ADC Tools, enable ADC Tools
debugging as discussed later in this module.
Data collection overview: Scans the Exchange 5.5 directory for
inconsistencies, such as unreplicated objects or groups of objects that are
46 Module 6: Deployment Tools and ADC Tools
Warning: The Data Collection tool found objects that must be marked as
resource mailboxes before they can be replicated to Active Directory. Running
the Resource Mailbox Wizard in Step 3 will resolve these issues.
As its name implies, this pass scans for accounts that need to be designated as
resource mailboxes. When it writes to adctools.log, it will not list any accounts
that need to be NTDSNoMatched. Instead, the lists of accounts to be
ntdsnomatched are written to ntdsnomatch.xml, while adctools.log will only list
problems running the tool, and a corrective action.
If the entry says “Error: Security identifier for the associated…could not be
resolved” then this means that Exchange 5.5 object’s associated account was
deleted or could not be found in the forest. So this associated account could
be a deleted account, or an account within another Windows NT 4 or 200x
domain in another forest whose trust has been broken from the current
forest.
If the entry says “Could not find match to ‘cn=user…’ then this means that
the Exchange 5.5 object is associated with a deleted account, or an account
outside of this Active Directory forest.
If the entry says “Matched ‘cn=user,cn=recipients,ou=sitename,o=orgname’
to ‘cn=user,dc=domain,dc=com’ then this means that the Exchange 5.5
object’s Primary Windows NT account is an account that was found within
the Active Directory forest. However, no connection agreement has yet
matched and stamped mail attributes onto the Active Directory account.
If the entry says “The AD Object is tombstoned…” then this means that the
Exchange 5.5 object’s associated account was deleted from Active
Module 6: Deployment Tools and ADC Tools 49
Directory but not yet "garbage collected." Viewing the Exchange 5.5
object’s Primary Windows NT Account field should yield “Unknown
Account”
If the entry says “Multiple AD objects..” then this means that the 5.5 object
was improperly replicated to two different Active Directory objects
This pass lists any Exchange 5.5 objects that have not been replicated to Active
Directory, and it has the same algorithm as some of the deployment tools. You
can obtain similar output by running this command line:
exdeploy.exe /t:adcusercheck /t:adcobjectcheck
Pass two of four will also write output to the adcobjectcheck.xml file, which is
discussed later.
Pass three of four (Active Directory Object Replication Scan) does not output to
adctools.log, and instead writes exclusively to ntobjectcheck.xml. It lists any
mail-enabled Active Directory objects that have not been replicated to the
Exchange 5.5 directory, and it does this to hidden objects as well. It also shares
exdeploy code, and you can get the same output from running
exdeploy.exe /t:aduserscan
This pass contains code unique to Exchange 2003, in that it checks for disabled
objects in Active Directory that are missing msexchMasterAccountSID values.
Such accounts would meet this criteria if they were prematurely replicated by a
connection agreement, when they first should have been designated as resource
objects. If any such Active Directory objects meet this criteria, the adctools.log
50 Module 6: Deployment Tools and ADC Tools
will instruct which KB articles to use for clean-up. All other output is written
badresourcemailboxes.xml.
</Account>
<Account sid="0105000000000005150000002CC77192C6AD34CAF0086B165A040000"
account="TILAB\group_ems" existingextatt10data="false">
<mailbox primary="false">
<Obj-Class>Mailbox</Obj-Class>
<Extension-Attribute-10>NTDSNoMatch</Extension-Attribute-10>
<Display_Name>group mailbox1</Display_Name>
<Alias_Name>group mailbox1</Alias_Name>
<Directory_Name>group mailbox</Directory_Name>
<Home-Server>ROOT55</Home-Server>
<Obj-Container>/o=Microsoft/ou=GSXSite1/cn=Recipients</Obj-Container>
</mailbox>
<mailbox primary="false">
<Obj-Class>Mailbox</Obj-Class>
<Extension-Attribute-10>NTDSNoMatch</Extension-Attribute-10>
<Display_Name>group mailbox2</Display_Name>
<Alias_Name>group mailbox2</Alias_Name>
<Directory_Name>group mailbox2</Directory_Name>
<Home-Server>ROOT55</Home-Server>
<Obj-Container>/o=Microsoft/ou=GSXSite1/cn=Recipients</Obj-Container>
</mailbox>
</Account>
</ntdsnomatch>
If mailbox primary = true, this would indicate that ADC Tools is simply
recommending that the current object (typically mailbox class) has an alias that
matches the samaccountname. Otherwise, ADC Tools logic defaults to recommending the
5.5 object as a resource by placing NTDSNoMatch on custom attribute 10. The
recommendation isn’t applied until the Resource mailbox wizard, discussed later.
<ldapDN>cn="EX:_O=MSFT_OU=EMSC6B44F55C6B44F55C6B44F55203BF8A3000007",c
n=Recipients,ou=EMS,o=MSFT</ldapDN>
</object>
<object site="EMS" primary="true" CAtype="folder">
<ldapDN>cn="EX:_O=MSFT_OU=EMSC6B44F55C6B44F55C6B44F55203BF8A3000008",c
n=Recipients,ou=EMS,o=MSFT</ldapDN>
</object>
<object site="EMS" primary="true" CAtype="folder">
<ldapDN>cn=EVENTCONFIG_OZPDC4948743F4948743F4948743F182909A6000011,cn=Recipients
,ou=EMS,o=MSFT</ldapDN>
</object>
<object site="EMS" primary="true" CAtype="user">
<ldapDN>cn=e55user1,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
Module 6: Deployment Tools and ADC Tools 53
<Sid>010500000000000515000000E07B3345D93C346AD3448378F0030000</Sid>
</object>
<object site="EMS" primary="true" CAtype="user">
<ldapDN>cn=e55user2,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<Sid>010500000000000515000000E07B3345D93C346AD3448378F1030000</Sid>
</object>
<object site="EMS" primary="true" CAtype="user">
<ldapDN>cn=e55user3,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<Sid>010500000000000515000000E07B3345D93C346AD3448378F2030000</Sid>
</object>
<object site="EMS" primary="true" CAtype="user">
<ldapDN>cn=e55user4,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<Sid>010500000000000515000000E07B3345D93C346AD3448378F3030000</Sid>
</object>
<object site="EMS" primary="true" CAtype="user">
<ldapDN>cn=e55user5,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<Sid>010500000000000515000000E07B3345D93C346AD3448378F4030000</Sid>
</object>
<object site="EMS" primary="true" CAtype="user">
<ldapDN>cn=ResourceU,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<Sid>010500000000000515000000E07B3345D93C346AD3448378F0030000</Sid>
</object>
<object site="EMS" primary="true" CAtype="user">
<ldapDN>cn=ResourceG,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<Sid>010500000000000515000000E07B3345D93C346AD3448378F5030000</Sid>
</object>
<object site="EMS" primary="true" CAtype="folder">
<ldapDN>cn=OAB VERSION
24948743F4948743F4948743F182909A6000BC1,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
</object>
<object site="EMS" primary="true" CAtype="folder">
<ldapDN>cn=E55USER1-
PF4948743F4948743F4948743F182909A600177A,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
</object>
<object site="EMS" primary="true" CAtype="folder">
<ldapDN>cn=PF-DL-
ACLD4948743F4948743F4948743F182909A600177B,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
</object>
<object site="EMS" primary="true" CAtype="group">
<ldapDN>cn=55DL1,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
</object>
<object site="EMS" primary="true" CAtype="folder">
<ldapDN>cn=PF-
DELETEDACCOUNTOWNER4948743F4948743F4948743F182909A600177D,cn=Recipients,ou=EMS,o=MS
FT</ldapDN>
</object>
</Objects>
<RecommendedCAs>
<CA CAtype="user" primary="true" site="EMS" >
<exportContainer>ou=EMS,o=MSFT</exportContainer>
54 Module 6: Deployment Tools and ADC Tools
</CA>
<CA CAtype="group" primary="true" site="EMS" >
<exportContainer>ou=EMS,o=MSFT</exportContainer>
</CA>
<CA CAtype="folder" primary="true" site="EMS" >
<exportContainer>ou=EMS,o=MSFT</exportContainer>
</CA>
</RecommendedCAs>
</ADCObjectCheck>
Extension-Attribute-10 will simply report if the Exchange 5.5 directory object has
Custom Attribute 10 populated.
NTObjectCheck.xml – In pass three of four, this file enumerates any users in
Active Directory which contain mail-enabling attributes, but do not have ADC-
Global-Names present. (Without ADC-Global-Names, one may truly declare
that a 2-way Connection Agreement hasn’t fully replicated for this Active
Directory object.) Similar to ADCObjectCheck, ntobjectcheck will recommend
the connection agreements necessary for proper replication of this object.
Sample ntobjectcheck.xml output follows:
Module 6: Deployment Tools and ADC Tools 55
<LegacyExchangeDN>/O=MSFT/OU=EMS/cn=Recipients/cn=billyh</LegacyExchangeDN>
<msExchHomeServerName>/O=MSFT/OU=EMS/cn=Configuration/cn=Servers/cn=TINETDC</msE
xchHomeServerName>
</object>
<object domain="ti" site="EMS" primary="false" CAtype="contact">
<ldapDN>CN=william taylor,CN=Users,DC=ti,DC=vm</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<ObjectGuid>BE0E225EBA49854CB889DC3655890BCB</ObjectGuid>
<LegacyExchangeDN>/O=MSFT/OU=EMS/cn=Recipients/cn=williamtaylor</LegacyExchangeD
N>
<msExchHomeServerName></msExchHomeServerName>
</object>
</Objects>
<RecommendedCAs>
<CA CAtype="user" primary="false" site="EMS" domain="TI">
<exportContainer>DC=ti,DC=vm</exportContainer>
<importContainer>ou=EMS,o=MSFT</importContainer>
</CA>
<CA CAtype="contact" primary="false" site="EMS" domain="TI">
<exportContainer>DC=ti,DC=vm</exportContainer>
<importContainer>OU=EMS,O=MSFT</importContainer>
</CA>
<CA CAtype="group" primary="false" site="EMS" domain="TI">
<exportContainer>DC=ti,DC=vm</exportContainer>
<importContainer>ou=EMS,o=MSFT</importContainer>
</CA>
<CA CAtype="folder" primary="false" site="EMS" domain="TI">
<exportContainer>DC=ti,DC=vm</exportContainer>
<importContainer>ou=EMS,o=MSFT</importContainer>
</CA>
</RecommendedCAs>
</NTObjectCheck>
The <Objects> section lists any users/mailboxes/groups that have not replicated
to the Exchange 5.5 directory. The <RecommendedCAs> section lists any
options that should be checked for the connection agreement. For example, if
the mail-enabled contact “William Taylor” didn’t exist, you would not expect to
see the “contact” entry in the latter section.
Note For the coexistence with Exchange 5.5 deployment scenario, you should
not expect ntobjectcheck.xml to contain any elements, as Exchange 2003 will
not yet have been installed. For the “Coexistence with Mixed Mode Exchange
2000 and Exchange 5.5” scenario, you may expect data in the <Objects>
section.
56 Module 6: Deployment Tools and ADC Tools
In Step 3, the Resource Mailbox wizard button becomes clickable once the Data
Collection Wizard has completed. Resource Mailbox wizard will read from
NTDSNoMatch.XML and allows customers to toggle which mailbox should be
primary or secondary. Figure 2.2 depicts the Resource Mailbox wizard:
Figure 2.2: The interactive portion of Resource Mailbox wizard allows for
customers to review recommendations provided from ntdsnomatch.csv.
The Resource Mailbox wizard replaces NTDSAtrb.exe for identifying
resource mailboxes.
58 Module 6: Deployment Tools and ADC Tools
When navigating through the mailbox list, you can expand or collapse each
node. A node may be a Windows NT 4 account or a security principal within
the Active Directory forest, and its child objects are all of the multiple
Exchange 5.5 mailboxes pointing to the same assoc-NT-account. Since there
should only be one account per mailbox set as the Primary for Exchange 2000
and 2003 to work correctly, that is the reason we have this wizard.
When picking primary/resource mailboxes to avoid object mismatching, the
user needs to highlight an account to be designated as the primary. When
clicking the button labeled “set as primary,” the highlighted mailbox gets
bolded, and any other mailbox object under the same umbrella that was
previously bolded will become unbolded. Unbolded child objects are
considered to be resource mailboxes, and as such, will get NTDSNoMatch’d on
their custom attribute 10 when the wizard completes. In most cases, the
Resource Mailbox wizard will already suggest which of the Exchange 5.5
objects will be bolded, because it detects a match between the mailbox’s alias
and the Windows user logon name.
In cases that it does not detect that match, it will leave everything unbolded and
leave it to the user to decide which one to set as primary. It is not a problem to
leave all mailboxes under a common node unbolded, because like in the figure
above, since both group mailboxes would simply be NTDSNoMatched, which
still allows for the account (or the global group in this case) to continue to have
full mailbox access to both mailboxes.
After selecting the primary/secondary mailbox objects, there are two options
that the deployment administrator can take:
Option 1 - Use the “Export” button: This option reads the entries from the
window and sends them to a Comma-Separated-Values (CSV) file which is
easily readable and modifiable by spreadsheet software such as Excel.
Customers possessing very large directories may find that the window is too
small to manipulate hundreds of potential mismatches. So the next logical step
for these customers would be to quit the Resource Mailbox wizard, and then use
a spreadsheet or database program to review and modify the CSV file to
designate resource mailboxes. Lastly, they would use the Exchange 5.5
admin.exe program to import each CSV into its corresponding site, thereby
mass-modifying the Exchange 5.5 mailboxes’ custom attributes. This option is
not much different from the NTDSAtrb.exe tool, except that NTDSAtrb is
launched from a command prompt. In fact, the CSV file generated by
NTDSAtrb and Resource Mailbox wizard follow the same format:
Obj- Extension- Primary Windows
Class Attribute-10 Display Name NT Account Alias Name
Mailbox NTDSNoMatch resourcemailbox1 TILAB\Bill_the_VP resourcemailbox1
conf room conf room
Mailbox NTDSNoMatch resource TILAB\Bill_the_VP resource
Mailbox ~DEL bigbill TILAB\Bill_the_VP bigbill
Mailbox NTDSNoMatch group mailbox1 TILAB\group_ems group mailbox1
Mailbox NTDSNoMatch group mailbox2 TILAB\group_ems group mailbox2
Chart 2.2: The first five columns of an ntdsnomatch_sitename.csv file, as exported
from the Resource Mailbox wizard.
Note that ~DEL clears the custom attribute 10 field for bigbill, which
guarantees that the bigbill mailbox is the primary (personal) mailbox for
Bill_the_VP. When this file is imported into the Exchange 5.5 directory, four
objects (except bigbill) will be identified as resource mailboxes, such that when
the ADC eventually reads them, object matching rules are ignored and object-
Module 6: Deployment Tools and ADC Tools 59
Troubleshooting Tip On the other hand, if these resource mailboxes were not
designated, then aside from the possibility of mismatching conf room resource
as Bill_the_VP’s primary mailbox, the resource mailbox (as well as the real
personal mailbox for Bill_the_VP) will have disabled objects created for them
in Active Directory. Disabled objects whose Exchange 5.5 sources were not
designated with NTDSNoMatch will not have the msexchmasteraccountSID
populated, and as such, 9548 errors will be logged during folder access.
Furthermore, when the ADC performs its back-replication, the primary
Windows NT accounts are not switched. You can expect to find 9551 error
events if these mailboxes were ACLed on folders.
Option 2 – Make window modifications through the GUI, and allow Resource
Mailbox wizard to modify the Exchange 5.5 directory. (This is the
recommended and most common scenario). This option involves performing
the custom attribute 10 sets/unsets in a manner that prevents the administrator
from inadvertently setting two primary mailboxes on the same security
principal. The administrator would not use the export button, and would instead
proceed to the next dialog within the wizard. (Note at the CSV files are
exported anyway, but they will be programmatically parsed by the Resource
Mailbox wizard GUI.) After providing credentials to the Exchange 5.5 site(s),
Resource Mailbox wizard will automatically connect to an Exchange 5.5 server
in each site and mass-modify custom attribute 10 for the Exchange 5.5 directory
objects. The Resource Mailbox Wizard is completed at this point, and a
summary window appears.
Troubleshooting Tip Pay close attention to the summary window. If there are
any errors in the import process, it will tell you which file to examine. The files
will usually be XML files, and you can view them either with notepad, or by
double-clicking them to launch them inside Internet Explorer’s XML parser:
60 Module 6: Deployment Tools and ADC Tools
Figure 2.3: Error code hidden within an XML file, viewed by the XML3
parser. The parser is installed when the Active Directory Connector
Management snap-in is installed.
person logged-onto the ADCTools machine can change the NTFS permissions
to allow the Exchange 5.5 account CHANGE NTFS permissions on the
C:\Documents and Settings\username\Local Settings\Application
Data\Microsoft\Active Directory Connector folder, thereby allowing the
Exchange 5.5 site admin credentials to access the CSVs upon the next
execution of Resource Mailbox wizard.
Once the Resource Mailbox wizard completes, or if a CSV file is used to
manually import the changes, then the Exchange 5.5 directory needs to be
verified to ensure no mailboxes will fail the 1-to-1 association test.
The verify button in Step3 does this by writing a pass/fail summary to
adctools.log, and recording any DNs (into ntdsnomatch.xml) of objects that still
need to be ntdsnomatched. If VERIFY fails, this could be a misconfigured
Connection Agreement, but is more commonly a replication latency issue.
Depending on the case, the admin needs to wait for replication or fix whatever
accounts did not get marked as secondary before running another verify.
Otherwise, the administrator cannot proceed to step 4: Connection Agreement
Wizard.
62 Module 6: Deployment Tools and ADC Tools
Public Folder Connection Agreements are not shown, since they are always
2-way.
Recommended recipient Connection Agreements that are 1-way from
“Windows to Exchange” will not be shown. (It is not expected that the ADC
Tools will ever detect a situation where this is recommend.)
The next two dialog boxes, labeled “Site Credentials” and “Domain
Credentials,” require that the user enter username and passwords so that these
will be stored onto the connection agreement properties. The username and
server names will be written to the “Connections” tab, while the validated
password is written into link state algorithm (LSA) global secrets.
Figure 2.6: Connection Agreement Wizard needs credentials for each site and domain for purposes
of authentication.
In the above example, where all Exchange 5.5 sites contain unreplicated
mailboxes whose associated Primary Windows NT accounts reside in all
domains throughout a forest, then the Connection Agreement wizard will
created a perfect mesh where the number of recipient Connection Agreements
created by the Connection Agreement wizard is based on (number of sites) *
(number of active directory domains). Typically, in a decentralized
administration model, the number of recipient connection agreements is lower
because most Exchange 5.5 administrators keep their all their directory objects
associated with only one Active Directory domain over which they control.
A final summary screen is then shown to the user, and if they select “Finish”,
the process to create connection agreements begins. The creation process is the
most delicate part of the Connection Agreement Wizard. This process could
take several hours in a large topology spanning slow links. During this time, the
ADC Tools are not resilient enough to re-query and retry in the event of a
serious network error. When an error occurs, the Connection Agreement
Wizard still finishes, but the error is reported in an XML file. For example, if
the Active Directory Connector service is not running, or isn’t able to be
contacted by the ADC Tools’ Connection Agreement Wizard, then it will error-
out, and the user must examine the XML output to resolve the issue before
starting the Connection Agreement Wizard over again. Some typical errors one
might receive are “Constraint Violation” and “ADSI” errors. To troubleshoot
these, it is most efficient try again, and obtain a network monitor sniff. After
Connection Agreements are created, connection agreements are not
immediately listed in the Microsoft Management Console. The user must
refresh the view.
Upon creating the connection agreements, Connection Agreement wizard
populates the domain controllers with their fully-qualified domain names. The
fully-qualified domain name (FQDN) is used to facilitate the Exchange 2003
Module 6: Deployment Tools and ADC Tools 67
The solution to the first two causes is simply to wait (perhaps up to several
days, depending upon the size of the forest and site link schedules) and then
rerun the Verify button. For the third cause, the user should filter for
warning/error events from the source MSADC in the application event log. If
one or more Connection Agreements have the wrong credentials configured, the
MSADC event will show the Connection Agreement’s displayname, and then
the administrator may rectify the corresponding Connection Agreement’s
“Connections” property sheet with appropriate credentials. For the fourth case,
the user should either manually create the Connection Agreement between a
domain controller and the Exchange 5.5 directory service at the remote site.
Differences between manual and auto-generated connection agreements:
The only attribute that is set by the Connection Agreement wizard that is not
changeable by the traditional Connection Agreement -creation UI is the
“msExchServer1SearchFilter.” This search filter is modified in such a way that
only allows objects from a specific administrative group to replicate over the
connection agreement.
Module 6: Deployment Tools and ADC Tools 69
adctools.log file. The debug output may not make sense unless you have the
ADC Tools code right next to you. The code is in DSA\src\deploy\adctools and
dsa\src\deploy\walksdll.
Module 6: Deployment Tools and ADC Tools 71
Importance:
Active Directory Connector (ADC) replication cannot always be described in
words. Often, it is easiest to show videos or observe its behavior. Aside from
observing ADC replication, students will see the new ADCTools and use it as a
troubleshooting tool.
Lab Objectives:
At the end of this lesson, students will be able to
Know how to use ADCTools as a troubleshooting tool.
Recognize common customer issues involving ADC.
Learn the following ADC Behavior:
• Object matching vs. creation.
• Auto-renaming “CN=” values.
• OU-generation by ADC.
• Mismatched accounts.
• How NTDSNoMatch affects assoc-nt-account.
• Rollback steps from Connection Agreement replication.
• Cross-domain matching.
• Perceived “duplicates” created.
72 Module 6: Deployment Tools and ADC Tools
Note Customers can easily get confused because the ADC not only
replicates attributes, but it also modifies the LDAP common/canonical
name. (Read 269843 ADC Overwrites Display Name with Exchange Server
5.5 Display Name for information on how to workaround.)
Short answer: samaccountname remains the same, but the Name, or "cn=”
value is renamed because it was matched to the conference room mailbox.
Long answer: When the ADC performed an LDAP query against the
Exchange 5.5 directory, it starts matching based on the order in which the
Exchange 5.5 directory service lists the responses. You can simulate this by
opening LDP.exe, connecting to Exchange 5.5, and searching on the value
of msexchserver2searchfilter as it is listed on the properties of the
connection agreement. Typically the LDAP query filter is
(|(objectclass=organizationalPerson)(objectclass=remote-
address)(objectclass=groupOfNames)), but value of
msexchserver2searchfilter varies depending upon the options the selected
on the Connection Agreements “From Exchange” tab. The LDAP response
from the Exchange 5.5 directory service is NOT in alphabetical order. In
this simple case, the LDAP response is the order in which the objects were
created: {Conference Room, Jon Morris, Earnings (shared)}. So from the
list of objects returned by the Exchange 5.5 directory service, the ADC
queries Active Directory for their associated SIDs. In this simple case, the
ADC sees that the first unmatched object (not having a global name) is the
conference room mailbox. The ADC parses the SID from the conference
room mailbox, and queries Active Directory for any object whose
objectSID matches. The matched objectSID happens to be the
deptool\jmorris account’s SID. Once matched (through matching rules),
the ADC stamps conference room’s attributes onto deptool\jmorris
account, and renames its “cn=” value of the x500 distinguished name. The
ADC repeats the process with the next Exchange 5.5 object. The next
LDAP entry returned from Exchange 5.5 is the actual Jon Morris mailbox.
When the ADC tries to match Jon Morris’ mailbox to an Active Directory
account, it sees deptool\jmorris has the matching objectSID. But since
legacyExchangeDN is populated (from the last match) on deptool\jmorris,
the ADC cannot overwrite exchange attributes for this second match
attempt. In this case, the ADC must abandon its object matching rules and
create a new, placeholder account with a random samaccountname. (In
pre-Exchange 2003 versions of the ADC, the placeholder account’s
Module 6: Deployment Tools and ADC Tools 77
When Jon Morris logs onto the domain and Outlook 2000/XP with his
DEPTOOL\jmorris account for the first time, which mailbox will he see?
Answer: If Exchange 2000 and 2003 are installed, and Jon Morris logs onto
Outlook without generating his profile, Outlook will read the Active
Directory account’s mailbox attributes to automatically generate the
profile. In this case, Outlook will find that the conference room mailbox
has its attributes on DEPTOOL\jmorris account, so Outlook will present
our CFO with the contents of the conference room mailbox, rather than his
personal (and more important) mailbox.
Do we see any application event log events that indicate there was something
wrong with replication?
What happens if the user deletes the disabled “Jon Morris” account, but not the
conference account?
Answer: Jon Morris’ personal mailbox will be deleted, but he will still be
able to log on.
More common mistake: What happens if the user deletes the “Conference
Room” account? After all, the worst we can do is to just lose an unimportant
resource mailbox.
Answer: The conference room mailbox will get deleted from Exchange 5.5.
Although Jon Morris’ important personal mail is not lost, his user Active
Directory account/SID is gone. What this means is that any other domain
resources to which he previously had access are no longer accessible. The
CFO cannot even log on anymore.
2. We need to identify which accounts were “damaged” when ADC didn’t find
NTDSNoMatch. Open the Active Directory Connector Management snap-in
-> ADC Tools.
3. Set the Exchange server to DUBLIN55, port 389.
4. Run the data collection phase.
5. Examine the adctools.log file. Note any errors, if any.
6. In phase four of four, what articles are mentioned? Open and read those
articles.
7. Examine the badresourcemailboxes.xml file. Does it include all of the
accounts that we need to clean up?
Module 6: Deployment Tools and ADC Tools 79
Answer: No, the account on which the ADC performed the initial match is
not listed on this list. This is the DEPTOOL\jmorris account (whose
display name is Conference Room). In addition to cleaning-up the entries
from badresourcemailboxes.xml file, we also need to disassociate the
mismatched account – conference room.
8. Stop the ADC Service (net stop msadc).
9. Use Exchange 5.5 admin in RAW mode to view the raw properties for each
of the three Exchange 5.5 mailboxes, and then delete all ADC-Global-
Names.
10. You may now safely delete the disabled account “Jon Morris” from Active
Directory without the fear of back-replicating a deletion to his Exchange 5.5
mailbox.
Since we delete the “Jon Morris” named account, why doesn’t this prevent our
CFO from logging on?
Answer: When we deleted the “Jon Morris” account, we did not delete the
SID he uses to log on. Instead, we deleted a random SID that was created
by the ADC. As long as the object whose
samaccountname==DEPTOOL\jmorris is not deleted, we are safe.
11. Rename the “Conference Room” Active Directory account back to the
Display name “Jon Morris” (Right-click on the Active Directory account
and choose rename)
12. The Jon Morris user account still has global names pointing at the
conference room mailbox. We still need to disassociate the global name
pointer so that the next replication cycle will not be tainted. Either remove
the msexchADCglobalnames values manually or use the “Remove
Exchange Attributes” feature (documented in article W307350).
mailbox, it will NOT match it with any Active Directory accounts, and
instead, will create a mailbox-enabled disabled account in Active Directory.
10. Make sure that NTDSNomatch is NOT on custom attribute 10 of Jon
Morris’ Exchange 5.5 mailbox. By not having the value present, the ADC
will match-up this mailbox with DEPTOOL\jmorris.
11. In Exchange 5.5 admin, examine custom attribute 10 of the Jon Morris and
conference mailboxes. Note that the Resource Mailbox Wizard already
imported the CSV file for you.
12. Restart the ADC service. The connection agreement will replicate.
13. Refresh Active Directory Users and Computers, and notice how the
disabled-account is now the conferencing resource, while jon morris’
mailbox is associated correctly with his Active Directory account.
14. In Exchange 5.5 admin, open the properties of the conference room
mailbox. What changes were made to the Primary Windows NT Account?
Answer: Note that the Primary Windows NT account has been changed to
Deptool\conference.
Note Another common mistake that nearly every customer makes is that they
will not use the account browser. Instead, they will type the account name
without the domain name prefix. (“Administrator” instead of
“NT4domain\administrator”) The connection agreement UI does not check for
the validity of the credentials, so “Administrator” would cause the Connection
Agreement not to replicate since it is not a domain account.
5. After a replication cycle, do you notice the new disabled account? Why did
the ADC create a new account, instead of matching and stamping the
existing Popeye account with the site2’s popeye mailbox attributes?
9. Which command line exdeploy.exe tool switch performs three out of the
four passes from ADC Tools’ Data Collection? (Hint: type exdeploy.exe
without any parameters.)
10. Re-launch the Exchange 5.5 admin.exe using the /r or –r switch. Examine
raw properties of the single account which was mentioned having the
unresolveable SID. Why was it unresolveable?
11. View the raw properties (Shift-Enter) of the account. Does the assoc-NT-
account have a value? _________ How does the assoc-NT-account of this
account differ from the assoc-NT-account of the mailbox named
EmptyACCT?
20. Rerun Resource Mailbox Wizard. Are there any mailboxes to designate as
NTDSNomatch’d? Why or why not?
21. Continue with the remaining ADC Tools before returning to the deployment
Tools.
Note When running Connection Agreement Wizard, the Remote Exchange 5.5
server name must be manually selected or typed.
Learning Measure:
Answers are in Appendix B.
How can you identify if an object is first created in the Exchange 5.5 directory
or the Active Directory?
a) If ADC-Global-Names is present, it means that the Exchange 5.5 directory
sourced the object to Active Directory.
b) If msExchADCGlobalNames exists, it means that the Exchange 5.5
directory sourced the object to Active Directory.
c) If four values exists on a global name, the object was sourced in the
opposite directory
d) If two values exist on a global name, the object was sourced from the
opposite directory
What are escape characters in the LDAP display name as seen through
ADSIEdit or LDP?
a) Underscores (“_”)
b) brackets (“< >”)
c) commas (“,”)
d) backslashes (“\”)
e) “dc=”
When are we prompted to create a mailbox upon user account creation? (Check
all that apply)
a) If Exchange 2000 or Exchange 2003 is installed in the domain.
b) If the machine you are on has Exchange System Manager installed.
c) If the Connection Agreement for your OU has “primary for the connected
Windows domain” checkbox checked.
d) If the Connection Agreement for your OU has the “primary for the
connected Exchange organization” checkbox checked.
86 Module 6: Deployment Tools and ADC Tools
Exdeploy.log:
#*** Exdeploy began: 05/17/2003 03:28:38 ***#
+ Exchange 5.5 Server: dublin55
+ Global Catalog Server: londondc
+ Tools run: DSScopeScan, and OrgNameCheck.
+ Completing Deployment
92 Module 6: Deployment Tools and ADC Tools
+ Additional tools
+ Additional tools
+ Moving Mailboxes
dsconfigsum.log:
#*** Exchange 5.5 DS Configuration Summary began: 05/17/2003
03:28:40 ***#
Site: SITE1-DIRNAME
Number of servers: 1
The Key Management server for the Exchange 5.5 site 'SITE1-
DIRNAME' is 'DUBLIN55'.
Server: DUBLIN55 Version 5.5 (Build 2653.23: Service Pack
4).
The public folder store for server 'DUBLIN55' is 'DUBLIN55'.
Server 'DUBLIN55' is the directory replication bridgehead
for the inbound Exchange 5.5 sites 'ou=SITE2-
DIRNAME,o=Microsoft'.
Server 'DUBLIN55' is the directory replication bridgehead
for the outbound Exchange 5.5 sites 'ou=SITE1-
DIRNAME,o=Microsoft'.
Site: SITE2-DIRNAME
Number of servers: 1
Server: MADRID55 Version 5.5 (Build 2653.23: Service Pack
4).
The public folder store for server 'MADRID55' is 'MADRID55'.
Server 'MADRID55' is the directory replication bridgehead
for the inbound Exchange 5.5 sites 'ou=SITE1-
DIRNAME,o=Microsoft'.
Server 'MADRID55' is the directory replication bridgehead
for the outbound Exchange 5.5 sites 'ou=SITE2-
DIRNAME,o=Microsoft'.
Exdeploy-polcheck.log:
[21:00:46] #*** Policy Check began: 03/28/2003 21:00:46 ***#
[21:00:46] Entering HrMapFileHandle
[21:00:46] Leaving HrMapFileHandle
[21:00:46] PolicyTest.exe results:
===============================================
Local domain is "ms.com" (MS)
Account is "MS\Exchange Enterprise Servers"
========================
DC = "Z2"
In site = "Default-First-Site-Name"
Right found: "SeSecurityPrivilege"
[21:00:46] Entering HrFindPrintErrorMessage
[21:00:46] Leaving HrFindPrintErrorMessage
[21:00:46] PolCheck completed successfully.
[21:00:46] #*** Policy Check finished: ***#
Module 6: Deployment Tools and ADC Tools 95
Exdeploy-progress.log:
[03:28:38] ********** Beginning Exchange Deployment Tools
**********
[03:28:38] Starting Exchange 6940 Deployment Tools on Windows
5.2.3790 at 03:28:38 05/17/2003
[03:28:38] Entering HrDirPreReq_Initialize
[03:28:38] Init called with Domain Controller londondc and
Exchange 5.5 server dublin55. Setup's language ID is 0.
ActiveX Path is (null)
[03:28:38] Entering HrRegisterAXDLL
[03:28:38] Leaving HrRegisterAXDLL
[03:28:39] Leaving HrDirPreReq_Initialize
[03:28:39] Entering HrRegisterAXDLL
[03:28:39] Leaving HrRegisterAXDLL
[03:28:39] Entering HrDirPreReq_ConfigInit
[03:28:39] Leaving HrDirPreReq_ConfigInit
[03:28:39] Entering HrDirPreReq_ObjectInit
[03:28:39] Leaving HrDirPreReq_ObjectInit
[03:28:39] Entering HrDirPreReq_UserInit
[03:28:40] Leaving HrDirPreReq_UserInit
[03:28:40] Entering HrDSConfigSum
[03:28:40] Leaving HrDSConfigSum
[03:28:40] Entering HrDSObjectSum
[03:28:40] Leaving HrDSObjectSum
[03:28:40] Entering HrUserCount
[03:28:40] Leaving HrUserCount
[03:28:40] Entering HrVerCheck
[03:28:40] VerCheck verifies if Exchange Server 2003 can be
installed into your Exchange organization. Details are logged
in vercheck.log.
[03:28:40] Leaving HrVerCheck
[03:28:40] Entering HrOrgReport
[03:28:40] Test completed successfully. An organization was
created by ForestPrep. You can rename this organization when
you install the first Exchange 2003 server.
[03:28:40] Leaving HrOrgReport
[03:28:40] Entering HrGCVerCheck
[03:28:40] GCVerCheck completed successfully. All domain
controllers and global catalog servers in the current and
adjacent Windows sites are running Windows 2000 SP3 or later.
[03:28:40] Leaving HrGCVerCheck
[03:28:40] Entering HrOrgNameCheck
[03:28:40] Error: Your Exchange 5.5 organization and site
names contain unsupported characters.
[03:28:40] Leaving HrOrgNameCheck
[03:28:40] Entering HrDirPreReq_Terminate
[03:28:41] Leaving HrDirPreReq_Terminate
[03:32:51] ********** Beginning Exchange Deployment Tools
**********
[03:32:51] Starting Exchange 6940 Deployment Tools on Windows
5.2.3790 at 03:32:51 05/17/2003
[03:32:51] Entering HrDirPreReq_Initialize
96 Module 6: Deployment Tools and ADC Tools
Gcvercheck.log
#*** GC Version Check began: 05/17/2003 03:28:40 ***#
Current Site (Default-First-Site-Name)
Global catalog servers running Windows 2000 SP3 or later:
LONDONDC
#*** GC Version Check finished: 05/17/2003 03:28:40 ***#
Module 6: Deployment Tools and ADC Tools 99
Orgnamecheck.log:
#*** Organization and Site Names Check began: 05/17/2003
03:28:40 Server name: dublin55 ***#
Error: Organization or Site display name 'SITE1 (DisplayName)'
in the Exchange 5.5 directory contains a leading space, a
trailing space, or one or more of the following unsupported
characters: ~`!@#$%^&*()_+={}[]|\:;"'<,>.?/
Error: Organization or Site display name 'SITE2 (DisplayName)'
in the Exchange 5.5 directory contains a leading space, a
trailing space, or one or more of the following unsupported
characters: ~`!@#$%^&*()_+={}[]|\:;"'<,>.?/
#*** Organization and Site Names Check finished: 05/17/2003
03:28:40 ***
Usercount.log:
#*** Exchange 5.5 DS User Count began: 05/17/2003 03:28:40
***#
Site: SITE1-DIRNAME
Number of mailboxes: 11
Site: SITE2-DIRNAME
Number of mailboxes: 1
vercheck.log
#*** Server Version Check began: 03/28/2003 12:15:29 ***#
Site 'HubSite' has an Exchange 5.5 server SP3 or later
installed.
Server: Z0 Version 5.5 (Build 2653.23: Service Pack 4).
Site 'Remote55Site' has an Exchange 5.5 server SP3 or later
installed.
Server: REMOTE55 Version 5.5 (Build 2653.23: Service Pack 4).
#*** Server Version Check finished: 03/28/2003 12:15:29 ***#
100 Module 6: Deployment Tools and ADC Tools
Adcconfigcheck.log
#*** ADCConfigCheck began: 03/29/2003 02:41:42 Server name:
z0 ***#
Error: Configuration object 'cn=Internet Mail Connector
(Z0),cn=Connections,cn=Configuration,ou=HubSite,o=Microsoft'
has not replicated to Active Directory.
#*** ADCConfigCheck: finished verifying 68 objects: 03/29/2003
02:41:42 ***#
E2kdsinteg.log
********* e2k ds integ began on 03/29/2003 at 02:45:15 (gc =
z2, version = 6.5.0)
--------> Config results from (objectClass=*) ...
<< no issues found >>
********* finished verifying 657 objects on 03/29/2003 at
02:46:01
********* e2k ds integ began on 03/29/2003 at 02:57:58 (gc =
z2, version = 6.5.0)
--------> Recipient results from (mailNickname=*) ...
<< no issues found >>
********* finished verifying 22 objects on 03/29/2003 at
02:58:18
Module 6: Deployment Tools and ADC Tools 101
Adctools.log:
Current user is 'Administrator\DEPTOOL' on computer 'LONDONDC'
Warning: The staging area domain is not in native mode. Group membership and
security cannot be properly managed unless the staging area is in a native mode
domain
Connection Agreement Wizard is finished. Allow time for the changes to replicate
throughout Active Directory. Then click Verify in Step 4.
Adcobjectcheck.xml
<?xml version="1.0" encoding="utf-16"?>
<ADCObjectCheck exchange55="ozpdc:389" gc="TINETDC" date="200301062103">
<Objects>
<object site="EMS" primary="true" CAtype="folder">
<ldapDN>cn="EX:_O=MSFT_OU=EMSC6B44F55C6B44F55C6B44F55203BF8A3000007",c
n=Recipients,ou=EMS,o=MSFT</ldapDN>
</object>
<object site="EMS" primary="true" CAtype="folder">
<ldapDN>cn="EX:_O=MSFT_OU=EMSC6B44F55C6B44F55C6B44F55203BF8A3000008",c
n=Recipients,ou=EMS,o=MSFT</ldapDN>
</object>
<object site="EMS" primary="true" CAtype="folder">
<ldapDN>cn=EVENTCONFIG_OZPDC4948743F4948743F4948743F182909A6000011,cn=Recipients
,ou=EMS,o=MSFT</ldapDN>
</object>
<object site="EMS" primary="true" CAtype="user">
<ldapDN>cn=e55user1,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<Sid>010500000000000515000000E07B3345D93C346AD3448378F0030000</Sid>
</object>
<object site="EMS" primary="true" CAtype="user">
<ldapDN>cn=e55user2,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<Sid>010500000000000515000000E07B3345D93C346AD3448378F1030000</Sid>
</object>
<object site="EMS" primary="true" CAtype="user">
<ldapDN>cn=e55user3,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<Sid>010500000000000515000000E07B3345D93C346AD3448378F2030000</Sid>
</object>
<object site="EMS" primary="true" CAtype="user">
<ldapDN>cn=e55user4,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<Sid>010500000000000515000000E07B3345D93C346AD3448378F3030000</Sid>
</object>
<object site="EMS" primary="true" CAtype="user">
<ldapDN>cn=e55user5,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<Sid>010500000000000515000000E07B3345D93C346AD3448378F4030000</Sid>
</object>
<object site="EMS" primary="true" CAtype="user">
<ldapDN>cn=ResourceU,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<Sid>010500000000000515000000E07B3345D93C346AD3448378F0030000</Sid>
</object>
<object site="EMS" primary="true" CAtype="user">
<ldapDN>cn=ResourceG,cn=Recipients,ou=EMS,o=MSFT</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<Sid>010500000000000515000000E07B3345D93C346AD3448378F5030000</Sid>
</object>
104 Module 6: Deployment Tools and ADC Tools
Ntobjectcheck.xml
<?xml version="1.0" encoding="utf-16"?>
<NTObjectCheck exchange55="ozpdc:389" gc="TINETDC" date="200301131032">
<Objects>
<object domain="ti" site="EMS" primary="false" CAtype="user">
<ldapDN>CN=billy harris,CN=Users,DC=ti,DC=vm</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<ObjectGuid>56E4DEEBC405214FBDA9A71742E3B38B</ObjectGuid>
<LegacyExchangeDN>/O=MSFT/OU=EMS/cn=Recipients/cn=billyh</LegacyExchangeDN>
<msExchHomeServerName>/O=MSFT/OU=EMS/cn=Configuration/cn=Servers/cn=TINETDC</msE
xchHomeServerName>
</object>
<object domain="ti" site="EMS" primary="false" CAtype="contact">
<ldapDN>CN=william taylor,CN=Users,DC=ti,DC=vm</ldapDN>
<Extension-Attribute-10></Extension-Attribute-10>
<ObjectGuid>BE0E225EBA49854CB889DC3655890BCB</ObjectGuid>
<LegacyExchangeDN>/O=MSFT/OU=EMS/cn=Recipients/cn=williamtaylor</LegacyExchangeD
N>
<msExchHomeServerName></msExchHomeServerName>
</object>
</Objects>
<RecommendedCAs>
<CA CAtype="user" primary="false" site="EMS" domain="TI">
<exportContainer>DC=ti,DC=vm</exportContainer>
<importContainer>ou=EMS,o=MSFT</importContainer>
</CA>
<CA CAtype="contact" primary="false" site="EMS" domain="TI">
<exportContainer>DC=ti,DC=vm</exportContainer>
<importContainer>OU=EMS,O=MSFT</importContainer>
</CA>
<CA CAtype="group" primary="false" site="EMS" domain="TI">
<exportContainer>DC=ti,DC=vm</exportContainer>
<importContainer>ou=EMS,o=MSFT</importContainer>
</CA>
<CA CAtype="folder" primary="false" site="EMS" domain="TI">
<exportContainer>DC=ti,DC=vm</exportContainer>
<importContainer>ou=EMS,o=MSFT</importContainer>
</CA>
</RecommendedCAs>
</NTObjectCheck>
106 Module 6: Deployment Tools and ADC Tools
Ntdsnomatch.xml
<?xml version="1.0" encoding="utf-16"?>
<ntdsnomatch exchange55="dublin55:389" gc="LONDONDC" date="200305170333"
existingextatt10data="false">
<Account sid="010500000000000515000000962C1F5F2DF4160173D1A1FA5D040000"
account="DEPTOOL\aduser1" existingextatt10data="false">
<mailbox primary="true">
<Obj-Class>Mailbox</Obj-Class>
<Display_Name>aduser1</Display_Name>
<Alias_Name>aduser1</Alias_Name>
<Directory_Name>aduser1</Directory_Name>
<Home-Server>DUBLIN55</Home-Server>
<Obj-Container>/o=Microsoft/ou=SITE1-DIRNAME/cn=Recipients</Obj-
Container>
</mailbox>
<mailbox primary="false">
<Obj-Class>Mailbox</Obj-Class>
<Extension-Attribute-10>NTDSNoMatch</Extension-Attribute-10>
<Display_Name>resource1</Display_Name>
<Alias_Name>resource1</Alias_Name>
<Directory_Name>resource1</Directory_Name>
<Home-Server>DUBLIN55</Home-Server>
<Obj-Container>/o=Microsoft/ou=SITE1-DIRNAME/cn=Recipients</Obj-
Container>
</mailbox>
</Account>
<Account sid="010500000000000515000000962C1F5F2DF4160173D1A1FA5E040000"
account="DEPTOOL\aduser2" existingextatt10data="false">
<mailbox primary="true">
<Obj-Class>Mailbox</Obj-Class>
<Display_Name>aduser2</Display_Name>
<Alias_Name>aduser2</Alias_Name>
<Directory_Name>aduser2</Directory_Name>
<Home-Server>DUBLIN55</Home-Server>
<Obj-Container>/o=Microsoft/ou=SITE1-DIRNAME/cn=Recipients</Obj-
Container>
</mailbox>
<mailbox primary="false">
<Obj-Class>Mailbox</Obj-Class>
<Extension-Attribute-10>NTDSNoMatch</Extension-Attribute-10>
<Display_Name>resource2</Display_Name>
<Alias_Name>resource2</Alias_Name>
<Directory_Name>resource2</Directory_Name>
<Home-Server>DUBLIN55</Home-Server>
<Obj-Container>/o=Microsoft/ou=SITE1-DIRNAME/cn=Recipients</Obj-
Container>
</mailbox>
</Account>
</ntdsnomatch>
Module 6: Deployment Tools and ADC Tools 107
Acknowledgments
Microsoft Employee
d) Vincent Yim
e) Harvey Rook, Rafiq El Alami, Neil Shipp, Tejas Patel, Brad Owen
MSPress books
g) [Microsoft Corporation. Windows XP Professional Resource Kit, Chapter 6:
Security, MS Press, 2001.]
KB article
i) [Microsoft Corporation. “Creating User and Group Reports in Windows.”
Knowledge Base article Q137848, available http:support.microsoft.com.]
Existing Whitepaper
j) [Microsoft Corporation. “Best Practices for System Policies in Windows
2000 Networks.” Whitepaper available at
http://www.microsoft.com/technet.]
MOC courseware
k) [Microsoft Corporation. “Basic Administration of Microsoft Windows
2000.” MOC 2028, Microsoft Training and Certification, 2001.]
Module 7: Exchange
Directory Components
Contents
Overview ................................................................................................................. 1
Lesson 1: Changes to the ADC ............................................................................... 2
Lab 7.1: Troubleshooting LDAP queries .............................................................. 12
Lesson 2: DSAccess Usage and troubleshooting .................................................. 16
Lesson 3: Changes in DSAccess ........................................................................... 28
Lab 7.2: Exomatic tool .......................................................................................... 37
Lesson 4: Other Directory Changes ...................................................................... 38
Lab 7.3: Per-Attribute change troubleshooting ..................................................... 59
Lab 7.4: Post-Setup and SRS replication troubleshooting .................................... 59
Appendix A: Numeric registry keys used by DSAccess and their values ............. 68
Appendix B: Answers to some of the Labs ........................................................... 69
Acknowledgments................................................................................................. 70
Information in this document, including URL and other Internet Web site references, is subject to
change without notice. Unless otherwise noted, the example companies, organizations, products,
domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious,
and no association with any real company, organization, product, domain name, e-mail address,
logo, person, place or event is intended or should be inferred. Complying with all applicable
copyright laws is the responsibility of the user. Without limiting the rights under copyright, no
part of this document may be reproduced, stored in or introduced into a retrieval system, or
transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or
otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.
Microsoft, MS-DOS, Windows, Windows NT, Active Directory, ActiveX, Excel, Exchange Server
5.5, Exchange 2000 Server, Exchange Server 2003, Internet Explorer, Internet Information Server,
Word are either registered trademarks or trademarks of Microsoft Corporation in the United States
and/or other countries.
The names of actual companies and products mentioned herein (Groupwise, Lotus cc:Mail, Lotus
Notes) may be the trademarks of their respective owners.
Module 7: Exchange Directory Components 1
Overview
For this module, we will discuss the new deployment features available with
Exchange Server 2003 and differentiate the deployment process from Exchange
2000.
Topic 1 Changes to the Active Directory Connector (ADC)
Topic 2 DSAccess Usage and Troubleshooting
Topic 3 DSAccess Changes
Topic 4 Other Directory Changes
Prerequisites
Experience with troubleshooting ADC and DSAccess.
Understanding of the ADCTools/Deployment Tools module
2 Module 7: Exchange Directory Components
This topic discusses changes to the Active Directory connector that are not
covered in the Deployment and ADC Tools module.
Module 7: Exchange Directory Components 3
In Exchange 2000, the ADC schema files were a subset of the Exchange 2000
core schema files. So although the ADC’s setup /schemaonly switch extended
the schema, customers were required to perform further schema extensions
using setup /forestprep. This meant longer lockdown periods for larger
customers whose custom applications were sensitive to schema extensions due
to the delayed nature of replications and resetting of indexed attributes. (You
may refer to KB article 230662 for more information on indexed attributes)
In Exchange 2003, the schema files imported during the installation or upgrade
of an Active Directory Connector service are identical to the core Exchange
2003 schema; therefore, the schema is only updated once. So if the Exchange
2003 version of ADC setup detects the existence of the Exchange 2003 schema,
then no further schema updates will be applied. On the other hand, if ADC
setup detects a schema version below 6870, the Exchange 2003 schema updates
will be applied. ADC Setup detects the schema by examining the RangeUpper
attribute of this object in Active Directory:
cn=ms-Exch-Schema-Version-
Pt,cn=schema,cn=configuration,dc=<DN-of-forest-root-domain>
If a domain controller does not show a value of 6870 for the RangeUpper
attribute, the schema extension has not completed. There are no more schema
updates beyond RangeUpper, since it is the last entry added to the schema9.ldf
file:
dn: CN=ms-Exch-Schema-Version-Pt,<SchemaContainerDN>
changetype: modify
replace: rangeUpper
rangeUpper: 6870
4 Module 7: Exchange Directory Components
Note: Although Exchange 2003’s ADC setup includes the entire schema, it does
not mean it is equal to a setup /forestprep. This is because ADC Setup does not
perform many of forestprep’s actions, such as importing the Outlook templates
and set access control lists (ACLs) on some Active Directory containers.
Additionally, forestprep cleans up some address templates and display
specifiers. (The removed display specifiers were Exchange 5.5 classes that were
never used nor shown in Active Directory.) Therefore, forestprep is still
required if ADC’s setup executable is run first, but customers who follow
change-control procedures within large environments will not need to plan for
additional administrative lockdowns while waiting for schema changes to
replicate, since schema extensions will be skipped upon running forestprep
later.
Module 7: Exchange Directory Components 5
When the ADC is upgraded to the Exchange 2003 version, the ADC setup
program will not only upgrade the ADC binaries; it will also modify the
“versionNumber” attribute on any connection agreements owned by that ADC
service.
(To determine what connection agreements are owned by an ADC service, use
the Active Directory Connector Services snap-in, and highlight the ADC server
indicated by the name “Active Directory Connector (servername)” on the left-
hand pane. Its owned connection agreements will be viewable on the right hand
pane)
When ADC setup upgrades connection agreements’ versionNumber attribute,
the values are set to 16973842. Older ADC management snap-ins (such as
Windows ADC and Exchange 2000 Service Pack 3 (SP3) ADC snap-in
versions) will not be able to administer these new Connection agreements
because they expect the older Major version (versionNumber = 16908296). If
an Exchange 2000 or Windows 2000 ADC manager snap-in is used to
administer an upgraded or new Exchange 2003 connection agreement, this
warning is displayed:
6 Module 7: Exchange Directory Components
By the same token, whenever an Exchange 2003 ADC Services snap-in is used
to open the properties of an Exchange 2000 or Windows 2000 connection
agreement, the same popup warning as in Figure 1.1 will appear.
The reasons for increasing the major versions on Public Folder Connection
agreements and Recipient Connection agreements are so that:
Windows 2000 ADC services will not be able to run any newer Connection
agreements. (Any public folder Controller Agreement re-homed to the
Windows 2000 version of the ADC service caused corruption.)
The new connection agreements use Kerberos for authentication, which are
not understood by Exchange 2000 ADC services.
In summary, an Exchange 2000 ADC service cannot run a connection
agreement whose version is incompatible with its own. Conversely, an
Exchange 2003 service cannot run a connection agreement whose version
number is below 16973842.
Eventually, all ADC services must be upgraded prior to the installation of the
first Exchange 2003 server. Otherwise, Exchange 2003 setup may not proceed.
Customers must in-place upgrade all pre-Exchange 2003 ADC services prior to
installation, so that all legacy connection agreements are phased out.
Module 7: Exchange Directory Components 7
In the situation where an Exchange 5.5 object exists, but its primary Windows
account (assoc-NT-account) resides in a Windows NT 4 domain or in a separate
forest, a properly-configured connection agreement directs the ADC service to
perform object-creation. (By contrast, if the mailbox’s “Primary Windows NT
Account” pre-existed within the forest, the ADC performs “object matching”
and stamps pre-existing user accounts during the initial replication cycle.) In the
object-creation case, a disabled account is created by the ADC service. In the
past, the Exchange 2000 ADC services would generate the disabled security
principal (a.k.a. “samaccountname” or “Pre-Windows 2000 logon name”) that
matched the Exchange 5.5 object’s alias name. This caused problems for a
couple of reasons:
Customers often had the misunderstanding that ADC object creation was an
easy way to migrate Windows NT 4 accounts to Active Directory. Although
it was not proper, customers would simply enable these “placeholder”
accounts that were generated by the ADC, not knowing that this will cause
delegation problems, Public Folder ACL conversion problems, and other
permissions problems that may prevent logon or mailbox moves. (For more
information regarding problems caused by enabling placeholder accounts,
see Knowledge Base articles Q300346 and Q316047.)
ADC-generated objects conflict with the Active Directory Migration Tool’s
(ADMT) ability to migrate user logon names from their source domains.
(This situation only applies if ADMT is used after initial ADC replication,
and if aliasname=userlogonname of the source domain). So when ADMT
attempts to create user objects in the target domain, it encounters conflicts
with the ADC-generated accounts. ADMT was designed to resolve these
conflicts by appending “-1” to each samaccountname it generates – thus
satisfying the samaccountname uniqueness within a domain. Although
ADMT is a proper and supported migration method for user accounts, the “-
8 Module 7: Exchange Directory Components
1” object causes an issue for customers because their users prefer not to
append a “-1” to their logon process. One may believe that ADClean may be
used to merge the two objects into a single account, thereby resolving this
issue. However, ADClean excludes transferring samaccountname when it
merges the disabled objects’ attributes to the ADMT-generated account. In
the end, users are still stuck with different user logon names (i.e. User was
accustomed to logging onto source domain as “johnsmith,” but must now
logon as “johnsmith-1”).
In Exchange 2003, by randomizing samaccountnames (a.k.a. Pre-Windows
2000 logon name) whenever the ADC generates a placeholder object, both
previous problem scenarios are resolved. A typical user logon name for an
ADC-generated account would be “ADC_BDZQOKNUIZDWPPHG” where
the characters following the underscore are always randomized. Since this
random username is difficult to use for any logon prompt, it detracts
administrators from improperly enabling the placeholder accounts generated by
the ADC. Secondly, the prepared random name will not cause naming conflicts
when the future ADMT migrations try to create new users in the Exchange
2003 forest.
Note Although the Exchange 2003 ADC corrects this issue upon object
creation, any existing objects that were created prior to an ADC was upgraded
may still need their account names renamed. Cleansam.vbs, a script used by
Microsoft Product Support Services to correct the above issues for Exchange
2000 topologies, may be used against accounts residing in Exchange 2003
environments that were upgraded from Exchange 2000. The script may be
obtained from a Microsoft Product Support Services Professional. CleanSAM
also resolved the behavior where in some instances, ADMT would “match”
with the disabled accounts and subsequently merge on top of them, thereby
enabling the accounts but failing to clear the msExchMasterAccountSID
attribute.
Module 7: Exchange Directory Components 9
Figure 1.2: The Exchange 2003 ADC uses Kerberos against Windows 2000
SP3 or later domain controllers.
Note that in the figure above, Exchange 5.5 LDAP communication remains at
the down-level Windows NT Challenge/Response authentication mechanism.
Only Windows 2000 SP3 or Windows 2003 domain controllers support signed
LDAP on connection agreements.
Lesson 4 discusses how the ADC Microsoft Management Console (MMC) and
other admin components use Kerberos with signing, and how to troubleshoot
decrypt the data over the wire.
Module 7: Exchange Directory Components 11
Importance:
You will learn how to view Lightweight Directory Access Protocol (LDAP)
queries in Exchange 2003, since they are signed and encrypted by default.
Lesson Objectives:
At the end of this lesson, students will be able to
Configure debug LDAP setting
Use network monitor to view packets over the wire
Make sure that all virtual machines are powered-off. If prompted to
commit/discard changes, PLEASE CHOOSE DISCARD!
If you have insufficient memory that requires the virtual machines to exist
on two host machines, connect a crossover cable with a partner’s machine,
then on the left student machine, start Z2, then remote55. On the right
student machine, power-on Z6. When Z2 has completely started, power on
Z0 on the left machine and Z3 on the right machine. You may then set each
of the machines’ virtual network interfaces to “External” so that virtual
machines running on each student machine may communicate with one
another. Alternatively, you may run all virtual machines on a single host
machine if you tune the memory settings for each virtual machine to a
lower number. For example, change Z3 to 160 MB of RAM usage instead
of 192 MB.
Module 7: Exchange Directory Components 13
What is DSAccess?
Permissions In order to read, and especially write to the Active Directory, Exchange needs
special permissions. These permissions are given by setup during the forestprep
and domainprep stage to the Exchange Enterprise Servers group and Exchange
Domain Server group. During the “Core” setup, the Exchange server’s machine
account is made a member of Exchange Domain Servers group, and that group
is a member of Exchange Enterprise Servers group. All Exchange services run
as localsystem (even the Exchange App Pool on IIS6 runs as localsystem) and
thus they access to the Active Directory under the machine account.
Along with the “regular” ACL permissions setup grants all Exchange boxes a
“SACL right” – a permission to view ntSecurityDescriptor attribute. This is
granted via “SeSecurityPrivilege” privilege.
Types of Active DSAccess recognizes three types of Active Directory servers:
Directory servers used
1. Global catalogs
2. Domain controllers
3. Configuration Domain Controller – a single server (chosen from the list of
domain controllers) that is used to read and write configuration data. At any
given moment all DSAccess processes use the same ConfigDC, so that the
services do not have to wait for replication of the configuration data.
All these types of servers can be located by DSAccess automatically or
manually set in Exchange System Manager’s “Directory Access” tab.
Topology Every 15 minutes DSAccess discovers the Active Directory topology and
refreshes the list of Active Directory servers and their properties. DSAccess
locates all domain controllers in the current site and the closest sites (in terms of
the link cost). Then it applies some checks and determines domain controller
properties. The complete table of domain controller properties at a given point
in time is logged in the event 2080. Here is a sample event 2080:
Module 7: Exchange Directory Components 19
As you see, this event lists all domain controllers and global catalogs and their
properties. Let’s look at them one by one:
Property Value Meaning
Connection pool
Since all services use just one user account (localsystem), it is possible for
DSAccess to reuse the LDAP connections from one request to another. Upon
the startup or topology change DSAccess opens LDAP connections to all
suitable domain controllers/global catalogs in topology. By default DSAccess
will use up to ten domain controllers and up to ten global catalogs at the same
time. The registry parameter that dictates this behavior is ldapconnections
(Appendix B).
Failover
Whenever WLDAP32 returns an error on an LDAP operation, DSAccess
analyzes it and determines if it means that the domain controller is having
problems. If so, the domain controller is immediately marked as unsuitable and
the user operation is automatically retried on a different server. This way, as
long as there is at least one working domain controller in the topology,
DSAccess can continue flawless operation.
DSAccess topology always contains two lists: in-site and out-of-site. Initially
DSAccess only uses servers from the local site, but when all local servers from
certain category (for example, GCs) are not suitable, DSAccess immediately
starts using the out-of-site list and logs event 2084 or 2085. After that it keeps
checking the local site every five minutes and fails back as soon as it is
possible. The user requests are retried on the out-of-site servers immediately
and seamlessly for the users.
If a DSAccess caller placed a notification, and the target server was marked as
Module 7: Exchange Directory Components 21
being down, the notification gets reissued and the client is notified of a change,
because the monitored value could have changed while we were reissuing the
search.
22 Module 7: Exchange Directory Components
Versioning
DSAccess.dll is the main DLL that implements DSAccess, but it has to have
matching dscmsg.dll and dscperf.dll that store event messages and perfcounters
respectively. So whenever dsaccess.dll is replaced – either through a hotfix
application or through a service pack - it’s better to replace all three DLLs at
once. Replacing dscperf.dll is optional but doing so requires a matching
dscperf.ini and dscperf.h; in turn, a hotfix or service pack update will need to
unload the existing counters by running “unlodctr MsExchangeDSAccess” and
then “lodctr dscperf.ini”.
Troubleshooting Tip : Do not replace these DLLs unless a hotfix package fails
to apply the new binaries, or if many DSaccess-related performance counter
warnings/errors flood the application event log (such as when a service pack
install could not properly unload counters).
Module 7: Exchange Directory Components 23
Troubleshooting sequence
Check permissions
If some searches return unexpected results (missing attributes or no results at
all), permissions are the first thing to check.
First, check if the Exchange server you are having problems with belongs to this
domain’s Exchange Domain Servers group, and that group is a member of
Exchange Enterprise Server groups in this and other domains (check “member”
attribute to find that out).
If there is a particular object that has these problems, check “inherit permission”
flag on the object itself and all levels walking up
For Exchange 2003, check if the Exchange domain servers group has been
removed from the Pre-Windows 2000 compatible Access group to ensure that
Exchange 2003 servers have the cross-domain access they need (222420 and
226063), as customers might have removed the domain servers group from the
pre-W2kcompat group membership after misinterpreting the domainprep
warning as “unsecure.” If the domain servers group is missing, you can rerun
domainprep.
Dump the Windows NT Security Descriptor of the “broken” object and of the
closest “working” object and compare them. Look for an ACL that could have
broken things. Exchdump/Exchutil is a great utility that can dump ACLs on
Active Directory objects.
If this is Exchange 2000, run the policytest.exe tool that ships on the Exchange
2000 CD (in “Support Tools”) to verify that “Manage auditing and security
logs” privilege is granted to the Exchange Enterprise Servers group and
replicated to all domain controllers in the local domain. If using Exchange
2003, policytest has been replaced by a deployment tool. So on the Exchange
2003 CD, run exdeploy.exe /t:polcheck to achieve the same results. The tool
should find the policy that grants Exchange servers the ability to read SACL on
all Domain Controllers that have been domainprep’ed.
The ultimate permission test is to install the Windows support tools on the
Exchange server console and launch LDP.exe using “at /interactive” command.
This way LDP will be running under localsystem account and the results will
exactly match what Exchange services see. While doing that, it is often helpful
to turn on auditing on a domain controller. (HOW TO: Audit Active Directory
Objects in Windows 2000, http://support.microsoft.com/?id=314955) Be sure
to use the same domain controller/global catalog as the one that DSAccess used
at the time of failure (this information is usually present in the events or traces
relating to the specific object which could not be accessed).
Module 7: Exchange Directory Components 25
Note The existing permission model for Exchange 2000 has some defects. For
example, you cannot read certain attributes for an object that lives in domain A
from a global catalog that belongs to domain B. Although most of the attributes
are “public information” there are a few attributes that are not public and
therefore not visible:
msExchOmaAdminWirelessEnable;
modifyTimeStamp;
whenCreated;
adminDIsplayName;
GarbageCollPeriod;
msExchMailboxFolderSet;
msExchRequireAuthToSendTo
networkAddress;
versionNumber
Exchange 2003 domainprep fixes this permission model (discussed in the
Exchange 2003 Setup changes module). If the problem reoccurs, rerun
domainprep.
DSAccess events
DSAccess Tips:
Although the behavior of DSAccess has not changed, its logging abilities have
been greatly enhanced in Exchange 2003. This topic discusses the new event
log entries logged by DSAccess, as well as its new performance monitor
counters developed for Microsoft Operations Manager (MOM).
New Events in DS DSAccess includes the following new or modified eventlog entries. A severity
Access “W” or “E” would indicate a warning or error event, respectively. A level “7”
means that the event will only be logged if the highest diagnostics logging level
is set. In contrast, a level “0” means that no diagnostics logging needs to be set
before the event is written to the application event log. There are three
categories in which new data appear:
General Category
Event ID Problem Event text: problem description and Data in event Severity Level Periodic
actions required
Callstack
Module 7: Exchange Directory Components 29
Topology Category
Event ID Problem Event text: problem description and actions required Data in Severity Level Periodic
event
DSC_EVENT_BAD_OS_VERSION Domain The Domain Controller %3 is running %4 %5. DSAccess Process W 0 Yes
controller requires that name
is running
2116 Windows Domain Controllers that run Windows 2000 have at least PID
2000 SP2 Service Pack 3 installed.
or below.
DC Name
OS
version
SP version
DSC_EVENT_CDC_CHANGED ConfigDC The Configuration Domain Controller has been changed Process I 1 Yes
had been from … to … name
changed
2095 PID
Old CDC
name
New CDC
name
DSC_EVENT_DISCOVERED_SERVE Every time DsAccess has discovered the following servers with the Process I 1
RS DSAccess following characteristics: name
discovers
2080 servers, it (Server name | Reachability | Synchronized | GC capable PID
dump the | PDC | SACL right | Critical Data | Netlogon | OS
whole list Version)
Out-of-site: List of
servers
with
suitabilities
(0x%3) occurred when DNS was queried for the service Error code
location (SRV) resource record used to locate a domain
controller for domain %4%n%n
The query was for the SRV record for %5%n%n Domain
name
30 Module 7: Exchange Directory Components
hh tcpip.chm::/sag_DNS_tro_dcLocator_messageF.htm
The query was for the SRV record for %5%n%n Error code
hh
tcpip.chm::/sag_DNS_tro_dcLocator_m
essageE.htm
DNS_EVENT_DNS_NO_ERROR DNS info DSAccess is unable to connect to any domain controller Process W 1 Yes
for domain in domain %3 although DNS was successfully queried for name
is fine, but the service location
we still
2121 can’t (SRV) resource record used to locate a domain controller PID
Module 7: Exchange Directory Components 31
controllers name
.
The following domain controllers were identified by the DNS path
query:%n%n%5%n
hh tcpip.chm::/sag_DNS_tro_dcLocator_messageHa.htm
hh tcpip.chm::/sag_DNS_tro_dcLocator_messageHa.htm
DNS_EVENT_DNS_NO_ERROR_DC_ Domain Domain controller %3 was not found when DNS was Process W 1 Yes
NOT_FOUND controller queried for the service location (SRV) resource records name
we’re for domain %4%n%n
looking for
2124 is not in The query was for the SRV record for %5%n%n PID
the DNS.
The following domain controllers were identified by the Error code
Other
query:%n%n%6%n
domain
controllers Common causes of this error include the following:%n%n DC name
can be
looked up - The DNS SRV records required to locate a domain DNS path
32 Module 7: Exchange Directory Components
hh tcpip.chm::/sag_DNS_tro_dcLocator_messageE.htm
DNS_EVENT_DNS_OTHER DNS error Error 0x%3 occurred when DNS was queried for the Process E 1 Yes
occurred service location name
The query was for the SRV record for %5%n%n Error code
DNS_EVENT_DNS_TIMEOUT DNS Error ERROR_TIMEOUT (0x%3) occurred when DNS Process E 1 Yes
Query was queried for the service location name
timed out
2120 (SRV) resource record used to locate a domain controller PID
for domain %4%n%n
The query was for the SRV record for %5%n%n Error code
This computer is configured to use DNS servers with the DNS path
following IP addresses:%n%n%6%n
hh tcpip.chm::/sag_DNS_tro_dcLocator_messageB.htm.
DSC_EVENT_GOT_SACL A domain Exchange Server %3 now has Audit Security Privilege on Process I 1
controller name
regained
2113 its SACL Domain Controller %4. PID
(logged if
Server
it
Name
previously
didn’t have DC Name
one)
DSC_EVENT_NO_SACL A domain Exchange Server %3 does not have Audit Security Process W 0
controller Privilege on name
lost its
2112 SACL right Domain Controller %4. This Domain Controller will not be PID
(logged if used by DSAccess.
it
Server
previously
Name
had it)
DC Name
LDAP Category
Event ID Problem Event text: problem description and actions Data in event Severity Level Periodic
required
DSC_EVENT_FATAL_ERROR Got a “fatal DSAccess needs to close a connection to the Process name W 3
error”, i.e. Domain Controller %3
the
2115 connection due to error 0x%4. PID
needs to be
Server used
closed and
reopened; Error
does not
necessarily
mean that
the target
domain
controller is
having
problems.
34 Module 7: Exchange Directory Components
Note The domain controller name (as well as process name) is limited to 63
characters (it has to have fixed size). If the name is longer than that, it will be
truncated.
Module 7: Exchange Directory Components 35
DC_RATE_FATAL_ERRORS How many times during last minute we needed to completely close PERF_COUNTER_RAWCOUNT (per-minute rate
the connection (such as after getting LDAP_LOCAL_ERROR). will be calculated by DSAccess)
Excludes Kerberos timeout
DC_RATE_DISCONNECTS How many times during last minute we get LDAP_SERVER_DOWN PERF_COUNTER_RAWCOUNT (per-minute rate
or any other socket disconnect error will be calculated by DSAccess)
DC_RATE_SEARCH_FAILURES How many times during last minute user search fails, mostly with PERF_COUNTER_RAWCOUNT (per-minute rate
non-fatal and non-disconnect error. (Disconnect error might get will be calculated by DSAccess)
there if there are no domain controllers available at all)
DC_RATE_BIND_FAILURES How many times during last minute bind to a domain controller failed PERF_COUNTER_RAWCOUNT (per-minute rate
will be calculated by DSAccess)
DC_TIME_NETLOGON How fast the last dsgetdcname (our “netlogon ping”) returns (in PERF_COUNTER_RAWCOUNT
msec).
DC_AVG_TIME_KERBEROS Average Kerberos ticket lifetime for 16 last connections that had PERF_COUNTER_RAWCOUNT (average for 16
Kerberos expired connections is made by DSAccess)
DC_AVG_TIME_CONNECTION Average connection lifetime for 16 recently closed connections PERF_COUNTER_RAWCOUNT (average for 16
connections is made by DSAccess)
DC_STATE_REACHABILITY Bitmask, 3 bits for reachability as domain controller, ConfigDC and PERF_COUNTER_RAWCOUNT
global catalog (critical)
DC_STATE_CRITICAL_DATA 1 if the domain controller contains this Exchange server object PERF_COUNTER_RAWCOUNT
(critical)
GLOBAL_DC_IN_SITE Number of suitable domain controllers in site after last discovery PERF_COUNTER_RAWCOUNT
GLOBAL_GC_IN_SITE Number of suitable global catalogs in site after last discovery PERF_COUNTER_RAWCOUNT
GLOBAL_DC_OUT_OF_SITE Number of suitable domain controllers out of site after last discovery PERF_COUNTER_RAWCOUNT
GLOBAL_GC_OUT_OF_SITE Number of suitable global catalogs out of site after last discovery PERF_COUNTER_RAWCOUNT
Importance:
In this lesson, we will observe the replacement for DSADiag: the exomatic tool.
Additionally, we will explore additional monitoring interfaces exposed through
WMI that are queried using the exomatic tool.
Lesson Objectives:
At the end of this lesson, students will be able to use the exomatic tool.
7. Try running additional scripts and examine their corresponding output. You
may also edit the script (such as redirecting output to a message box) or save
your customizations to a text file.
38 Module 7: Exchange Directory Components
In Exchange 2003, LDAP traffic is signed (and thus, mostly encrypted) for
security purposes. Specifically, the following flags are used when binding to
ADSI:
ADS_USE_ENCRYPTION - Forces ADSI to use encryption for data
exchange over the network.
ADS_USE_SIGNING - Verifies data integrity to ensure the data received is
the same as the data sent.
ADS_USE_SEALING - Encrypts data using Kerberos.
Network monitor captures will show encrypted packets, which are impossible to
troubleshoot. To override the new security behavior when, for example,
troubleshooting typical Exchange System Manager error messages returned by
Active directory, one must first enable the DebugLDAP key to prevent
Exchange from encryption. In this key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Exchange
Note Signing applies for all admin binaries, not just Exchange System
Manager. This means that the ADC Services MMC, as well as the maildsmx
extensions for the Active Directory Users and Computers MMC are affected.
Troubleshooting Tip
40 Module 7: Exchange Directory Components
If you ever need to hardcode the Directory Access property sheet for a server
within Exchange System Manager for troubleshooting, ensure that you do not
specify a pre-Windows 2000 SP3 domain controller. This is because older
domain controllers do not support signing; yet there is no check in Exchange
System Manager to prevent administrators from selecting pre-SP3 Windows
2000 domain controllers.
Exchange 2000 ADC services: Although the Exchange 2000 ADC service may
be installable in a domain with Windows 2003 domain controllers, there is no
built-in check in its setup code to detect a supportable domain controller. A
design change in Windows 2003 Forest-Functional mode causes problems with
the Exchange 2000 ADC. Specifically, in Windows 2003 forest-functional
mode, group membership changes in the Active Directory may not back
replicate to Exchange 5.5. Therefore, the Exchange 2000 ADC cannot run
against Windows 2003 forest-functional domain controllers. (Forest functional
levels are discussed further in this lesson.) The Exchange 2003 version of the
ADC does not have this problem..
Module 7: Exchange Directory Components 41
summarize that an 8332 event occurs every 10% of the way (approximately).
For smaller directories, you may only see one 8332 event.
Suppose you were trying to track down a problem with the proxy addresses.
From the metadata you can see that the last time the Recipient Update Service
modified the object was on 2003-02-07 11:47:51, according to
msExchALObjectVersion. In searching additional timestamps on other
attributes, you can also declare that at the same time, the Recipient Update
Service also modified msExchPoliciesIncluded. From this trace evidence, we
can conclude that anything else wasn’t modified by the Recipient Update
Service. Therefore, the proxy addresses were last modified on 11:47:29 by the
ADC (since the msExchADCGlobalNames were modified at the same time).
Module 7: Exchange Directory Components 45
New Unicode OAB In Exchange 2003, a new system folder called "OAB Version 3a" becomes
available. This system folder is used solely by Outlook 2003 and later clients, as
Outlook now has most of its code ported to Unicode. The reason for the change
was because OAB generation by a single server defaults to the server’s system
codepage, so characters that cannot be converted to a codepage of that single
server become question marks. By generating the Offline Address Books in
Unicode, Outlook preserves the Unicode data and is able to render Unicode in
the address book UI.
Though it is still possible that the OAB version 2 may be used, Outlook 2003
prefers to download the offline address lists in Unicode format. One minor issue
is that the new OAB is created without replica information filled-in. So when
Exchange 2000 customers have already manually set replication info on the
"OAB Version 2" folder, they may not realize they need to do it again when
upgrading to Exchange 2003 for the new folder.
Running GUIDGEN.exe has, in the past, been a troubleshooting step to produce
new site folders when the site folder GUID was lost – typically through server
deletion from Active Directory. The new OAB v3a follows the same behavior,
in that it will be regenerated when the admin group’s sitefolderGUID is
updated.
The Unicode OAB also contains the following MAPI address book properties
for each record:
46 Module 7: Exchange Directory Components
PR_USER_CERTIFICATE
PR_BUSINESS_TELEPHONE_NUMBER_W
PR_GIVEN_NAME_W
PR_INITIALS_W
PR_STREET_ADDRESS_W
PR_LOCALITY_W
PR_STATE_OR_PROVINCE_W
PR_POSTAL_CODE_W
PR_COUNTRY_W
PR_TITLE_W
PR_COMPANY_NAME_W
PR_ASSISTANT_W
PR_DEPARTMENT_NAME_W
PR_EMS_AB_TARGET_ADDRESS_W **
PR_HOME_TELEPHONE_NUMBER_W
PR_BUSINESS2_TELEPHONE_NUMBER_W_MV **
PR_HOME2_TELEPHONE_NUMBER_W_MV **
PR_PRIMARY_FAX_NUMBER_W
PR_MOBILE_TELEPHONE_NUMBER_W
PR_ASSISTANT_TELEPHONE_NUMBER_W
PR_PAGER_TELEPHONE_NUMBER_W
PR_COMMENT_W
PR_EMS_AB_PROXY_ADDRESSES_W
PR_USER_X509_CERTIFICATE
PR_EMS_AB_X509_CERT
PR_EMS_AB_HOME_MDB_W **
PR_EMS_AB_MANAGER_W **
** = These properties were added to the OAB Version 3a files. Previously,
these properties were not included in the OAB.
Note: Although the PR_EMS_AB_MANAGER_W field is in the V3a OAB
files, it is not visible from the client when running offline.
The list of properties in the OAB is hard-coded.
Some other new features are introduced with new functional levels, such as
domain and domain controller rename. However, these new abilities will cause
problems with Exchange 2000 and 2003 (discussed below). For a list of
functionality levels and their available features and restrictions, open Windows
2003 server “Help and Support,” and search on the string “Domain and forest
functionality” with quotes. The table should be contained within the first link
found in the search.
InetOrgPerson class
The inetOrgPerson object-class is added with Windows 2003 Active Directory.
InetOrgPerson objects are based on the standard defined in RFC2798, and are
provided primarily for interoperability with third-party systems. This object is
designed to be used as an “outward facing” security context. Because of this,
these objects are ideal for use as e-mail recipients for external users or internet
access to mail in a hosting scenario. However, there are some restrictions
depending upon the detected scenario, and whether the maildsmx extensions are
registered. The MailDSMX.dll is available on machines which have an
Exchange 200x component, such as Exchange System Manager or the ADC
services snap-in – which enables the ability to invoke “Exchange tasks” against
an InetOrgPerson object. Yet Exchange tasks are limited when operating on this
class depending upon the scenario detected:
In Exchange 2000, attempts to mailbox-enable these objects are blocked with
“no tasks available.” In fact, the existence of any pre-Exchange 2003 servers
will cause the Exchange 2003 admin components to block with this error:
<summary isWarning="false" errorCode="0xc1034957">In order to
use Exchange with inetOrgPerson objects is it necessary to
upgrade all servers. InetOrgPerson is not supported in the
presence of Exchange 5.5 or Exchange 2000 servers.</summary>
Depending upon the Exchange versions detected in the organization, there are
only certain times when mail-enabled or mailbox-enabled inetorgperson objects
are supported:
For the PureADC scenario, no Exchange 200x servers exist, but Exchange 5.5
and Active Directory Connector are installed. In this configuration, the Active
Directory Users and computers snap-in allows for the creation of mailbox-
enabling attributes on InetOrgPerson objects, provided that the OU is listed as
an export container of a connection agreement. Fortunately, connection
agreements will not replicate InetOrgPerson objects in the direction of Active
Directory Æ Exchange 5.5. In the opposite direction, it is possible for
customers to configure Exchange 5.5 mailboxes to have assoc-NT-account
(Primary Windows NT accounts) that are InetOrgPerson objects. Through that
process, the ADC will replicate these mailbox-enabling attributes to Active
Module 7: Exchange Directory Components 49
Domain rename
Domain Rename (rendom.exe) allows for renaming the DNS and NetBIOS
names of domains. This new Windows 2003 feature allows complete
restructuring of the domain hierarchy, with the exception of the root domain. In
the root domain, the DNS and NetBIOS names can be changed, but it must
remain the forest root. Additionally, the forest must be at the Windows 2003
forest functional level. Domain Rename does not support domain “grafting”,
that is, domains cannot be moved between forests. One interesting option is that
a child domain can become a new tree during the rename process. For more
details on domain rename, refer to the documentation at
http://www.microsoft.com/windowsserver2003/downloads/domainrename.msp
x
Domain rename is not supported when Exchange 2000 or Exchange 2003 exist
in the forest. However, there is no mechanism to block customers from
renaming domains where Exchange is installed. After renaming a domain’s
DNS namespace, anything that uses DSAccess will cease to function properly.
Specifically, when an Exchange 2000 or Exchange 2003 server comes online,
the System Attendant will fail to start. The only resolution for RTM is for the
customer to re-use rendom.exe to rename the domains to their former names.
Despite the problems with Exchange when domain rename is used, the
RENDOM.EXE utility may prove to be a good troubleshooting utility.
“Rendom /list” will help to identify all directory partitions, domains and
NetBIOS names.
50 Module 7: Exchange Directory Components
DC Rename
A new feature available with new Windows 2003 functional modes is the ability
to rename domain controllers. Renaming a domain controller requires that the
domain must be raised to the Windows 2003 functional level (no pre-Windows
2003 domain controllers can exist)
Unfortunately, like domain rename, there are no safety checks to guard against
problems with Exchange 2000 or 2003. So some negative side effects of
renamed domain controllers are:
ADC connection agreements no longer replicate because their “connections”
tab still points to the old domain controller names.
Domain controllers that were manually specified through Exchange Serve
Manager’s “Directory Access” tab become invalid. As such, DSAccess can
no longer query domain controllers properly, so all Exchange services will
cease to function.
Domain controllers that are automatically discovered by DSAccess may not
be used until the Exchange servers are restarted. This is because DSAccess
still has the old domain controller names in memory.
with credentials, the right-hand pane will say isSynchronized: TRUE for an up-
to-date global catalog.)
This benefits Exchange 2003 by removing some additional reboot scenarios.
Fewer reboots = happier admins. It also prevents the situation where a global
catalog is advertised but has not registered the NSPI interface and therefore
remains inaccessible to clients.
Three attributes have been added to the Active Directory schema to support
this. The values are:
CachedMembership
CachedMembershipTimeStamp
SiteAffinity
Schema changes
Microsoft Mobile Information Server (MMIS schema extensions are not reused
in Exchange 2003’s mobility components – that is, the two sets of schema
extensions do not overwrite each other, nor do MIS and Exchange 2003 share
any schema attributes. This means that an organization migrating from
Exchange 2000 + MMIS to Exchange 2003 can have both mobile systems
operating side by side without conflict. Thus, migration can be done over time
rather than overnight. The only caveat is that no MMIS components may exist
on the same machine as Exchange 2003.
To determine all schema changes between Exchange 2000 RTM (4417.5) and
Exchange 2003:
1. Open Schema9.LDF from the RC0 media with notepad
2. Find "dn: CN=ms-Exch-CalCon-Client-Wait,<SchemaContainerDN>"
3. From this line to the end of the file are the schema changes between
Exchange 2000 and 2003
As of build RTM, Exchange 2003 introduces approximately 12 new classes and
60 new attributes. The changes in the schema are documented within the SDK
documentation, and can be referenced in MSDN online at
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/e2k3/e2k3/e2k3_ldf_diff_ad_schema_intro.asp
54 Module 7: Exchange Directory Components
Improved admin tracing capabilities exist in Exchange 2003. Notably, you may
use regtrace.exe to capture trace information on any communication with
Active Directory using Exchange System Manager. This is useful for
troubleshooting the cause of any unexplained popup errors while using System
Manager. To enable retail tracing, drop a trace.ini file into the Windows
directory.
The trace.ini file should contain
[Base]
Error=16
[DS]
DS Error=16
DS Flow=16
Data Received=16
Though not related to directory changes, there are several other admin binaries
which may be traced using the following file which you may copy and paste
from here:
Module 7: Exchange Directory Components 55
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;
;
; Exchange 2003 Admin Retail Traces
;
; This file will allow you to enable additional tracing
information for
; the admin binaries in E2K3.
;
; How to use:
; 1. Put this file in the Windows directory (not system32),
that's
; the directory pointed to by the %windir% environment
variable.
; 2. Uncomment the traces you want. See below for lists of
common
; traces to enable.
; 3. Run regtrace.exe (should already be on the server) and
select
; the following options:
; "Recoverable Error Conditions",
; "Debug Statements", and
; "Function Entry/Exit".
; On the "Output" tab, select "File" and make sure the
filename
; points to a valid drive and directory and change the "Max
; Trace File Size" to 40 megabytes. Save the changes and
exit
; out of regtrace.
; 4. Perform the actions you want to be traced.
; 5. Turn off tracing (with regtrace) because tracing does add
some
; minimal overhead to the processes.
; 6. Use tracevwr.exe to view the trace results. Tracevwr can
; filter the traces based on the process id so it can be
very
; helpful to also get the process id of the binary you wish
to
; trace.
;
; The following files are effected by this file:
; exadmin.dll -- ESM (Exchange administration MMC snapin)
; exsetdata.dll -- Setup
; exmgmt.exe -- E2K3 WMI providers
; cdoexm.dll -- CDOEXM com objects
; mad.exe -- System Attendant
; maildsmx.dll -- Exchange extension to ADU&C
; adcadmin.dll -- ADC administration MMC snapin
; excluadmin.dll -- Exchange administration cluster extension
;
; Only mad.exe can pick up changes to the trace.ini file while
it is
; running. To get mad.exe to use the new trace.ini values you
must change
; and save the trace.ini file and then make some change to the
regtrace
56 Module 7: Exchange Directory Components
[Base]
;Error=16
;MapiSession=16
;MapiProfile=16
;EventLog=16
[BaseWMI]
;General=16
;Context=16
;Token=16
[CLUSTERUTILITY]
;Cluster Utility=16
;Cluster Property List=16
[DS]
;DS Error=16
;DS Flow=16
;Data Received=16
;CProxySession=16
;CRecipientPolicy=16
[EXWMI]
;General=16
;Details=16
[HTTP]
;Data Sent=16
;Data Received=16
[LOGIC]
;Store=16
[MbClean]
;Values=16
[RPC]
;RPC Calls=16
[WMIPROV]
;MTC=16
58 Module 7: Exchange Directory Components
Module 7: Exchange Directory Components 59
Importance: This lab will build the engineer’s skill in determining if an Active Directory
Object may have been stamped by the Recipient Update Service, or perhaps
through a user script.
1. Pair-up with a partner.
2. Create a mailbox-enabled user.
3. Quickly ask your partner to modify an attribute of your new user
account, and then set it back to the way it was (i.e. partner can add a
telephone #, and then immediately delete it).
4. Can you determine which happened first?
a. Recipient Update Service stamping, or
b. partner’s attribute modification?
5. Can you determine which attribute your partner modified?
(Hint in 7.3.5 in Appendix C if you cannot)
6. On the “From Windows” tab, can you list which sites have Exchange
2000/2003 installed?
7. Comparing both tabs, can you list which admin groups are mixed?
8. Eventually, the config Controller Agreement will replicate this new Admin
group to the SRS. Use the Exchange 5.5 admin program to confirm that the
“Pure AG” naming context appears in Exchange 5.5 as a new site.
9. If you desire, use Exchange System Manager to create as many pure
Exchange 2000/2003 admin groups as you desire, and witness their
propagation to the Exchange 5.5 directories.
4. Using the Exchange 5.5 admin.exe program, connect to the SRS on Z2.
Why do we see the new mailbox-enabled objects in the global address list?
This is by design, since the SRS does not show the Exchange 5.5 site naming
context; instead, its representation of the GAL is a query to the local global
catalog for mail-enabled objects. To truly see what Exchange 5.5 site naming
context the SRS has stored (rather than a query to Active Directory), use LDP
or LDIFDE to browse/dump the directory objects stored within SRS.edb.
Reason1) The SRS can accept a write operation for other naming contexts as
long as it is responsible for them. To confirm that this SRS (and not another)
owns the “pure AG” naming context, look at the config Controller Agreement’s
msexchserver1exportcontainers attribute.
Reason2) It does not matter what you specify on the default destination because
the legacyexchangeDN attribute of these Exchange 2000 mailbox-enabled
Active Directory objects will be sorted-out by the SRS and placed into the
proper Exchange 5.5 site naming context.
6. When you are finished, power-down z6. (We no longer use this virtual
machine in any future exercises, but you may opt to suspend it if you would
like to experiment after class.)
Exercise 5: Msexchuseraccountcontrol/masteracctsid
1. In the MS domain, create a new Active Directory account called
“remotewithADacct” Do not create a new mailbox when the wizard prompts
you to.
2. In the remote55site, create a new mailbox called remotewithADacct.
Associate the MS\remotewithADacct account with this mailbox.
3. In remote55site, create a new mailbox called “remotewithNTacct” Create a
new Windows NT 4 account in the NT4domain when Exchange 5.5 admin
prompts you.
4. Create a recipient Controller Agreement between the remote55 server and
Z2.
5. Verify the recipient Controller Agreement replicates, and that a
“remotewithADacct” is matched and stamped, while “remotewithNTacct” is
created is a disabled user account.
6. Use ADSIEdit, and go to the properties of these two accounts. Which one
uses msexchmasteraccountsid? Let’s also take a look at
msexchuseraccountcontrol. When msexchuseracctcontrol is 0, what does
msexchmasteraccountsid contain? In Active Directory
Users and Computers, viewing advanced features, what are the mailbox
permissions on this account?
MasterAccountSIDS
The msExchMasterAccountSID is the real SID of a mailbox. It should only be
stamped on disabled user objects. For enabled user objects, the objectSID is
used For example a Windows NT4 user logs into his Windows NT4 domain to
access his mailbox, which happens to be represented in an Active Directory
Domain by a corresponding disabled user account. That disabled, placeholder
account contains the msExchMasterAccountSID value matching the SID from
his Windows NT4 user account. Though the placeholder account contains an
objectSID, that objectSID won’t be used by the store in calculating permissions;
instead, msExchMasterAccountSID is used.
The msExchMasterAccountSID has three common uses…
1) When an Exchange 5.5 mailbox is upgraded to Exchange 2000, if there is an
msExchMasterAccountSID then the mailbox store will be ACLed with the
msExchMasterAccountSID. This is the big reason that changing the
msExchMasterAccountSID does not always yield pleasant results. The old SID
is still present on permissions for the mailbox.
2) When you log on, the store or OWA can hunt down your mailbox via the
msExchMasterAccountSID
3) When you give someone delegate access to your mailbox, the SID that is
stamped is the msExchMasterAccountSID.
64 Module 7: Exchange Directory Components
4. Open-up ADC manager on Z3, and examine the left-hand pane. What
correlation is there?
You should see the same number of Controller Agreements in ADC MMC as
you see in “Exchange Settings”, except for default ADC policy. You should
also see Controller Agreements that don’t have a responsible server and are
hidden from ADC UI.
Learning Measure:
In the figure illustrated in Lab 7.1, why isn’t there a directory replication
connector between PureAG and Hubsite?
a) To Exchange 5.5, the directory replication connector is implied.
b) There is no Exchange 5.5 interface with which to create the directory
replication connector in PureAG.
c) Exchange 2003 does not yet exist in Hubsite.
d) A config Controller Agreement will create it when another SRS is installed.
Module 7: Exchange Directory Components 67
e) A and B
f) C and D
g) All of the above
Correct Answer is in Appendix C
68 Module 7: Exchange Directory Components
CacheSizeUser 140 *1024 *1024 (25 MB) 1 1000 * 1024 * 1024 (1000 MB)
CacheSizeConfig 5 *1024 *1024 (25 MB) 1 1000 * 1024 * 1024 (1000 MB)
LdapKeepAliveSecs 30 5 0xFFFF
TopoImprovementPercent 10 1 100
UtilityTimeSecs 30 1 0xFFFFFFFF/1000
MaxNotifyLdapConnections 50 1 10000
NumberOfDCsUsedSimultaneously 10 1 10000
NumberOfGCsUsedSimultaneously 10 1 10000
LoadBalanceWeightRoundRobin 10 0 10000
LoadBalanceWeightOutstandingRequests 1 0 10000
LdapConnections 1 1 10
AsyncLdapConnections 1 1 10
PortNumber 0 0 0xFFFF
Module 7: Exchange Directory Components 69
Lab Answers:
7.1.3: The config Controller Agreement in conjunction with the SRS are
responsible for replicating configuration data.
7.1.4 - On Exchange 2003, it will only output config DC (of which there can
only be one in the list at a given point in time). Further, the topology
rediscovery option doesn't work. If you run it on an Exchange 2000 server
(such as Z2), all options work.
7.2.5: PureExchange 5.5 only if they don't exist on "From Windows Tab"
7.2.6: PureAG only if they don't exist on "From Exchange Tab"
7.2.6: Mixed AGs (having both Exchange 5.5 and Exchange 2000/2003
servers) will appear on both "From Windows" and "From Exchange"
tabs.
7.3.5: The student needs to use repadmin /showmeta, as discussed in the
previous lesson.
7.4.7: Exchange 2000’s ADC doesn’t scramble the samAccountName like
the Exchange 2003 ADC version. This is a GOOD thing.
7.8.2: The default ADC policy is a different class from other Controller
Agreements. Its class does not have the msexchhomesyncservice defined.
7.9.2: Z3 does not have an SRS, and only servers with Exchange 5.5
Directory Services may be specified to become directory replication
bridgeheads.
Acknowledgments
Microsoft Employee
Vincent Yim
Harvey Rook, Neil Shipp, Vladimir Grebenik
MSPress books
[Microsoft Corporation. Windows XP Professional Resource Kit, Chapter 6:
Security, MS Press, 2001.]
KB article
“XADM: How the Recipient Update Service Applies Recipient Policies”
Knowledge Base article 328738 available at http://support.microsoft.com
Existing Whitepaper
[Microsoft Corporation. “Best Practices for System Policies in Windows
2000 Networks.” Whitepaper available at
http://www.microsoft.com/technet.]
Module 8: Cross-
Forest/Multi-Forest
Contents
Overview ................................................................................................................. 1
Lesson 1: The Cross-forest Specification................................................................ 2
MIIS Components ................................................................................................... 8
Lab 8.1: Getting to know MIIS 2003 and GAL Sync Management Agent .......... 26
Lesson 3: Cross-Forest SMTP Mailflow .............................................................. 32
Lesson 4: InterOrg Public Folder Replication....................................................... 35
Lab 8.2: Cross Forest Practice............................................................................. 47
Appendix A GAL Sync Log and Error Messages ................................................. 50
Appendix B: GAL Sync Mapping Types .............................................................. 54
Appendix C: GAL Sync Provisioning Rules......................................................... 67
Acknowledgments ................................................................................................. 76
ii Module 8: Cross-Forest/Multi-Forest
Information in this document, including URL and other Internet Web site references, is subject to
change without notice. Unless otherwise noted, the example companies, organizations, products,
domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious,
and no association with any real company, organization, product, domain name, e-mail address,
logo, person, place or event is intended or should be inferred. Complying with all applicable
copyright laws is the responsibility of the user. Without limiting the rights under copyright, no
part of this document may be reproduced, stored in or introduced into a retrieval system, or
transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or
otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.
Microsoft, MS-DOS, Windows, Windows NT, Active Directory, ActiveX, Excel, Exchange Server
5.5, Exchange 2000 Server, Exchange Server 2003, Internet Explorer, Internet Information Server,
Word are either registered trademarks or trademarks of Microsoft Corporation in the United States
and/or other countries.
The names of actual companies and products mentioned herein (Groupwise, IBM, Lotus cc:Mail,
Lotus Notes, Netscape, Oracle) may be the trademarks of their respective owners.
Module 8: Cross-Forest/Multi-Forest 1
Overview
At the time of this writing, only RC1 of MIIS 2003 was available for reference.
As such, many of the screenshots may be out of date. Additionally, the MIIS
product name was renamed prior to the Release To Manufacture RTM in July
2003. Thus, any references to MMS or “Microsoft Meta Directory Services”
should be considered MIIS or “Microsoft Identity Integration Services.”
2 Module 8: Cross-Forest/Multi-Forest
Introduction
Why do customers deploy multiple forests?
Customers deploy multiple forests because it is more secure. Since an Active
Directory domain was no longer a true security boundary, forests became the
entities in which future topologies were planned.
Customers want administration autonomy and data isolation. They could
achieve this in Exchange 5.5, by simply attaching any new Exchange 5.5 site to
an existing organization, and thus form a chain of peer sites with a common
GAL. Yet trusts were not necessary between each domain that was the realm of
an Exchange 5.5 site. Therefore data could be isolated, and administration could
be left in the hands of each site/Windows NT domain administrator.
Exchange 2000 introduced an architectural regression. Customers could no
longer achieve administration autonomy and data isolation because Exchange
2000 organizations were each bounded by a single forest. This meant that each
Global address list was limited to this same boundary. There was no way to
attach administrative groups to existing organizations outside of the forest to
share a common GAL. Thus, it was extremely difficult to replace traditional
site/domain boundaries with multi-domain, single-forest model. For those that
tried, they found that transitive trusts and Exchange groups were so invasive
that any domain administrators could potentially gain access to other domains’
mailboxes within the forest.
Goals:
The goal is to deploy multiple forests to achieve core messaging functionality
as it works in the single-forest case. This includes
- Basic mail functionality
- Calendaring
Module 8: Cross-Forest/Multi-Forest 3
- Common GAL
Important: There are certain features which are not available in Cross-forest
deployment, such as the ability to view distribution group membership whose
members are stored in another forest. Further, Delegate Access will not be
supported across forests. (Currently, a contact cannot be given delegate access
to a mailbox). Thus, customers should not expect to achieve full full-feature
parity with single-forest installations.
Added benefits:
- Customers have an alternative to using the Active Directory
Connector’s inter-organizational connection agreements, which were not
supported for coexistence between different organizations.
- Provide an administrative model somewhat similar to peer-to-peer
directories as was the case in Exchange 5.5, so that Exchange 5.5 customers
may ease into Exchange 2003 without destroying their existing administrative
model.
Components
The bare requirements to make a multi-forest topology work for just basic
messaging (basically sending messages and no free/busy features) is Directory
Synchronization and mail flow. Essentially, a synchronized global GAL needs
to be available to all forests and a transport route needs to be in place to allow
mail to flow between them.
Since there is no built-in feature to automate sharing of GAL information
between forests, the cross-forest spec combines unrelated technologies to
achieve the goals. These technologies include
Microsoft Identity Integration Server (MIIS) to achieve directory
synchronization.
Customized SMTP connectors for mailflow between forests.
Optional components (IORepl, x-forest movemailbox) may be added to
the cross-forest scenario so that the multi-forest deployments come
closer to parity with a single-forest scenario.
4 Module 8: Cross-Forest/Multi-Forest
Definition
This topic covers Microsoft Identity Integration Server version 2003 and the
Global Address List Synchronization (Galsync) process, which perform the
directory synchronization. Once set up, users in one forest may look up
recipients in different forests, and the infrastructure for cross-forest mail flow is
established.
History of MIIS
•Previous version bought from Zoomit, Inc.
•Version 2.2 is no longer for “sale.” “Sale” is in quotes because if a customer
has a Windows 2000 Advanced Server license, then this product is available at
no extra cost. However, in order to implement this product they will need to
engage Microsoft Consulting Services (MCS) or an Authorized MIIS Partner.
Version 2.2 is a high-touch, complex, difficult to deploy product. As it is
particularly difficult to setup and configure, in the hands of the untrained, it is
possible to do considerable damage to the connected systems. For this reason
MMS 2.2 was never actually sold as a “product” in the true sense. It did not
have a SKU, and was not on any parts list from Microsoft. However, Microsoft
would license the product to customers who had a Windows 2000 Advanced
Server license (at no additional cost), and took a services engagement from
MCS, or from an Authorized MIIS Partner.
•Version 3.0 (renamed to MMS 2003, then renamed to MIIS 2003) – Rewritten
from the ground-up. There is still an MIIS 2003 partner program, and
http://www.microsoft.com/windows2000/partners/mms2003.asp lists those that
have been trained on MIIS 2003 and are ready to help customers. The 3.0/2003
version is considerably improved, and Microsoft believes customers can use the
information (based on scenarios) that ships on the product CD to conduct their
own evaluation, design, test and deployment.
Module 8: Cross-Forest/Multi-Forest 5
Companies often store data about users and objects in multiple data sources –
some within Active Directory forests, but others within other types of data
repositories. Therefore, the identity of a user could be scattered across several
different locations on several different incompatible platforms. Often,
companies need to aggregate (combine) that information into a logical view that
represents the sum of all the identify information for a given object.
Thus, Metadirectories are utilized for identity management, or for massaging
complex data from multiple data sources so that they may be managed easily.
Because the concept is so universal, IBM®, Oracle®, Netscape®, and others
market their own Metadirectory products. Microsoft’s latest offering is called
Microsoft Integrity Information Services (MIIS) version 2003.
MIIS 2003 is a service that collects information from different data sources
throughout an organization and then combines all or part of that information
into an integrated, unified view. This unified view presents all of the
information about an object, such as a person or network resource, that is
contained throughout the organization. In most organizations, the sources data
is typically stored in different directories, databases, and other data repositories
throughout the Information Technology (IT) infrastructure.
After all of the information about a person or resource is combined in the
metadirectory, rules can be applied to decide how this information is managed
and how changes to this information flow out to all of the directories that are
connected to the metadirectory. Therefore, the metadirectory propagates any
changes that originate in one directory to the other directories in the
organization.
6 Module 8: Cross-Forest/Multi-Forest
Glossary:
To use MIIS to manage data, it is important to become familiar with key
concepts and definitions that will assist you in understanding the architecture
and function of MIIS.
Objects and Attributes - Each entry in the Metadirectory is an object, of a
specific type, which is comprised of a number of attributes. For example, the
entry for Kim Rallsis a specific “Person” object, which possesses attributes
(e.g. displayName, Title, Department, telephoneNumber) that are defined for
the “Person” Object Type. Examples of other object types include “Computer,”
“Group,” and “Organizational Unit.” Although Object Types are similar in
function to Lightweight Directory Access Protocol (LDAP) Object Classes,
they do not exhibit inheritance, and an object may be of only one type.
Metaverse and connected directories - The external sources of data for MIIS
are referred to collectively as connected directories. The collection of objects
and attributes which are stored and managed in the MIIS system is the
metaverse. Because one object in the metaverse is likely to represent entries in
more than one connected directory, there will be a conflict if attributes differ for
that object in each connected directory. Therefore, it is important to understand
which connected directory has authority for each object type and attribute, and
therefore which source takes precedence if there is a conflict. This
understanding comes primarily from discussions with the business owners of
the various systems, and is one of the key requirements for success of a
metadirectory implementation project.
Management Agents and Connector Space - The data flow between MIIS
and a specific connected directory is defined in a Management Agent, and data
flows only when a Management Agent is run. Each Management Agent has a
connector space. The connector space is an area (separate from the metaverse)
in which a management agent stores holograms from which changes in data-
state are calculated. A Management Agent may handle all objects in a
connected directory or may be configured to manage only a subset of objects
and their attributes. Every object and attribute from the connected directory
handled by a Management Agent is represented in the connector space. The
Management Agent configuration defines which objects are attributes are
synchronized into the metaverse.
Joins and Projection - If an object from a connected directory is represented in
the metaverse, it is said to be joined. The process by which the synchronization
engine makes the association between an entry in a connector space and a
corresponding entry in the metaverse is known as joining. If an entry in the
connector space is to be represented in the metaverse, but no corresponding
entry in the metaverse can be found by the Join process, a new metaverse object
may be created for this entry (according to how the Management Agent is
configured). The creation of a new metaverse object is known as projection,
and following projection, the connector space entry will be joined to the new
metaverse object.
Connectors and Disconnectors - An object in the connector space may or may
not be joined to an object in the metaverse. If a connector space object is joined
to a metaverse object, it is referred to as a Connector. If it is not joined to a
metaverse object, it is referred to as a Disconnector.
Module 8: Cross-Forest/Multi-Forest 7
MIIS Components
There are three basic areas of storage. The unified view (metaverse), connector
space (where data manipulation takes place), and the connected data sources
from where data is pulled/pushed. The actual manipulation
(joins/adds/extension rules) are performed by the Management Agents. There
are different Management Agents for different types of data sources. Pertaining
to Exchange 2003, there is the Active Directory Global Address List
Synchronization Management Agent (GAL Sync Management Agent) where
our attention will focus later.
Connected Directory
Active Directory
z Source and/or
destination for
synchronized objects
and attributes
Connector Space (CS)
User Oracle
z Staging area for all
objects that
synchronize with MMS
z Persists the import
and export state on IPlanet
Metaverse Connector
each object
Each MA has its own
z
CS Space
Metaverse (MV) SAP,JDEdwards,
SAP,JDEdwards,
z Central (SQL) store of Peoplesoft,
Peoplesoft, etc.
identity information
z Matching CS entries to
a single MV entry is Connected
called “join” Data Sources
Module 8: Cross-Forest/Multi-Forest 9
Management Agents can also read/write to/from flat files. For Exchange 2003,
we use cell-based Management Agents. Regardless of the Management Agent
type, the connector space and metaverse components are stored in SQL. Each
Management Agent is capable of performing bidirectional replication between a
data source and the metaverse. However, at least two Management Agents are
necessary for end-to-end replication from a source connected directory to a
target connected directory.
Metadirectory
Connector Namespace Metaverse Namespace
Suzan Suzan
Suzan Fine
Fine
Suzan Fine
Fine
Full
Full Name
Name Full
Full Name
Name Suzan
Suzan Fine
Title
Title Forest1
Forest1
1 3 Fine
Title
Title
Employee
Employee ## Full
Full Name
Name
Employee
Employee ##
Title
Title
Employee
Employee ##
5 Name
Name
Post
Post Office
Office
Suzan
Sue
Sue Fine
Suzan Fine
Fine
Fine 5 Suzan
Sue
Sue Fine
Suzan Fine
Fine
Fine Location
Location
Name
Name
Post
Post Office
Office Name
Name
Forest2
Forest2 2 Post
Post Office
Office
Location
Location 4
Employee
Employee ## Location
Location
Employee
Employee ##
== Management
ManagementAgents
Agents
1. The management agent for the first connected directory creates entries
in the connector namespace. The management agent creates these entries (and
their attributes) in its portion of the connector namespace.
2. The management agent for the second connected directory creates
entries in its portion of the connector namespace. Note that in the preceding
illustration, there is an entry for Kim Ralls each of the connected directories.
Therefore, there will be two entries in the connector namespace that represent
Kim Ralls.
3. The Management Agent for one of the connected directories creates an
entry in the metaverse namespace that corresponds to the entry in its connector
namespace. Note that an administrator determines which connected directory to
use to initially create entries in the metaverse namespace.
4. The management agent for the second connected directory then
attempts to match its entry in the connector namespace with the corresponding
entry in the metaverse namespace. This action is called a join because each
entry in the connector namespace that represents the same real-world object is
joined together, or integrated, as one entry in the metaverse namespace.
10 Module 8: Cross-Forest/Multi-Forest
To ensure that the entries that are joined together in the metaverse namespace
represent the same real-word object, you can configure MIIS to use a unique
attribute (such as an employee number) as the criteria by which entries are
joined.
At this point, as shown in the preceding illustration, Kim Ralls represented by
an entry in each of the connected directories, by an entry in the portion of the
connector namespace for each connected directory, and by the integrated entry
in the metaverse namespace.
5. After entries for the same real-world object are joined together in a
single entry in the metaverse namespace, you can determine which attributes
the metaverse namespace entry contains and from which connected directory
the values for these attributes originate. This is determined by something called
attribute flow rules.
When attribute values differ, an attribute flow rule specifies which attribute
value (from the metadirectory or from the connected directory) takes
precedence. For example, in the preceding illustration, if the values for a
common attribute in the entries for Kim Ralls are different, attribute flow rules
inform the management agents of the value that takes precedence so that the all
the entries for Kim Ralls can be synchronized.
If an attribute does change in the entry in the metaverse namespace, the
appropriate management agent makes that change in the entry in the connector
namespace and then propagates the change to the connected directory.
Although the Management Agent above was customized for HR databases, a
pre-built Management Agent will be available to accomplish replicating global
address lists.
Module 8: Cross-Forest/Multi-Forest 11
Most of the attributes from the Source Active Directory are preserved and
copied into the target Active Directory. For example, a telephone number of
UserA in Forest1 will be synchronized to the target contacts UserA in Forest2
and Forest3. However, there are some exceptions where additional rules are
called. More detailed information on the mapped attributes and rules are
provided in Appendix B: Mapping Rules.
The flows that are not addressed are the one-to-one mappings in the following
table, and any one–to-many or many-to-one mappings listed the preceeding or
following tables.
Source Active Directory Metaverse Target Active Directory
Object Conditions
User The homeMDB or TargetAddress attribute is defined.
Contains at least one proxyAddress attribute value.
The MSExchHideFromAddressList is not set to ‘true’.
Contains a LegacyExchangeDN attribute value.
Contact The TargetAddress attribute is defined.
At least one proxyAddress attribute value is defined.
The MSExchHideFromAddressList is not set to ‘true’.
Must have a LegacyExchangeDN attribute value, but only if the method of
creation for the object was projection and not provisioning.
Group The MSExchHideFromAddressList attribute is not set to ‘true’.
A LegacyExchangeDN attribute value is defined.
Join rules are applied to contact objects only. When you run Management
Agents, they will search for joins by using a list of metaverse object attributes.
The search attempts to match metaverse object attributes with connector space
object attributes. If any of the search criteria are met, then a join is established.
When the Apply Rules run profile is run, the following join rules are applied to
contact objects only:
If there is more than one candidate in the metaverse for a join, an exception
occurs and an error is logged. The Management Agent cannot determine
where to flow the data because it cannot determine which object from which
to export data.
If a contact that exists in the authoritative contact organizational unit in the
source forest is joined to any object in the metaverse, an error is logged.
Contacts in the authoritative contact organizational unit in the source forest
are used for projection only. An exception does not occur because contacts
are not supposed to flow into the target forest. The error is shown in the
Event Viewer logging section.
A join to a metaverse object that is already joined is only allowed if the
joined metaverse object is a provisioned contact. In this case, provisioning
clears up this duplicate. A warning is logged when this join occurs. In all
other cases (where the joined metaverse object is a provisioned contact), a
Module 8: Cross-Forest/Multi-Forest 13
Active Directory
Metaverse Attribute Description
Contact Attribute
TargetAddress TargetAddress If an Active Directory contact object has the same
target address as the metaverse person object, then it
represents the same entity and a join occurs.
ProxyAddresses LegacyExchangeDN If the proxy address is an x500 proxy: If the
LegacyExchangeDN of a metaverse object matches a
value in the proxyAddresses of contact, then it
represents the same entity and a join occurs.
ProxyAddresses ProxyAddresses If any of the proxyAddresses values in the target forest
match any of the proxyAddress value matches in the
metaverse, then the proxyAddresses values in the
target forest represent the same entity (and a join
occurs) or a miscofiguration.
If an object is joined outside the target forest organizational unit, MIIS 2003
logs a warning with information about the object and requires the user to move
the data into the target forest organizational unit.
Requirements
For GAL Sync, we require an Exchange 2003 schema. An Exchange 2003
server is also required because we need an Exchange 2003 Site Replication
Service (SRS) bridgehead server to bring in HomeMDB and HomeMTA
attributes from Exchange 5.5, if it is present in the topology.
We do not require that the organization names of each forest be the same.
However, if the organization names are not unique, and objects reside in
identically-named administrative groups in each forest, there is the potential for
duplicate legacyExchangeDNs.
Sample Installation
After SQL and MIIS 2003 have been installed, the following steps are sufficient
to get the GALs replicated between two forests that have Exchange 2003
installed. To create the Management Agent that will import objects from
forest1, select “Management Agents,” and choose “Create.”
14 Module 8: Cross-Forest/Multi-Forest
A designer dialog will appear, and the user is prompted through a wizard-like
configuration
Module 8: Cross-Forest/Multi-Forest 15
16 Module 8: Cross-Forest/Multi-Forest
This dialog is displayed in its unaltered, default state. You can tell if any
changes have been made (even those initially hidden by the “Show All”
checkbox) by examining this screen.
This dialog is displayed in its unaltered, default state. You can tell if any
changes have been made (even those initially hidden by the “Show All”
checkbox) by examining this screen.
18 Module 8: Cross-Forest/Multi-Forest
Module 8: Cross-Forest/Multi-Forest 19
20 Module 8: Cross-Forest/Multi-Forest
After selecting the defaults and finishing the Management Agent Designer,
create another Management Agent, using the same previous steps as depicted,
but rather than supplying credentials/containers from forest1, supply
information specific to forest2.
When two Management Agents have been created, go to Tools -> Configure
Extensions, and select the checkbox for Enable Provisioning Rules extension.
(without this step, metaverse objects will not be projected into target forests).
The Management Agents may now be run. When running the Management
Agents, you will be given an option to run certain Run Profiles.
Run Profiles
Run Profiles specifies the parameters with which to run Forest1 GAL Sync
Management Agent and Forest2 GAL Sync Management Agent. For this
sample GAL synchronization scenario, five run profiles are created for each
Management Agent. The following list describes each run profile type and the
order in which it is run.
Provisioning is disabled before the Full Import and Delta Import run profiles,
and then enabled before running the Run Full Synchronization, Export, and
Delta Import run profiles. Provisioning is managed in this order because all
objects must be in the metaverse before rules may be applied or erroneous states
can result.
When all of the imports and exports have been run, they are provisioned in the
metaverse and the end result is that any mail-enabled objects in a source forest
(users/groups/contacts) are created as contacts in the target forests, as in the
following illustration
Module 8: Cross-Forest/Multi-Forest 21
Additionally, any master objects that disappear (get deleted) from the source
forest will eventually become de-provisioned and disappear from their target
forests as well. Provisioning and de-provisioning rules are detailed in Appendix
C.
forests,DC=adpreptest2,DC=internal
1> cn: Contoso User;
1> displayName: Contoso User;
1> mail: [email protected];
1> givenName: Contoso;
1> instanceType: 4;
1> distinguishedName: CN=Contoso User,OU=Contacts from other
forests,DC=adpreptest2,DC=internal;
1> objectCategory:
CN=Person,CN=Schema,CN=Configuration,DC=adpreptest2,DC=interna
l;
4> objectClass: top; person; organizationalPerson; contact;
1> objectGUID: d4f5ead6-d6e2-4cd6-b9ef-651cd96ec0ab;
3> proxyAddresses: X500:/o=Microsoft/ou=First Administrative
Group/cn=Recipients/cn=ContosoUser; X400:c=US;a=
;p=Microsoft;o=Exchange;s=User;g=Contoso;;
SMTP:[email protected];
1> name: Contoso User;
1> sn: User;
1> uSNChanged: 36706;
1> uSNCreated: 36706;
1> whenChanged: 5/20/2003 5:1:3 Central Standard Time
Central Daylight Time;
1> whenCreated: 5/20/2003 5:1:3 Central Standard Time
Central Daylight Time;
1> mailNickname: ContosoUser;
1> mAPIRecipient: TRUE;
1> targetAddress: SMTP:[email protected];
msExchPoliciesExcluded: {26491CFC-9E50-4857-861B-
0CB8DF22B5D7};
1> msExchOriginatingForest: darkforest.internal;
Key observations:
You can determine from which forest an object originated by examining the
msExchOriginatingForest attribute. In this example, the object came from
darkforest.internal.
The legacyExchangeDN from the source forest is added in the form of the
X500 address.
22 Module 8: Cross-Forest/Multi-Forest
Versioning:
Different versions of MIIS:
Microsoft Identity Integration Server 2003, Enterprise Edition: This
version has a large variety of Management Agents which allow customers to
connect different data sources to provide identity integration/directory
synchronization, account provisioning/de-provisioning and password
management. This version includes the GAL Sync Management Agent.
Identity Integration Feature Pack for Microsoft Windows Server Active
Directory: The feature pack provides fewer management agents, but it still
includes the GAL Sync Management Agent. The feature pack is also a free
download, unlike the Enterprise Edition. This version was once called the
“Standard Edition” before its release.
Note MIIS 2003 Enterprise or Standard can be used since there are no
additional features in the Enterprise release that Exchange 2000 is dependent
on.
Note Do not confuse the GAL Sync Management Agent with the two
Exchange 5.5 Management Agents. The Exchange 5.5 Management Agents are
only included with MIIS 2003 Enterprise, but are not supported by Enterprise
Messaging Support.
mailbox. When such a match is found, the Migration Wizard will automatically
delete the MIIS-generated contact and replace it with a mailbox-enabled user
object. The purpose of the deletion is to ensure that the identity does not exist
more than once in the Global Address list of the target forest. However, the
administrator must remember to manually delete the source mailbox. Failure to
do so would cause problems with forking of mailboxes (since the original
mailbox might still be receiving messages).
Once the source forests’ mailbox-enabled user object is deleted, then MIIS may
be turned on again to perform another synchronization – 1) removing the old
object from the metaverse and 2) replacing the original mailbox-enabled user
object with a mail-enabled contact representing the target forest’s mailbox. This
ensures reply-ability to older messages, as well as preventing forking of
messages addressed to that mailbox.
All the following topology conditions have been tested, although not
necessarily together:
Exchange 2003 Native
Exchange 5.5/2003 Mixed
Exchange 2000 Native
Exchange 2000/2003 Mixed
Parent
Child/Sibling
Second Tree
Grandchild
Resource Forests
Looping
Forming a replication loop using two non-GAL Sync Management Agents into
Active Directory (thereby possibly causing duplicates) will not be supported.
The exception to this rule is if there is MCS engagement/approval.
Example of loop:
AD/Exchange 2003 <-- Lotus Notes Connector --> Notes’ Names.nsf <--|
| |
|-------> Gal Sync MA --- Metaverse --- Lotus Notes MA <-----------|
Introduction
In this practice lab, you will log onto your virtual PC and briefly examine the
MIIS installation.
Q&A/Troubleshooting
Question: If I have a problem with synchronization, how would I begin
troubleshooting?
Answer: Click on the Synchronization errors for an object
When navigating into the problematic object, select the “Stack Trace”
button to view the reason for the sync error.
Question: How can I tell which objects are going to be exported to other
forests?
Answer: After you run a “Full Import” on the Management Agent
connected to the source forest, look at the synchronization statistics pane
(lower left-hand corner of Metadirectory Manager).
Question: Under the “Configure GAL” page, what does "Mail to contacts
exported from this forest will be routed through this forest" do?
Answer: When checked, it changes how the targetaddress of a contact gets
constructed. (Need better answer)
Question: Under the “Configure GAL” page, when selecting the option
“Specify an administrative group to enable interoperability with Exchange 5.5
and Active Directory Connector environments,” if I choose “edit,” how come I
do not see my admin group the list of administrative groups?
Answer: Customers will often rename their administrative groups after
switching to native mode. In LDP or ADSIEdit, search the admin groups’
“Displayname” entries to correlate with the desired admin group.
Question: What happens if same contact is created in both forests, before MIIS
is used to sync?
Answer: Join rules apply here, provided that one of the contacts resides
within an “authoritative” contacts container, as configured within the
“Configure GAL” property sheet. Since the contact will have the same
proxy address in both forests, MIIS will know how to "join" the two
objects in both forests as the same object in the metaverse.
Question: If there is an error in sync, I can click the "preview” button. But how
can I see the preview button for an object that doesn't have an error?
Answer: Search connector space -> open the object found, and select
preview button on lower-left dialog. Alternatively, after you have executed
a run profile (such as an import), you can preview objects within the
underlined statistics in the Synchronization Statistics pane.
Module 8: Cross-Forest/Multi-Forest 31
Question How can I automate the schedule of the Management Agents so that
it acts like an Active Directory connector?
Answer: There’s no integrated functionality to do this. A VB script can
spawn WMI code to do this. However, the script would need to be
scheduled using the AT command.
Introduction This topic covers mailflow and configuration of SMTP connectors used with
the cross-forest spec. Additionally, conditional forwarding, a new Windows
2003 feature in DNS, may be used.
This illustrates one SMTP connector in the source forest, where “Darkforest” is
a forest outside of the current forest where the SMTP connector is created. An
SMTP connector in the Darkforest organization would also need to be created
pointing to the source forest.
4. When you create your GAL Sync Management Agents, on the “Configure
GAL” dialog page, add on the forest-specific SMTP namespace the SMTP
domain of the secondary proxy address.
The checkbox for “Route mail sent to contacts exported into this forest
through the source forest” is meant to cover the scenario where the
targetaddress on a source contact is non-SMTP (Groupwise/Notes/x400).
This will be propagated to the target contact in forest2. If forest2 does not
actually know or can misunderstand the address, then you get an NDR. So
checking the box forces the mail to be routed to the source forests, which
then decodes the mail from the SMTP proxyaddresses to get the new target
address of Groupwise/Notes/etc.
5. When you run the export, GAL Sync will set the targetaddress of the
generated contact to this secondary proxy address. Since the targetaddress
will not be the same as the authoritative SMTP domain of the sending
organization, messages to contacts will be queued for remote delivery.
Possible issues
As in any case of a large directory, it may be possible for mail sent to SMTP
addresses that do not exist to loop back and forth between organizations’ SMTP
connectors because each directory might have an object pointing to the opposite
organization. One should check for such contacts in each directory that might
cause a loop.
When forests have matching legacyDNs, there may be an issue with how GAL
Sync “joins” the two objects in the metaverse. Therefore, one should tread
lightly whenever setting-up MIIS between two organizations whose
organization names and site names match.
Module 8: Cross-Forest/Multi-Forest 35
History
Also known as Exchsync, IO Repl
Released with Exchange 5.5 SP2, and also delivered through Exchange 2000
CD.
Newest incarnation available via Web download (Exchsync package) folder
from Web release (ExAllTools) tools. This is also expected to be updated in the
future, through Exchange 2003 Service Pack releases.
Components
The tool consists of two programs: the Configuration program (exscfg.exe), and
the Replication service (exssrv.exe). The Configuration utility creates a
configuration file for setting the replication frequency; logging options; folders
to be replicated; and accounts to be used. This configuration file is used by the
Replication Service to continuously update information between two servers in
different organizations. The Exchange Replication Service, using a
configuration file created by the Replication Configuration utility, continuously
updates information from one server (designated as the Publisher) to one or
more Exchange servers (designated as Subscribers). Schedule+ Free/Busy
information is replicated from Publisher to Subscriber only. For this reason, you
must have two free/busy sessions to bi-directionally update free/busy
information. Public folders can be replicated from Publisher to Subscriber or bi-
36 Module 8: Cross-Forest/Multi-Forest
Areas of usage
This tool is not supported between two servers that are using different
languages. It only supports replication between servers using the same language
(for example, English-to-English, French-to-French).
For the two-forest scenario, here are the combinations of organization types
where IORepl may be used:
Pure
Exchange Exchange Exchange
Pure Exchange 5.5 Pure Exchange 2000 2003 2000/2003 5.5/2000/2003
Pure
Exchange 5.5 Use earlier version Use earlier version Yes Yes Yes
Pure
Exchange
2000 Use earlier version Yes Yes Yes Yes
Pure
Exchange
2003 Yes Yes Yes Yes Yes
Exchange
2000/2003 Yes Yes Yes Yes Yes
Exchange
5.5/2000/2003 yes Yes Yes Yes Yes
The above is a guideline, but customers choosing not to follow the table above
may attempt to use the Exchange 2003 IORepl tool against Exchange 2000 and
Exchange 5.5 organizations. Even if replication appears successful,
unpredictable behavior might occur as scenarios outside of the above table have
not been tested.
Requirements
For replication of free/busy information, MIIS and GAL Sync must have
already been configured and run so that cross-forest contacts already exist to
correspond to external free/busy entries.
The tool must be installed on a computer that has Exchange 2003 Exchange
System Manager installed on it. It is possible to install on a
workstation/professional Windows platform that only has Exchange System
Manager installed. Reference the Exchange 2003 Deployment Tools for more
information on installing on creating an Exchange System Manager-only install.
Note that Outlook is not supported and must not reside on the same machine on
which Exchange System Manager is installed.
A VPN or open-RPC connection must be available between each Exchange
organization/Active Directory forest. This is so that MAPI connections may be
established.
Module 8: Cross-Forest/Multi-Forest 37
Although you may use the tool to connect to Exchange 5.5 and Exchange 2000
organizations, you must use the IO Repl versions off the Exchange 2003
Service Packs and Web release. Do not use previous versions.
How to install
Installing the InterOrg Replicator Utility for use with Microsoft Exchange
Server consists of the following steps:
1. Preparing the Publisher
2. Preparing the Subscribers
3. Installing the InterOrg Replicator utility files
4. Creating a Configuration file
5. Setting up the Replication Service
utility can use as a service account. Additionally, you must create the public
folders that the utility needs for the replication process.
To prepare the Subscriber server for InterOrg Replication:
1. Create a Windows NT account and an associated Exchange mailbox for the
utility to use as a service account.
2. Using Microsoft Outlook, create a top-level folder for every portion of the
folder hierarchy you are replicating. The utility will create subfolders
automatically.
3. Using Outlook, grant Publishing Editor permission for each top-level folder
to the service account mailbox that you created.
4. Using Microsoft Outlook, create a public folder named
ExchsyncSecurityFolder off of the root public folder and grant Owner
permission to the service account mailbox that you created. Do not specify
any Default or Anonymous permissions on this folder; it is used by the
Replication Service for additional security and must be present on both the
Publisher and Subscriber servers.
Note: A Server can be both a publisher and subscriber if you are replicating
both ways.
5. Type the Publisher and Subscriber server names, and the service
account mailboxes that you created for each.
Click Advanced and type the Windows NT domain, service account, and
password for each of the Publisher and Subscriber accounts.
6. Click on the schedule button and create a replication schedule that fits
your needs.
40 Module 8: Cross-Forest/Multi-Forest
7. Click on the schedule button and create a replication schedule that fits
your needs.
8. Choose the sites for which you want replicate free/busy information
for. The default is all sites available
9. Click OK to add the session to the configuration file and then save.
NOTE: Log files report when the service starts or stops, any errors it
encounters, and statistical information for each session (for example, number of
messages and folders replicated).
NOTE: For each mailbox in the Publisher server that you want to replicate free
and busy information to, a corresponding custom recipient must exist on the
Subscriber server. The SMTP address of the mailbox is the unique key that is
used to match mailboxes to custom recipients.
To create a configuration file for public folder replication:
1. Double-click Exscfg.exe.
2. On the Session menu, click Add.
3. In the Select Session Type dialog box, select Public Folder Replication.
Module 8: Cross-Forest/Multi-Forest 41
5. In the Maximum Task Number dialog box, enter the number of threads
to be used for replication. In the Schedule dialog box, enter the time,
day, and frequency for the replication session. If you want the utility to
write a log during the replication process, click Logging and set the
appropriate parameters.
6. Type the Publisher and Subscriber server names, and the service
account mailboxes that you created for each.
7. Click Advanced and type the Windows NT domain, service account,
and password for each of the Publisher and Subscriber accounts.
8. Click Folder List to choose which folders you want to replicate. In the
Session Folder List dialog box, select the folder or folder hierarchy on
the Publisher that you want to replicate, and then select the destination
folder on the Subscriber.
9. Click the arrow button once to replicate public folder information only
from the Publisher to the Subscriber. Click again to toggle bi-
directional replication. You can also toggle on if subfolders replicate,
deletions replicate, and default or anonymous permissions replicate.
42 Module 8: Cross-Forest/Multi-Forest
10. Click OK to add the session to the configuration file and save.
3. Type the path and file name of the configuration file you created.
4. Specify whether or not you want the service to automatically start
when you turn on the computer.
Module 8: Cross-Forest/Multi-Forest 43
5. After you have installed the Service, click Start or start it from the
Control Panel.
44 Module 8: Cross-Forest/Multi-Forest
Troubleshooting/Q&A
There are a number of steps you can take if you encounter problems with the
InterOrg Replicator tool.
1. Enable logging on the Public Folders or Free/Busy Session Configuration
tabs.
2. Check the Ex00yymmdd.log and Ex01yymmdd.log log files for any errors.
3. Use the application Event Viewer to make sure there are no errors.
Configure the Event Viewer with a large size (> 5MB), and configure it to
wrap as needed.
4. Verify that you have granted the appropriate permissions to root folders and
the ExchsyncSecurity Folder or the free/busy folder. Verify the folders are
visible and that the account used has access to read and write to the folders.
If not, you will receive the following error message.
Event ID 116
Source Exchsync
Type Error
Category None
Other errors:
A 115 error event might indicate (in its description) that the
ExchsyncSecurityFolder cannot be located. Verify the name matches exactly
and there are no trailing or leading spaces in the name.
been unable to contact the server in question, or could not connect via MAPI.
Check proper name resolution, network connectivity (trace route and ping), and
make sure you have the correct version of MAPISVC.INF and that it is not
damaged. If it is a permissions error, you may receive this text in the event
description: “Unable to create a temporary MAPI profile to server
[SERVERNAME] using mailbox [ioreplaccount] under Windows NT username
[ioreplaccount] and domain [ADPREPTEST2] on session 'pf gizmos to dark'.”.
Even if you were able to connect using the exscfg.exe utility, the service itself
will not allow the account specified during exscfg.exe to log on directly to an
Exchange server. In this case, grant the privilege of the specified account to log
on locally, or add the account to the server operators group.
A 120 error event is a communications error. We have been able to contact the
remote server but we failed to make a connection. Again check network
connectivity (trace route and ping) making sure of no packet loss. Verify you
have the correct user name and password for the service account mailbox.
Question: The service is using the credentials of the service to login rather then
the credentials specified in the configuration file?
Answer: The Public folder replication tool must be running on a machine
that has Exchange System Manager installed, but not Outlook. This has to
do with the EMSABP32.DLL. During the SP2 to SP3 timeframe of
Exchange 5.5 these DLLs were given to Outlook to develop themselves.
During this transition time a change was made to this DLL that allows a
way for a service to pass a different set of credential when using MAPI.
This change never made it to the Outlook version of the DLL and thus only
exists in the Exchange version. The interorg tool uses this functionality and
since it does not exist in the Outlook version of the DLL it uses the wrong
credentials to log in. If you install Outlook 2000 or greater on the server, it
will redirect calls to the Outlook version of the DLL and you again will be
passing the wrong credentials. In the past this tool has worked on systems
without Exchange server install. This is because at the time of this tools
release the only versions of Outlook available were 98 and older. If you
installed Outlook 98 first, then the Exchange administrator from SP3, the
correct DLL would be copied over top in the system32 directory and thus
the tool would work. Installing just the admin program is not enough on its
own, as it does not update the MAPISVC.INF file with a transport that the
tool can use and it will fail with a 118 event instead.
Question: ExchSync tool will not replicate and reports the following error in
the log file “ERROR: Unable to import message change [SK=
6A69F6552DD203D5D6000001231] to folder ‘EX:/o=orgname/ou=Sitename’
46 Module 8: Cross-Forest/Multi-Forest
Note When viewing the attribute flow, do not pay attention to "Initial
value" as it is either empty, or inaccurate. Instead, the "Final value" is the
correct value to observe
Note This lab has been set up with a conditional forwarder (configured
within DNS). Without it, you would receive an error code 1355 with error
message "Unable to logon to the server. Please verify the server name, port,
account name, and password."
4. Choose the "Users" OU for placement of the target user accounts in forest2.
5. Finish the migration wizard.
48 Module 8: Cross-Forest/Multi-Forest
6. In forest2, refresh your view on the "Users OU" and confirm that Jason
Carlson appears as a mailbox-enabled user account. Do you notice anything
unusual about its proxyaddresses?
(The x500 address is added, and it is used for reply-ability)
7. Refresh your view on the "Contacts from other forests" OU, and note that
the Jason Carlson contact object no longer exists.
• At this stage, the administrator should delete (or at least mailbox-
disable) the object from the source forest (Forest1) and synchronize the
Management Agents to populate a mail-enabled contact in forest1
representing the moved mailbox. However, if the deletion is skipped,
and instead Management Agents are synchronized, you will receive the
error message in the following steps.
8. Run a delta import for the forest2MA. You should see "Synchronization
errors" on the lower-left pane.
9. Click on the error and then click on the "Stack Trace" button. Read the error
message.
Messages Action
Contact from the authoritative contacts organizational Examine both metaverse objects, and determine which
unit attempts to join when it should be projected: one is the nonauthoritative one. Ensure that the
There are two authoritative objects nonauthoritative one that reports that it is authoritative
representing the same entity in the because it is a user, group or in the authoritative contacts
metaverse, they are <forest name, DN of container is appropriately tagged as nonauthoritative.
object 1, type of object; forest name, DN of After deletion, run import, full synchronization, and
object 2, type of object…etc>. One of these export to make the change effective.
objects <forest name, DN of object from
forest where contact in connector space is
Module 8: Cross-Forest/Multi-Forest 51
Provisioning messages
User - A contact for this user object <CN of
Person> object called contact <DN of contact>
already exists in forest <target forest
name>. If you would like to preserve this
contact and have us manage it, please move
the contact into the Synchronization
organizational unit. If you would like us to
create a new contact and manage it, please
delete this one.
Deprovisioning messages
When any object is deprovisioned that is not in the
Synchronization organizational unit, the following
message is written to the log:
The source object <source object CN>
associated with this target object <target
object name> from forest <target forest name>
has been deleted, the target object should
also be deleted but it is outside the
SYNCHRONIZATION ORGANIZATIONAL UNIT. Please
delete the object manually or move it into
the SYNCHRONIZATION ORGANIZATIONAL UNIT.
Projection messages
User found in the Synchronization organizational unit:
A user object <connector space entry of
object = DN of object, MA name> has been
found in the synchronization organizational
unit, this will not be projected, please move
it out of the synchronization organizational
unit if you want this object to propagate to
other forests.
Group found in the synchronization organizational unit:
A group object <connector space entry of
object = DN of object, MA name> has been
found in the synchronization organizational
unit, this will not be projected, please move
it out of the synchronization organizational
unit if you want this object to propagate to
other forests.
Attribute mapping is defined in one of two types. The following table describes
the three attribute mapping types.
Table A.2 Attribute Mapping Types
Source Forest User Object Attribute Metaverse Person Object Attribute Mapping Type
LegacyExchangeDN LegacyExchangeDN Direct
Mail Mail Direct
MailNickname MailNickname Direct
CN CN Direct
TelephoneNumber TelephoneNumber Direct
TargetAddress TargetAddress Rules extension
MSExchMasterAccountSID MSExchMasterAccountSID Direct
MSExchHideFromAddressLists MSExchHideFromAddressLists Direct
HomeMDB homeMDB Direct
ProxyAddresses proxyAddresses Direct
DisplayName displayName Direct
DistinguishedName distinguishedName Direct
SN SN Direct
Module 8: Cross-Forest/Multi-Forest 55
C C Direct
Company Company Direct
Department Department Direct
Division Division Direct
EmployeeID employeeID Direct
EmployeeType employeeType Direct
GivenName givenName Direct
Manager Manager Direct
O O Direct
Title Title Direct
UserCertificate UserCertificate Direct
UserSMIMECertificate UserSMIMECertificate Direct
streetAddress streetAddress Direct
St St Direct
postalCode postalCode Direct
Co Co Direct
physicalDeliveryOfficeName physicalDeliveryOfficeName Direct
msExchAssistantName msExchAssistantName Direct
otherTelephone otherTelephone (multi-valued) Direct
homePhone homePhone Direct
otherHomePhone otherHomePhone (multi-valued) Direct
facsimileTelephoneNumber facsimileTelephoneNumber Direct
Mobile Mobile Direct
telephoneAssistant telephoneAssistant Direct
Pager Pager Direct
Info Info Direct
L (Locality-Name) L (Locality-Name) Direct
MapiRecipient MapiRecipient Rules extension
Initials Initials Direct
—- MSExchOriginatingForest Rules extension
The following logic is applied to the import attribute flow mapping from the
source forest user object to the metaverse person object:
1. If a user object has HomeMDB specified, then Microsoft Identity Integration Server 2003
treats it as a mailbox-enabled user, and if does not have it specified, then it is a mail-enabled
user.
a. If it is a mailbox-enabled user, the TargetAddress is constructed by matching the
value in proxyAddresses with the first value of SMTP mail domain suffixes
managed by that forest. If no match is found, Microsoft Identity Integration
Server 2003 logs an error.
56 Module 8: Cross-Forest/Multi-Forest
b. If it is a mail-enabled user and the administrator of the source forest required that
all mail to contacts flow through the source forest, then Microsoft Identity
Integration Server 2003 constructs a targetAddress based on the matches between
proxyAddresses and SMTP mail domain suffixes managed by the source forest, or
else Microsoft Identity Integration Server 2003 flows the targetAddress directly.
If there are multiple matches, one is selected. If no match is found irrespective of
the administrator’s setting, Microsoft Identity Integration Server 2003 flows the
targetAddress directly.
2. ProxyAddresses flow directly because Microsoft Identity Integration Server 2003
assumes that there will only be one primary SMTP proxyAddress from the
authoritative source object.
3. MapiRecipient: If there is a mailbox associated with the user account, then Microsoft
Identity Integration Server 2003 sets the value of the MapiRecipient attribute of the
metaverse person object to TRUE, or if it is present, then Microsoft Identity
Integration Server 2003 sets the value of the MapiRecipient attribute of the metaverse
person object to the same value as the MapiRecipient attribute of the mailbox.
4. MSExchOriginatingForest: This value is generated by using the DN to construct a
DNS forest name. Therefore CN=MyName,CN=Users,DC=Fabrikam,DC=com could
be translated as ‘Fabrikam.com,’ being the DNS name of the forest and the attribute
populated in the metaverse person object attribute and flowed out to the contact in the
target forest. The process is as follows:
a. Parse leftwards until the first Domain Congroller
b. Extract out everything after the ‘=’ up to the separator ‘,’
c. Put a dot after the extracted string and check if any other “DC” appears to the left.
Return to step a if one does or else return the string.
Module 8: Cross-Forest/Multi-Forest 57
The following logic is applied to the import attribute flow mapping from the
source forest contact object to the metaverse contact_forest object:
1. If the contact is from the forest specified in the contact_forest object type, then the
import attribute flow is generated as follows: the multivalued LegacyExchangeDN
attribute of the contact object in Forest1 flows directly to the multivalued
Forest1_LegacyExchangeDN attribute of the contact_Forest1 object. This is a direct
import attribute flow that is not part of a rules extension.
2. If the contact is not from the forest specified in the contact_forest object type, then the
import attribute flow generated is as follows: the multivalued LegacyExchangeDN
attribute of the contact object in Forest2 flows directly to the multivalued
Forest2_LegacyExchangeDN attribute of the contact_Forest2 object. This is a direct
import attribute flow that is not part of a rules extension.
3. If the administrator of the forest specified in contact_forest requires that all mail to
contacts flow through the source forest, then Microsoft Identity Integration Server
2003 constructs a targetAddress based on the matches between proxyAddresses and
SMTP mail domain suffixes managed by the source forest; otherwise Microsoft
Identity Integration Server 2003 flows the targetAddress directly. If there are multiple
matches, Microsoft Identity Integration Server 2003 will select one. If no match is
found irrespective of the administrator’s setting, then Microsoft Identity Integration
Server 2003 should flow targetAddress directly.
4. ProxyAddresses flow directly because Microsoft Identity Integration Server 2003
assumes that there will only be one primary SMTP proxyAddress from the
authoritative source object.
5. MSExchOriginatingForest: This value is generated by using the DN to construct a
DNS forest name. Therefore: CN=MyName,CN=Users,DC=Fabrikam,DC=com could
be translated into ‘Fabrikam.com,’ being the DNS name of the forest and the attribute
populated in the metaverse person object attribute, and flowed out to the contact in the
target forest. The process would be as follows:
d. Parse leftwards until the first DC
e. Extract out everything after the ‘=’ up to the separator ‘,’
f. Put a dot after the extracted string and check if any other “DC” appears to the
left. Return to step a if one does or else return the string.
Module 8: Cross-Forest/Multi-Forest 59
The following logic is applied to the import attribute flow mapping from the
source forest group object to the metaverse group object:
7. Microsoft Identity Integration Server 2003 constructs a targetAddress based
on the matches between proxyAddresses and the first SMTP mail domain
suffix managed by the source forest. If no match is found, Microsoft
Identity Integration Server 2003 logs an error.
8. ProxyAddresses flow directly because Microsoft Metadirectory Services
2003 assumes that there will only be one primary SMTP proxyAddress from
the authoritative source object.
9. MSExchOriginatingForest: This value is generated by using the DN to
construct a DNS forest name. Therefore
CN=MyName,CN=Users,DC=Fabrikam,DC=com could be translated into
‘Fabrikam.com,’ being the DNS name of the forest and the attribute
populated in the metaverse person object attribute and flowed out to the
contact in the target forest. The process is as follows:
a. Parse leftwards until the first DC
b. Extract out everything after the ‘=’ up to the separator ‘,’
c. Put a dot after the extracted string and check if any other “DC” appears to the
left. Return to step a if one does or else return the string.
Note
In addition to the above, an Exchange administrative group maps to the
LegacyExchangeDN target contact object attribute.
The following logic is applied to the export attribute flow mapping from the
metaverse person object to the target forest contact object:
1. The legacyExchangeDN of the contact object is generated and assigned as
follows:
a. It must equal the legacyExchangeDN of the msExchAdminGroup object in
Active Directory at “CN=Administrative Groups,CN=Exchange Org
Name,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=...”.
b. All separators in the legacyExchangeDN must be lower case (/o=, /ou=, /cn=).
c. It must have a GUID generated and appended to it.
2. The multivalued LegacyExchangeDN of the person object is added to the
proxyAddresses of the contact.
3. The primary SMTP proxyAddress of the source object, propogated through the
metaverse object, is the one that Microsoft Identity Integration Server 2003 wants
to propagate as the primary SMTP on all target objects in all the forests. The
proxyAddress attribute is cleared and all the values in the metaverse are flowed to
the target value. Therefore, whatever the primary SMTP proxyAddress is on the
source, it is flowed from the source object to the metaverse to the target.
St St Direct
PostalCode postalCode Direct
Co Co Direct
physicalDeliveryOfficeName physicalDeliveryOfficeName Direct
msExchAssistantName msExchAssistantName Direct
otherTelephone otherTelephone Direct
homePhone homePhone Direct
otherHomePhone otherHomePhone Direct
facsimileTelephoneNumber facsimileTelephoneNumber Direct
mobile mobile Direct
telephoneAssistant telephoneAssistant Direct
Pager Pager Direct
Info Info Direct
L (Locality-Name) L (Locality-Name) Direct
Initials Initials Direct
MSExchOriginatingForest MSExchOriginatingForest Direct
The following logic is applied to the export attribute flow mapping from the
metaverse contact_forest object to the target forest contact object:
1. The legacyExchangeDN of the contact object is generated and assigned as
follows:
It must equal the legacyExchangeDN of the msExchAdminGroup object in
Active Directory at “CN=Administrative Groups,CN=Exchange Org
Name,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=...”.
All separators in the legacyExchangeDN must be lower case (/o=, /ou=, /cn=).
It must have a GUID generated and appended to it.
2. The values of the multivalued LegacyExchangeDN of the contact_forest object are
added to the proxyAddresses attribute of the contact.
3. The primary SMTP proxyAddress of the source object, through the metaverse object, is the
one that Microsoft Identity Integration Server 2003 wants to propagate as the primary
SMTP on all target objects in all the forests. The proxyAddress attribute is cleared and all
the values in the metaverse are flowed to the target value. Therefore, whatever the primary
SMTP proxyAddress is on the source, it is flowed from the source object to the metaverse to
the target.
4. Ensure that ProxyAddresses of Active Directory contact_forest contain all the
Forest_LegacyExchangeDN attributes where Forest is not the same as the forest from
which the user account is coming. This is done as part of a rules extension.
If the contact is from the forest specified in the contact_forest object type, then the
values of the multivalued LegacyExchangeDN attribute for the contact_forest object
flow to the proxyAddresses attribute of the target forest contact object.
If the contact is not from the forest specified in the contact_forest object type, then
there is no export attribute flow generated for the Forest(s)_LegacyExchangeDN
attribute.
Module 8: Cross-Forest/Multi-Forest 65
The following table describes the mapping of the metaverse group object
attribute to the target Active Directory forest contact object attribute.
Target Active Directory Contact
Metaverse Group Object Attribute Mapping Type
Object Attribute
The following logic is applied to the export attribute flow mapping from the
metaverse contact_forest object to the target forest contact object:
The changes made to the metaverse during the import of source Active
Directory forest data initiate the provision operation, which creates, connects,
and disconnects objects in the connector space based on the changes to the
metaverse.
There are three objects that are affected by provisioning rules:
User
Group
Contact
For all objects, the provisioning rule depends on the scenario for that object and
occurs within the identity integration process shown in Figure 4.3. Some of the
rules shown in Figure 4.3 do not apply to all scenarios.
Mail-enabled or An error is logged indicating that you must move the incorrect data, contact to
mailbox-enabled user the synchronization OU, or delete the data because contacts that are outside
exists and there is more the synchronization OU cannot be managed by Microsoft Identity Integration
than one contact in the Server 2003, and it does not allow duplicate contacts in the same forest
target forest representing the same source object.
corresponding to this
For a metaverse person object for both Management Agreements, if the
user. The additional
number of connectors is equal to 1 and the distinguished name (DN) of that
contacts may or may not
connector indicates that it is outside the target forest organizational unit, an
be in the
error is logged to indicate that the contact already exists and must be moved
synchronization OU.
or deleted.
User is deleted. When a deletion is received, the following process occurs:
1. Connector is disconnected from metaverse object, (connector space and
metaverse link tables lose an entry).
2. Disconnector is deleted. (connector space entry table loses an entry).
3. Metaverse deletion is called and the rule determines if it is a
master/source object, and deletes the object from the metaverse if is a
master.
4. When the object from metaverse is deleted, deprovisioning is called and
deletes connector objects for all contact objects linked to that metaverse
person object.
5. After export, Contacts are deleted from Active Directory if they are in the
synchronization OU.
User is changed. When a change is received, the following process occurs:
1. Connector space filter rules will fail.
2. Connector is disconnected from metaverse object. Connector space and
metaverse link tables lose an entry.
3. Disconnector is deleted. Connector space entry tables loses an entry.
4. Metaverse deletion is called and the rule determines if it is a
master/source object, and deletes the object from the metaverse if is a
master.
5. When object from metaverse is deleted, deprovisioning is called and
deletes connectors for all contact objects linked to that metaverse person
object.
6. Connector space filter rules succeed.
7. Connector changes.
8. Import attribute flow is reevaluated.
9. Provisioning case 2 succeeds and objects in connector space are
updated.
A contact object exists An error is logged, informing administrators that they must repair the data and
and there is more than either move the contact data to the synchronization OU or delete it because
one contact in the target contacts outside the synchronization OU are not managed and duplicate
forest corresponding to contacts in the same forest representing the same source object are not
this contact. (The allowed.
additional contacts may
Provisioning case 4: For the metaverse contact_forest entry for both
or may not be in the
Management Agents, if the number of connectors is greater than 1, the
synchronization OU.
following rules are applied to every connector:
• If the connector was created by provisioning (i.e. by
Microsoft Identity Integration Services 2003), it is
disconnected.
• If the connector was created by another process and joined
(may or may not be in the Microsoft Identity Integration
Services 2003 target forest organizational unit), no
operation is performed and an error is logged describing
that there are duplicate contacts, and that all except one
must be deleted, and that one must be moved into the
Microsoft Identity Integration Services 2003 target forest
organizational unit to be managed by Microsoft Identity
Integration Services 2003.
Contact object outside When the deletion is received, the following process occurs:
the synchronization OU,
in authoritative contacts
1. Connector is disconnected from metaverse object, (connector space and
metaverse link tables lose an entry).
container, is deleted.
2. Disconnector is deleted. (Connector space entry tables lose an entry.)
3. Metaverse deletion is called and the rule checks if it is a master/source
object. The contact_forest object will be deleted if the source Active
Directory object deleted was in the authoritative contacts OU and if the
contact is from the forest in contact_forest.
4. Deprovisioning is called, and because the management agent is not for
the forest mentioned in contact_forest, and the connector is for an object
in the synchronization OU, then it deprovisions to delete the contact in
the Active Directory.
Contact object outside When the deletion is received, the following process occurs:
the synchronization OU,
or the outside
1. Connector is disconnected from metaverse object, (connector space
metaverse link tables lose an entry).
authoritative contacts
container, is deleted. 2. Disconnector is deleted. (Connector space entry tables lose an entry.)
3. Metaverse deletion is called and the rule checks if it is a master/source
object. The contact_forest object is deleted if the source Active Directory
object deleted was in the authoritative contacts OU and if the contact is
from forest mentioned in contact_forest. In this scenario, it was not in the
authoritative OU, and therefore it is not deleted.
72 Module 8: Cross-Forest/Multi-Forest
Contact object is If there is an import attribute flow defined for contact to person, then it will
modified in flow back to the source object to which that contact is joined. Nothing on the
synchronization OU (not source object is overwritten, only the LegacyExchangeDN is added to the
by Microsoft Identity proxyAddresses of this attribute.
Integration Services
If there is no import attribute flow defined for contact to source object, it is
2003).
rewritten during the next export so that no synchronized information is flowed
back, just data from that forest. Exceptions are LegacyExchangeDN and
proxyAddresses, because proxyAddresses of any object should not be
overwritten and because legacyExchangeDN is assigned by the target forest.
Mail enabled or mailbox An error is logged to inform the administrator to repair this situation and either
enabled group in the move the corrupt data/contact to the synchronization OU or delete it because
source forest and there contacts outside the synchronization OU are not managed and duplicate
is more than one contacts in the same forest representing the same source object are not
contact in the target allowed.
forest corresponding to
Provisioning case 4: For the metaverse person entry for both Management
this group. (The
Agents, if the number of connectors is greater than 1, then for every
additional contacts may
connector:
or may not be in the
synchronization OU.) • If the connector was created by provisioning (that is, by
Microsoft Identity Integration Services 2003), it is
disconnected.
• If the connector was created by another process and joined
(may or may not be in the Microsoft Identity Integration
Services 2003 target forest organizational unit), no
operation is performed and an error is logged, describing
that there are duplicate contacts, and that all except one
must be deleted, and that one must be moved into the
Microsoft Identity Integration Services 2003 target forest
organizational unit to be managed by Microsoft Identity
Integration Services 2003.
Group object is deleted. When a deletion is received, the following process occurs:
1. Connector is disconnected from metaverse object, (connector space and
metaverse link tables lose an entry).
2. Disconnector is deleted. (connector space entry tables lose an entry.)
3. Metaverse deletion is called and the rule checks if it is a master/source
object, deletes the object from the metaverse if it is a master.
4. When object from metaverse is deleted, deprovisioning is called and
deletes connectors for all contact objects linked to that metaverse group
object.
Group object is When a change is received, the following process occurs:
changed.
1. Connector space filter rules fail.
2. Connector is disconnected from metaverse object, (connector space and
metaverse link tables lose an entry).
3. Disconnector is deleted. (connector space entry table loses an entry).
4. Metaverse deletion is called and the rule checks if it is a master/source
object, then deletes the object from the metaverse if is a master.
5. When object from metaverse is deleted, deprovisioning is called and
deletes connectors for all contact objects linked to that metaverse group
object.
6. Connector space filter rules succeed.
7. Connector changes.
8. Import attribute flow is reevaluated.
Provisioning case 2 succeeds and objects in connector space are updated.
Deprovisioning Rules
The next table lists the three deprovisioning rules.
TDeprovisioning Rules
Rule Description
User When the metaverse person object is deleted, the contact object is deleted if it is in
the synchronization organizational unit. If not, it is logged.
Contact When the metaverse contact_forest object is deleted, the contact object is deleted if
it is in the synchronization organizational unit. If not, it is logged.
Group When the metaverse group object is deleted, the contact object is deleted if it is in
the synchronization organizational unit. If not, it is logged.
76 Module 8: Cross-Forest/Multi-Forest
Acknowledgments
Microsoft Employee
Vincent Yim
External Websites:
http://www.microsoft.com/windowsserver2003/technologies/directory/miis/default.
mspx