0X0000200C

Fix ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED (0X0000200C) in AD

Server & Cloud Intermediate 👁 0 views 📅 Jul 29, 2026

This error pops up when Active Directory can't find an attribute type you're trying to use. Usually happens after a bad schema update or a typo in PowerShell.

You're in the middle of a PowerShell script or maybe running an LDP.exe query, and then—bam—you get error 0X0000200C. It says The attribute type specified to the directory service is not defined. This usually happens when you try to read or write an attribute that doesn't exist in the Active Directory schema. For example, you might have a custom app that added a new attribute but the schema update failed halfway, or you're using a misspelled attribute name like employeeID instead of employeeNumber. I've seen this a lot when teams try to bulk-import users with a tool that expects an attribute from another AD forest.

What causes this error?

The root cause is simple: AD doesn't know what attribute you're talking about. Every attribute in Active Directory must be defined in the schema first. The schema is like a dictionary—it tells AD what attributes exist and what data type they hold. If you try to use customAttribute1 without ever adding it to the schema, AD throws this error. Another common trigger is a corrupted schema after a failed update from an older Windows Server version like 2012 R2 to 2019.

How to fix it

Here's the fix. I'm going to walk you through three methods. Start with the easiest one first.

Method 1: Check for typos (most common fix)

  1. Open PowerShell as Administrator.
  2. Run this command to list all attributes in your AD:
    Get-ADObject -Filter {ObjectClass -eq 'attributeSchema'} -Properties lDAPDisplayName | Select-Object -ExpandProperty lDAPDisplayName | Sort-Object
  3. Look through the list for the exact attribute name you're using. If it's not there, you found the problem.
  4. If it's a typo, correct your script or query. For example, change employeeID to employeeID (note the 'D' vs 'd' — it's case-insensitive but spelling matters).

Method 2: Add the missing attribute to the schema

If the attribute really should exist but doesn't, you need to extend the schema. Be careful—schema changes are permanent and replicate across the whole forest.

  1. Log into a domain controller with Schema Admin privileges.
  2. Open ADSI Edit. Connect to the Schema partition (look for CN=Schema,CN=Configuration,DC=yourdomain,DC=com).
  3. Right-click the Schema container and choose New > Attribute.
  4. Give it a name. For example, if you need employeeID, set the lDAPDisplayName to employeeID.
  5. Set the syntax. For a text string, use Unicode String.
  6. Click OK. Now wait for replication or force it with repadmin /syncall.
  7. Retry your original operation.

Method 3: Fix a broken schema update

If the schema update failed halfway, you might have a partially created attribute. Here's how to check:

  1. Run this command in PowerShell:
    Get-ADObject -Filter {ObjectClass -eq 'attributeSchema' -and Name -like '*partial*'} -Properties * | FL
  2. If you see an attribute with a mangled lDAPDisplayName or missing attributeSyntax, delete it.
    Remove-ADObject -Identity "CN=YourPartialAttribute,CN=Schema,CN=Configuration,DC=yourdomain,DC=com" -Confirm:$false
  3. Then re-run the schema update from your custom app or script.

What to check if it still fails

If none of these work, you're probably looking at replication issues. Check that the schema master is online and reachable. Run repadmin /showrepl to see if changes are syncing. Sometimes the error is just a delay—wait 15 minutes and try again. Also make sure you're running your script on a domain controller that has the latest schema version. You can check with Get-ADForest | Select-Object SchemaMaster.

One more thing: if you're using a third-party tool like Quest or ManageEngine, it might be sending an attribute name with a space or special character. Strip those out. I've seen that trip people up more than once.

Was this solution helpful?