10.22. Reloading the Schema Cache

Problem

You want to reload the schema cache so that schema extensions take effect immediately.

Solution

Using a graphical user interface

  1. Open the Active Directory Schema snap-in.

  2. In the left pane, click on Active Directory Schema.

  3. Right-click on the label and select Reload the Schema.

Using a command-line interface

You can reload the schema by using the ldifde utility and an LDIF file that contains the following:

dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-

If the LDIF file were named reload.ldf, you would run the following command:

> ldifde -v -i -f reload.ldf

Using VBScript

set objRootDSE = GetObject("LDAP://dc1/RootDSE")
objRootDSE.Put "schemaUpdateNow", 1
objRootDSE.SetInfo
WScript.Echo "Schema reloaded"

Discussion

Each domain controller maintains a complete copy of the schema in memory to make access to the schema very fast. This is called the schema cache. When you extend the schema on the Schema FSMO role owner, the change is written to the schema cache, and not committed to disk yet. The schema automatically commits any changes to the schema every five minutes if a change has taken place, but you can also do it manually/programmatically by writing to the schemaUpdateNow operational attribute of the RootDSE on the Schema FSMO role owner. Once that is done, any changes to the schema cache are written to disk.

It is necessary to force a schema cache update if your schema extensions reference newly created attributes or classes. For example, ...

Get Active Directory Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.