Creación de una partición del directorio de aplicaciones

Una partición de directorio de aplicación se representa mediante un objeto domainDNS con un valor de atributo instanceType de DS_INSTANCETYPE_IS_NC_HEAD combinado con DS_INSTANCETYPE_NC_IS_WRITEABLE. Este objeto domainDNS representa la raíz de partición del directorio de la aplicación (encabezado NC) y se denomina similar a una partición de dominio normal, por ejemplo, "DC=dynamicdata,DC=fabrikam,DC=com", que corresponde a un nombre DNS de "dynamicdata.fabrikam.com". Por lo tanto, se puede crear una instancia de una partición de directorio de aplicación en cualquier lugar en el que se pueda crear una instancia de una partición de dominio. No hay ningún nombre NetBIOS asociado a una partición de directorio de aplicación.

Es posible anidar particiones de directorio de aplicaciones, es decir, una partición de directorio de aplicación puede tener particiones de directorio de aplicación secundarias. Las búsquedas con ámbito de subárbol rooteado en un encabezado de partición de directorio de aplicación generarán referencias de continuación a las particiones del directorio de aplicaciones secundarias.

Una réplica de partición de directorio de aplicación solo se puede crear en un controlador de dominio que se ejecuta en Windows Server 2003 y versiones posteriores y solo mientras un controlador de dominio de Windows Server 2003 y versiones posteriores mantiene el rol FSMO de Domain-Naming. En un bosque mixto que tiene controladores de dominio de Windows Server 2003 y controladores de dominio de nivel descendente (controladores de dominio de Windows 2000 o controladores de dominio primarios de Windows NT 4.0), se producirá un error al intentar crear una réplica de partición de directorio de aplicación en un controlador de dominio de nivel descendente.

Una partición de directorio de aplicación también tiene un objeto crossRef correspondiente en el contenedor Particiones de la partición de configuración. CrossRef se puede crear manualmente antes de crear el objeto domainDNS. El objeto crossRef creado previamente debe tener los valores de atributo que se muestran en la tabla siguiente o se producirá un error en la creación de particiones. Si el objeto crossRef no existe, el servidor de Active Directory creará uno cuando se cree la partición del directorio de la aplicación.

Atributo Descripción
dnsRoot Contiene la ruta de acceso DNS del controlador de dominio en la que se creará la partición del directorio de la aplicación.
habilitado Contiene FALSE.
nCName Contiene el nombre distintivo de la partición. En el ejemplo anterior, este atributo contendría "DC=dynamicdata,DC=mydomain,DC=com".

 

Para crear una nueva partición de directorio de aplicación con su primera réplica, realice los pasos siguientes:

  1. Enlace al espacio de nombres de la nueva partición, especificando el controlador de dominio que hospedará la partición del directorio de la aplicación en ADsPath. Por ejemplo, para crear una partición con ADsPath de "DC=dynamicdata,DC=mydomain,DC=com", el enlace de ADsPath sería "LDAP://< domain controller>/DC=mydomain,DC=com", donde "<domain controller>" es el nombre DNS del controlador de dominio que hospedará la partición.

    La operación de enlace debe especificar las opciones rápidas y de delegación. La opción rápida permite que el enlace se realice correctamente incluso si el espacio de nombres no existe. La opción de delegación es necesaria para permitir que el controlador de dominio se comunique con el titular del rol FSMO Domain-Naming con las mismas credenciales.

    La versión del sistema del controlador de dominio debe ser el sistema operativo Windows Server 2003 y versiones posteriores.

  2. Cree un objeto domainDNS con un nombre adecuado para la partición, por ejemplo, "DC=dynamicdata", para representar el encabezado de contexto de nomenclatura de la nueva partición. El objeto domainDNS debe tener un atributo instanceType con un valor de 5 (DS_INSTANCETYPE_IS_NC_HEAD | DS_INSTANCETYPE_NC_IS_WRITEABLE). El atributo instanceType solo se puede establecer en el momento de la creación porque es un atributo solo del sistema.

