Deploying Lync Server 2010 is a process I simply enjoy doing. When the presales and design sessions are complete, I’m ready to start the deployment process as quickly as possible. It never fails, however, that something always makes the deployment wheels spin as we get started. This blog post is a simple post, but nonetheless something I feel can help streamline a painful discussion point with a client; Extending the Schema.
First, let’s quickly review a few important points of extending the schema for Lync Server 2010:
Extends the Active Directory schema by adding new classes and attributes that are used by Lync Server.
- User object extensions
- Extensions for Office Communications Server 2007 and Office Communications Server 2007 R2 classes to maintain backward compatibility with supported previous versions
Data (stored in Lync Server extended schema and in existing schema classes):
- User SIP Uniform Resource Identifier (URI) and other user settings
- Contact objects for applications such as Response Group and Conferencing Attendant
- A pointer to the Central Management store
- Kerberos Authentication Account (an optional computer object)
- Must be run against the schema master in the root domain of each forest where Lync Server will be deployed.
- Admin must be a member of the Schema Admins group in the root domain and a member of the Enterprise Admins group on the schema master.
- Can be ran from any member server in the forest as long as you have permissions stated in bullet #3 and the server is 64-bit
Well, what happens if you attempt to run the prep from any machine other than the schema master, but the prep process times out? An example of a timeout failure during the schema prep could be “The time limit set by the server-side time limit parameter was exceeded“. The next thought would be to run the prep on a Domain Controller, Global Catalog or the Schema Master itself. If all the DC’s, GC’s and the Schema Master are 32-bit and since the Lync binaries are 64-bit only, what would be the next step? Enter ldifde.exe and the .ldf files!
All changes made to the schema are made up of 4 simple schema .ldf files:
- ExternalSchema.ldf, which is used for interoperability with Microsoft Exchange Server
- ServerSchema.ldf, which is the primary Lync Server 2010 schema file
- BackCompatSchema.ldf, which is used for interoperability with any components from prior releases
- VersionSchema.ldf, which is used for version information of the prepared schema
These files can be used to manually extend the schema on the Schema Master or any domain controller in the forest if they are 32-bit servers. In my opinion, this is a very useful way to extend the schema especially if the client wants to see it take place. You can actually watch what is taking place as it unfolds as well as output the results to a log file in a location of your choice. Follow the steps below to manually extend the schema:
- Log into Schema Master with schema and enterprise admin account
- Create a folder on Schema master (eg. c:/schema) and import files from the Lync Server media SupportSchema directory
- Run this command from CMD.exe: ldifde -i -v -k -s <DCName> -f <Schema filename> -c DC=X <defaultNamingContext>
- Repeat these steps for each of the 4 files.
After completing all 4 files, check to make sure replication is finished before moving on to Forest Prep:
- Log on to a domain controller as a member of the Enterprise Admins group.
- Open ADSI Edit by clicking Start, clicking Administrative Tools, and then clicking ADSI Edit.
- In the Microsoft Management Console (MMC) tree, if it is not already selected, click ADSI Edit.
- On the Action menu, click Connect to.
- In the Connection Settings dialog box under Select a well known Naming Context, select Schema, and then click OK.
- Under the schema container, search for CN=ms-RTC-SIP-SchemaVersion. If this object exists, and the value of the rangeUpper attribute is 1100 and the value of the rangeLower attribute is 14, then the schema was successfully updated and replicated. If this object does not exist or the values of the rangeUpper and rangeLower attributes are not as specified, then the schema was not modified or has not replicated.
Once everything checks out in replication, it is then safe to move on to the Forest Prep!
Reference: Technet http://technet.microsoft.com/en-us/library/gg398630.aspx