Acknowledgements Part 1 Chapter 1: Using the Active Directory Library How the Active Directory Library Is Structured How the Active Directory Library Is Designed Chapter 2: What’s In This Volume? Chapter 3: Using Microsoft Reference Resources The Microsoft Devdloper Netowrk Comparing MSDN Omline MSDN Subscriptions MSDN Library Subscriptions MSDN Professional Subscriptions MSDN Universal Subscriptions Purchasing an MSDN Subscriptions Using MSDN Navigating MSDN Quick Tips Using MSDN Omline Navigating MSDN Online MSDN Online Features MSDN Online Registered Users The Windows Programming Reference Series Chapter 4: Finding the Developer Resources You Need Developer Support Omline Resources Learning Products Conferences Other Resources Chapter 5: What You Need to Know First About Active Dircetory Active Directory Basice What Is a Directory Service? Why Have a Directory Service? What Is Active Directory? Active Directory Core Concepts Scope Namespsce Object Containers and Leaves Object Names and Identities Naming Contexts and Partitions Domains Domain Trees Viewing Trust Relationships Viewing the Namespace Forests Active Directory Servers and Dynamic DNS Sites Active Directory Architecture Directory System Agent Data Model Schema Administration Model Global Catalog Active Directory Security Object and Attribute Protection Delegation Inheritance Patr 2 Chapter 6: Searching Active Directory Deciding What to Find Example Code for Searching for Users Where to Search Searching Domain Contents Searching the Schema Searching the Configuration Container searching Global Catalog Contents Choosing the Data Access Technology Creating a Query Filter Finding Objects by class Finding Objects by Name Example Code for Filtering Objects by Name Finding a List of Attributes to Query Checking the Query Filter Syntax Specifying Comparison Values Listing Properties to Retrieve for Each Object Found Retrieving the objectClass Property Binding to a Search Start Point Specifying Other Search Options Search Scope Synchronous vs.Asynchronous Paging Result Caching Sorting the Search Reaults Referral Chasing Size Limit Server Time Limit Client Time-Out Returning Only Attribute Names Example Code for Searching for Attributes Checking Search Preferences Example code for Checking the Status of ADS_SEARCHPREF_INFO Effects of Security on Queries Processing Query Results Creating Efficient Queries Referrals Example Code for Binding to a Partitions Container When Referrals are Generated Creating an External Referral Example Code for Creating an External crossRef Object Chapter 7: Binding Serverless Binding and RootDSE Binding to the Global Catalog Using objectGUID to Bind to an Object Reading an objecgGUID and Creating a String Representation of the GUID Binding go Well-Known Objects Using WKGUID Example Code for Creating a Bindable String Representation of a GUID Enabling Rename-Safe Binding with the otherWellKnownObjects Property Authentication GetObject and ADsGetObject Example Code for Binding to an Object Using ADsGetObject ADsOpenObject and IADsOpenDSOject::OpenDSObject Example Code for Binding to an Object Using ADsOpenObject Binding with Encryption Fast Binding Option for Batch Write/Modify Operations Binding to an Object’s Parent Container Binding to Child Objects Choosing an Interface Chapter 8: Reading and Writing Properties of Active Directory Objects
Property Cache Getting Properties Get Method GetEx Method GetInfo Method Optimization Using GetInfoEx Getting Properties with the IDirectoryObject Interface Setting Properties Put Method PutEx Method SetInfo Method Enumerating Properties Providing Direct Access to the Property Cache Chapter 9: Controlling Access to Active Directory Objects How Access Control Works in Active Directory Controlling Access to Objects and Their Properties Access Rights for Active Directory Objects Security Contexts and Active Directory How Security Affects Active Dircetory Operations Access control and Read Operations Access control and Write Operations Access control and Object Creation Access control and Object Deletion APIs for Working with Security Descriptors Using IADs to Get a Security Descriptor Using IDirectoryObject to Get a Security Descriptor Security Descriptor Components Retrieving an Object’s DACL Retrieving an Object’s SACL Reading an Object’s Security Descriptor Setting Access Rights on an Object Example Code for Setting an ACE on a Directory Object Setting Access Rights on the Entire Object Setting Permissions to a Specific Property Setting Permissions on a Group of Properties Setting Permissions on Child Object Operations How Security Descriptors are Set on New Directory Objects Creating a Security Descriptor Inheritance and Delegation of Administration Access Control Inheritance Setting Rights to specific Types of Objects Setting rights to Specific Properties of Specific Types of Objects Protecting Objects from the Effects of Inherited Rights Default Security Descriptor Reading the defaultSecurityDescriptor for an Object Class Modifying the defaultSecurityDescriptor for an Object Class Extended Rights Creating an Extended Right ACE in an Object’s ACL Checking an Extended Right in an Object’s ACL Reading an Extended Right Set in an Object’s ACL Chapter 10: Extending the User Interface for Directory Objcets About Active Dircetory User Interfaces Display Specifiers DisplaySpecifiers Container Property Pages for Use with Display Specifiers Implementing the Property Page COM Object Registering the Property Page COM Object in a Display Specifier Context Menus for Use with Display Specifiers Implementing the Context Menu COM Object Example Code for Implementation of the Context Menu COM Object Registering the Context Menu COM Object in a Display Specifier Registering a Context Menu ltem that Starts an Application in a Display Specifier Class and Attribute Display Names Class lcons Viewing Containers as Leaf Nodes Object Creation Wizards Invoking Creation Wizards from Your Application Using MSI and Windows 2000 Application Deployment to Distribute UIAdditions Using Standard Dialog Boxes for Handling Active Directory Objects Directory Object Picker Domain Browser Container Browser How Applications Should Use Display Specifiers Localization User Interface Extension for New Object Classes Creating Display Specifiers for New Classes Modifying Existing Classes Extending Active Directory Administrative Snap-ins Using MMC Extension Snap-ins Context Menu Extension Tutorial Registering Node Types for Active Directory Manager MMC Node Types Chapter 11: Object Picker Dialog Box About the Object Picker Dialog Box Object Picker Scopes and Filters Using the Object Picker Dialog Box Displaying the Object Picker Dialog Box Initializing the Object Picker Dialog Box Processing the Selected Objects Chapter 12: Replication and Data Integrity Active Directory Replication Model What is the Active Directory Replication Model? Why Active Directory Uses This Replication Model A Programmer’s Model of Active Directory Replication Active Directory Replication Behavior Impact on Directory-Enabled Applications Detecting and Avoiding Replication Latency What Can You kNOW,and When Can You Know It? Temporal Locality Out-of-Band Signaling Effective Date and Time Checksums and Object Counts Consistency GUIDs Versioning and Fallback Strategies Chapter 13: Managing Users Users in Active Directory Security Principals What Is a User? Reading a User Object Binding to a User Object User Object Properties Reading User Object Properties Setting Properties on a User Object Creating a User Deleting a User Enumerating Users Querying for users Moving Users Managing Users on Member Servers and Windows 2000 Professional Enumerating Users on Member Servers and Windows 2000 Professional Creating Users on Member Servers and Windows 2000 Professional Deleting Users on Member Servers and Windows 2000 Professional Values for CountryCode Chapter 14: Managing Groups Groups in Active Directory Types of Groups How Security Groups are Used in Acess Control Where Groups Can Be Created Scope of Groups Group Scope and the Global Catalog effects of Universal Groups on the Global catalog What Type of Group to Use Group objects Groups on Mixed-and Native-Mode Domains Detecting the Operation Mode of a Domain Creating Groups in a Domain Adding Members to Groups in a Domain Removing Members from Groups in a Domain Nesting a Group in Another Group Nesting in Native Mode Nesting in Mixed Mode Common Errors Determining a User’s or Group’s Membership in a Group Enumerating Groups Enumerating Groups in a Domain Enumerating Groups by Scope or Type in a Domain Enumerating Members in a Group Enumerating Groups That Contain Many Members ADO SQL Dialect ADO LDAP Dialect IDirectorySearch and IDirectoryObject Querying for Groups in a Domain Changing a Group’s Scope or Type Deleting Groups Moving Groups Getting the Domain Account-Style Name of a Group Groups on Member Servers and Windows 2000 Professional Enumerating Groups on Member Servers and Windows 2000 Professional Creating amachine Local Groups on Member Servers and Windows 2000 Professional Deleting Groups on Member Servers and Windows 2000 Professional Adding Domain Groups to Machine Local Groups on Member Servers and Windows 2000 Professional What Application and Service Developers Need to Know About Groups Chapter 15: Tracking Change Overview of Change Tracking Techmiques Change Notifications in Active directory Example Code for Receiving Change Notifications Polling for Changes Using the DirSync Control Example Code Using ADS_SEARCHPREF_DIRSYNC Polling for Changes Using USNChanged Example Code to Retrieve Changes Using USNChanged Retrieving Deleted Objects Chapter 16: Service Publication About Service Publication Security Issues for Service Publication Connection Points Publishing with Service Connection Points Where to Create a Service Connection Point Publishing Under a Computer Object Publishing in a Domain’s System Container Service Connection Points for Replicated,Host-Based,and Database Services Service Connection Point Properties Creating and Maintaining a Service Connection Point Creating a Service Connection Point Updating a Service Connection Point How Clients Find and Use a Service Connection Piont Publishing with the RPC Name Servece(RpcNs) Example Code for Publishing an RPC Service Example Code for an RPC Client Locating a Server Publishing with Windows Sockets Registration and Resolution(RnR) Example Code for Installing an RnR Service Class Example Code for Implementing a Winsock Service with an RnR Publication Example Code for Publishing the RnR Connection Point Example Code for Removing the RnR Connection Point Example Code for a Winsock Client locating a Service Using an RnR Query Publishing COM+Services Chapter 17: Service Logon Accounts About Service Logon Accounts Guidelines for Silecting a Service Logon Account Local User Accounts Domain User Accounts The LocalSystem Account Setting up a Service’s User Account Installing a Service on a Host Computer Granting Logon as Service Right on the Host Computer Testing Whether Calling Process is Running on a Domain Controller Granting Access Rights to the Service Logon Account Enabling Service Account to Access SCP Properties Logon Account Maintenance Tadks Changing the Password on a Service’s User Account Enumerating the Replicas of a Service Converting Domain Account Name Formats Chapter 18: Mutual Authentication Using Kerberos About Mutual Authentication Using Kerberos Security Providers Integrity and privacy Limitations of Mutual Authentication with Kerberos Service Principal Names Name Formats for Unique SPNs How a Service Composes Its SPNs How a Service Registers Its SPNs How Clients Compose a Service’s SPN Mutual Authentication in a Windows Sockets Service with an SCP How a Client Authentecates an SCP-based Windows Sockets Service Composing and Registering SPNs for an SCP-based Windows Sockets Service Composing the SPNs for a Service with an SCP Registering the SPNs for a Service How a Windows Sockets Service Authenticates a Client Mutual Authentication in RPC Applications How a Client Authenticates an RpcNs Service Mutual authentication in RPC Applications How a Client Authenticates an RpcNs Service Composing SPNs for an RpcNs Service How an RpcNs Service Authenticates a Caller Mutual Authentication in Windows Sockets Applications Chapter 19: Backing Up and Restoring Active Directory Considerations for Active Directory Services Backup Bacding Up Active Directory Restoring Active Directory Part 3-Glossary and Indexes Glossary Index 1: Active Directory Programmer’s Guide Coverage Index 2: Active Directory Reference-alphabetical Listing Index 3: ADSI,ADSI Exchange,and Group Policy Programmer’s Guides Coverage Index 4: ADSI Rfefrence-Alphabetical Listing