An Explanation of the -Addparent Switch Used by the Importt.exe Program (283196)



The information in this article applies to:

  • Microsoft Metadirectory Services 2.1
  • Microsoft Metadirectory Services 2.2

This article was previously published under Q283196

SUMMARY

This article describes the -addparent switch that is used by the Importt.exe program.

MORE INFORMATION

The -addparent switch is used by the import program (Importt.exe) to add the parent objects in the event that the parent structure does not already exist in the connector space. There are two fundamental rules which govern how the -addparent switch can create "missing" parent objects in the metaverse:
  • For each new connector space object to be added, all of its parents must exist first. When the connector space parent nodes do not exist and the -addparent switch is active, the connector space parents are added. These parents are added by using the parent construction template, if available.

    If this template is not available, only the most basic objects are constructed. [These objects can contain not much more than the required object classes and Distinguished Names (DNs)]. This action may result in adding metaverse parents if the Management Agent (MA) is a reflector. Also, this action causes the metaverse objects "displaying in the wrong place" problem, when the connector space parent handling logic is different than the metaverse DN.

    Parent construction templates may be used to set various attribute or object-class values on the parent. However, it is not recommended to use the parent construction templates to change the parent's DNs which can modify the metaverse directory structure.
  • When a new metaverse object is to be created, if any of its parents are missing, the object's missing metaverse parent or parents are always added automatically, as needed.
The rationale for this behavior is that every DN component in the connector space object must be joined in Reflector mode. Because a new parent must be added to the metaverse, the only means to guarantee that all the parents in the connector space are joined is to use the connector space structure as the guide for the metaverse structure. This action implies that there is going to be a one-to-one correspondence between the connector space and the metaverse DN components. Unfortunately, if the connector space and the metaverse structures differ, the new parent object in the metaverse is not displayed, as expected.

The following two scenarios may help to explain this type of behavior. Before reviewing the two scenarios, however, observe the following conditions:
  • There can be more DN components for the metaverse name than for the connector space name. (This condition is the most important detail.)
  • The existing connector space structure includes OU=Blues,OU=Favorite Color,DC=microsoft,DC=com (four DN components).
  • The existing metaverse structure includes OU=Blues,OU=Primary Color,OU=Colors,DC=microsoft,DC=com (five DN components).
  • The -addparent switch is only effective when the connector space parent is missing. The -addparent switch only applies to the connector space and does not apply to the metaverse. Any missing metaverse parents are automatically added as required, without restriction.

The First Scenario: All Connector Space Parents Exist

  1. A discovery is run against the connected directory and the following object is displayed in the import file:
    CN=Baby Blue (Primary Color - Blues),O=Colors
  2. The connector space construction template constructs the following DN for the new connector space object:
    $cs.dn = CN=Baby Blue,OU=Blues,OU=Favorite Color,DC=microsoft,DC=com.

    NOTE: All the required parents exist.
  3. The metaverse construction template constructs the following DN for the metaverse object:
    $mv.dn = CN=Baby Blue,OU=Blues,OU=Primary Color,OU=Colors,DC=microsoft,DC=com.

    NOTE: All the required parents exist.
  4. Both the metaverse and connector space objects are placed where they are expected, according to their DNs.

Second Scenario: One Connector Space Parent Is Missing

  1. A second discovery is run against the connected directory and the following object is displayed in the import file:
    CN=Scarlet (Primary Color - Reds),O=Colors
  2. The connector space construction template constructs the following DN for the new connector space object:
    $cs.dn = CN=Scarlet,OU=Reds,OU=Favorite Color,DC=microsoft,DC=com.

    NOTE: One required parent (OU=Reds) does not yet exist.
  3. The connector space parent is added by the -addparent switch. At the same time, the matching metaverse structure is added. Ultimately, two new objects are added to the directory, when only the connector space object is expected.
  4. The metaverse construction template is not processed.
  5. The connector space object is displayed where it is expected but not the metaverse object.
The following points must also be considered:
  • If the prime Namespace option has not been enabled, the next object having the parent OU=Reds is displayed as a sibling to CN=Scarlet in the connector space but not in the metaverse. This action occurs because the -addparent switch is not exercised and the metaverse construction template creates the expected metaverse DN.
  • If the prime Namespace option has been enabled, the next object having the parent OU=Reds is displayed as a sibling to CN=Scarlet in the connector space but not in the metaverse. This action occurs because the -addparent switch is not exercised and the metaverse construction template creates the expected metaverse DN.

    On the next run of the MA, however, the metaverse objects which were placed in the metaverse according to the structure defined in the connector space are renamed according to the metaverse construction template. A side effect of this behavior is that the original metaverse parents of these renamed objects are not affected. This action leads to an unexpected structure in the metaverse which must be manually removed.

Modification Type:MinorLast Reviewed:1/25/2006
Keywords:kbenv kbinfo KB283196