Recipe 11.7 Creating a Site Link

11.7.1 Problem

You want to create a site link to connect two or more sites together.

11.7.2 Solution

11.7.2.1 Using a graphical user interface
  1. Open the Active Directory Sites and Services snap-in.

  2. Expand the Sites container.

  3. Expand the Inter-Site Transports container.

  4. Right-click on IP (or SMTP) and select New Site Link.

  5. For Name, enter the name for the site link.

  6. Under Site is not in this site link, select at least two sites and click the Add button.

  7. Click OK.

11.7.2.2 Using a command-line interface

The following LDIF would create a site link connecting the SJC and Dallas sites:

dn: cn=Dallas-SJC,cn=IP,cn=inter-site 
transports,cn=sites,cn=configuration,<ForestRootDN>
changetype: add
objectclass: siteLink
siteObject: cn=SJC,cn=sites,cn=configuration,<ForestRootDN>
siteObject: cn=Dallas,cn=sites,cn=configuration,<ForestRootDN>

If the LDIF file were named create_site_link.ldf, you'd then run the following command:

> ldifde -v -i -f create_site_link.ldf
11.7.2.3 Using VBScript
' This code creates a site link
' ------ SCRIPT CONFIGURATION ------
intCost  = 100           ' site link cost
intReplInterval = 180    ' replication interval in minutes
strSite1 = "<Site1>"     ' e.g. SJC
strSite2 = "<Site2>"     ' e.g. Dallas
strLinkName = strSite1 & " - " & strSite2
' ------ END CONFIGURATION ---------

' Taken from ADS_PROPERTY_OPERATION_ENUM
const ADS_PROPERTY_UPDATE = 2

set objRootDSE = GetObject("LDAP://RootDSE")
set objLinkCont = GetObject( _
                   "LDAP://cn=IP,cn=Inter-site Transports,cn=sites," & _
                   objRootDSE.Get("configurationNamingContext") )
set objLink = objLinkCont.Create("siteLink", "cn=" & strLinkName)
strSite1DN = "cn=" & strSite1 & ",cn=sites," & _
               objRootDSE.Get("configurationNamingContext")  
strSite2DN = "cn=" & strSite2 & ",cn=sites," & _
               objRootDSE.Get("configurationNamingContext") 
objLink.PutEx ADS_PROPERTY_UPDATE, "siteList", Array(strSite1DN,strSite2DN)
objLink.Put "cost", intCost
objLink.Put "replInterval", intReplInterval
objLink.SetInfo

WScript.Echo "Successfully created link: " & strLinkName

11.7.3 Discussion

Without site links, domain controllers would not be able to determine the optimal partners to replicate with. The cost that is associated with a site defines how "expensive" the link is. A lower cost is less expensive (or faster) than a higher cost. Link costs are inversely proportional to bandwidth.

11.7.4 See Also

MS KB 316812 (HOW TO: Create and Configure a Site Link in Active Directory in Windows 2000)



    Chapter 3. Domain Controllers, Global Catalogs, and FSMOs
    Chapter 6. Users
    Appendix A. Tool List