Cuando se crea el objeto domainDNS , el servidor de Active Directory realizará los pasos siguientes:

  1. Busca un objeto crossRef en el contenedor Partitions que tenga un valor de atributo nCName que coincida con el nombre distintivo de la partición y, si se encuentra una coincidencia, modifica el objeto crossRef para representar la partición del directorio de la aplicación. Si no se encuentra un objeto crossRef coincidente, el servidor de Active Directory crea un nuevo objeto crossRef para representar la partición del directorio de la aplicación.

    En la tabla siguiente se enumeran los atributos importantes del objeto crossRef .

    Atributo Descripción
    nCName Contiene el nombre distintivo de la partición.
    dnsRoot Contiene el nombre DNS de la partición.
    msDS-NC-Replica-Locations El nombre distintivo del objeto nTDSDSA del controlador de dominio para la primera réplica se agrega a este atributo.

     

  2. Inicie una sincronización de la partición de configuración y espere a que finalice. Esto permite a la aplicación cliente modificar los parámetros de configuración de la partición de directorio de aplicación recién creada mientras se enlaza al mismo controlador de dominio que se usa para crear la partición del directorio de la aplicación.

  3. Cree el objeto domainDNS con las marcas DS_INSTANCETYPE_IS_NC_HEAD y DS_INSTANCETYPE_NC_IS_WRITEABLE establecidas en la propiedad instanceType . La propiedad instanceType también puede contener otras marcas privadas.

  4. Rellene el atributo ms-DS-Has-Master-NCs del objeto nTDSDSA para el controlador de dominio de destino con el nombre distintivo de la partición de directorio de aplicación recién creada.

Cuando se crea la partición del directorio de la aplicación o cuando se agrega una nueva réplica de la partición del directorio de aplicación y se sincroniza completamente, el servidor de Active Directory registra correctamente la réplica con NetLogon y DNS. Para obtener más información y una lista de los registros SRV registrados, vea Buscar un servidor host de partición de directorio de aplicaciones.

Para obtener más información sobre cómo crear una partición de directorio de aplicación, vea Código de ejemplo para crear una partición de directorio de aplicación.

Buscar el contenedor de particiones

El nombre distintivo del contenedor Particiones se puede encontrar de una de estas dos maneras. La primera es más complicada de realizar, pero siempre proporcionará un resultado preciso:

  1. Enlazar a RootDSE y obtener el atributo configurationNamingContext .
  2. Use el atributo configurationNamingContext para enlazar con el contenedor de configuración.
  3. Busque en el contenedor de configuración un objeto que sea del tipo crossRefContainer .
  4. Obtenga el valor del atributo distinguishedName del objeto crossRefContainer . Este será el nombre distintivo del contenedor De particiones.

Para obtener más información y un ejemplo de código que muestra este método para buscar el contenedor De particiones, vea la función GetPartitionsDNSearch en Código de ejemplo para buscar el contenedor de particiones.

El segundo método es más fácil de implementar, pero se basa en el contenedor Particiones que tiene un nombre distintivo relativo determinado. Actualmente no es posible cambiar el nombre del contenedor Particiones, pero si esta funcionalidad se agrega en el futuro, el procedimiento siguiente no funcionará correctamente si se ha cambiado el nombre del contenedor Partitions.

  1. Enlazar a RootDSE y obtener el atributo configurationNamingContext .
  2. Combine la cadena "CN=Partitions", seguida del atributo configurationNamingContext para formar el nombre distintivo del contenedor Partitions. El nombre distintivo tendrá el formato "CN=Particiones,DN<> de configuración".

Para obtener más información y un ejemplo de código que muestra este método para buscar el contenedor De particiones, vea la función GetPartitionsDNManual en Código de ejemplo para buscar el contenedor de particiones.