re:ADM kan betale seg selv på ett år. Bestill innen 18. desember og få 20% rabatt www.identum.no/re-adm

Active Directory: How to export custom schema attributes

Overview

Export AD already knows a fixed list of Active Directory attributes (samAccountName, department, extensionAttribute1, and so on). The Custom attributes parameter adds more names to that list, so you can map them on an export template.

The parameter does not write anything by itself. After you save it, add a mapping line on the template for the Export AD step. eADM does not create attributes in the directory. The name must already exist in the Active Directory schema, on the object you are writing (user, group, or organisational unit).

This parameter is on every on-premises Export AD step (Export AD, Export AD 2, and further Export AD steps). It is not on Export Azure / Entra. Each Export AD step has its own list.

The parameter has been available since February 2026.

Item

Detail

Where

Synchronization cycle → the Export AD step → Custom attributes

Format

ldapDisplayName=Type, several pairs separated by commas

Types that write

String, Multivalue, Bool, Int

What you still do

Add the attribute on the export template and map an expression to it


Where to configure

  1. Open the synchronization cycle and select the Export AD step that should write the attribute.

  2. Set Custom attributes. Do not put spaces around = or ,.

  3. Open the export template for that same step and object type (user, group, or organisational unit).

  4. Add a mapping line. The new name is in the target attribute list. The expression is the value eADM sends.

  5. Save the template. The type on the mapping line is taken from the list at save time. If you later change the type in Custom attributes, open the template and save it again.

Use the LDAP display name, the same name you see in ADSI Edit. middleName is correct. Middle-Name is the schema object name and is not.

A second forest uses the Custom attributes field on Export AD 2 (or Export AD 3, and so on). It does not inherit the list from Export AD.


How a value is written

The type is the word after =. These four types are the ones to use:

Type

Write behaviour

String

One value. An empty result clears the attribute.

Multivalue

The expression is split on |. eADM clears the attribute, then adds each non-empty part. An empty result clears the attribute.

Bool

Only True or False. 1 and 0 are rejected.

Int

A whole number. An empty result is an error, not a clear.

The type must be written exactly like that. string or MultiValue does not match, and eADM then skips the write. The client log has no "Setting … to value" line for that attribute.

Reference, Mail, Powershell, and RDN are reserved for attributes that are already built in. Do not use them in Custom attributes.

Lengths are enforced by Active Directory, not by eADM. See Active Directory: Attribute Character Limits.


String

One text value.

Standard attribute that is not in the template: profilePath. This is the roaming profile path on a user. The schema sets no maximum length.

Standard attribute that is not in the template: middleName. Maximum 64 characters.

Standard attribute that is not in the template: co. This is the country name (United Kingdom). Maximum 128 characters. The template already has c, which is the 2- or 3-letter country code and holds 3 characters. Do not put a country name in c.

Schema you installed: norEduPersonNIN. Feide's norEduPerson schema. It is not on a default user until that schema is imported and the class is allowed on the user. Map it from the national identity number.

Schema Fableton added: fabletonCostCenter. A single-value string on an auxiliary class Fableton created. The name must be the ldapDisplayName from that schema.

Target attribute

Example expression

Result in AD

profilePath

\\files.fableton.example\profiles\[samaccountname]

\\files.fableton.example\profiles\jsmith

middleName

[middlename]

Anne

co

United Kingdom

United Kingdom

norEduPersonNIN

[socialsecuritynumber]

The identity number stored on the user

fabletonCostCenter

[departmentnumber]

FIN-014


Multivalue

Several values in one attribute. Separate them with |. eADM replaces the current values. It does not append to what is already in AD.

Standard attribute that is not in the template: otherMobile. Each number can be 64 characters. The template already has mobile (one number) and otherTelephone.

Published schema: eduPersonAffiliation. Multi-value. Typical values are staff, employee, and member. The eduPerson schema must be installed, and the user object must be allowed to hold the attribute.

Schema Fableton added: fabletonRoleCodes. Multi-value string for role codes that do not fit a standard attribute.

Target attribute

Example expression

Values written

otherMobile

+447700900123|+447700900456

+447700900123 and +447700900456

eduPersonAffiliation

staff|employee|member

staff, employee, and member

fabletonRoleCodes

Teacher|Principal

Teacher and Principal

A trailing pipe is fine. Empty pieces between pipes are skipped. Teacher||Principal still writes two values.


Bool

Standard attribute that is not in the template: msNPAllowDialin. This is Allow access on the Dial-in tab of the user in Active Directory Users and Computers. Set it only when you mean to control remote access.

There is no separate boolean type to invent for a text attribute. If Fableton added their own boolean, name it the same way, for example fabletonIsManager=Bool, and send True or False.

Target attribute

Example expression

Result

msNPAllowDialin

True

Dial-in allowed

msNPAllowDialin

False

Dial-in denied


Int

A whole number, sent as a number rather than text.

Standard attribute that is not in the template: countryCode. This is the numeric ISO country code, not the text in c or co. The United Kingdom is 826. The highest value the schema accepts is 65535.

employeeNumber is text. It is already in the template as String. Do not add it again as Int.

Target attribute

Example expression

Result

countryCode

826

Numeric country code 826


Attributes already in the standard list

Listing an attribute that is already in the export template does not change its type.

eADM keeps the built-in entry and adds a second entry with the same name. When you open the template, the built-in type is the one that is used. Saving the template writes that built-in type back onto the mapping line.

department is built in as String. This does not turn it into a multi-value attribute:

department=Multivalue

You will see department twice in the list. The line that eADM uses is still String. Leave standard attributes out of Custom attributes.


Worked example

Fableton Municipality (NO999000001) writes a profile path, a middle name, extra mobile numbers, a Feide identity number, and two attributes from their own schema. All of that is on the user template for Export AD.

Custom attributes on that step:

profilePath=String,middleName=String,otherMobile=Multivalue,norEduPersonNIN=String,fabletonCostCenter=String,fabletonRoleCodes=Multivalue

Then add one mapping line per attribute, using the expressions in the tables above.

extensionAttribute1 through extensionAttribute15 and msDS-cloudExtensionAttribute1 through msDS-cloudExtensionAttribute20 are already in the template. You do not add those here.


Testing

Check

What to do

The name appears

Open the user export template for that Export AD step. The new attribute is in the target list. The tooltip shows the type you set.

One user

Put a test user in the template's rule set, or run a single-object export if you use that.

Client

On the eADM client host: eadm.client.exe exportad NO999000001

Active Directory

In ADSI Edit or Attribute Editor, confirm the value on that user. For Multivalue, confirm the old values were replaced.

Repeat for Export AD 2 only after the same parameter is set on Export AD 2.


Troubleshooting

Symptom

Likely cause

Action

The target list on the template fails to load

A pair has no =, or the value is otherwise not name=Type

Fix Custom attributes. Every pair needs exactly one =.

The attribute never changes in AD, and the client log never says it is setting that attribute

The type is not String, Multivalue, Bool, or Int

Correct the type and save the template again.

Bool fails

The expression is 1, 0, yes, or no

Send True or False.

Active Directory rejects the write

The attribute is not on that object class, the value is too long, or the service account cannot write it

Install or attach the schema class, shorten the value, and delegate write permission on that attribute.

You added department=Multivalue and it is still one value

Built-in attributes keep their built-in type

Remove it from Custom attributes.

Export AD 2 does not show the attributes

The list is per step

Set Custom attributes on Export AD 2 as well.

The name is in the list but AD says the attribute does not exist

The LDAP display name is wrong, or the schema is not loaded

Compare the name with ADSI Edit.


Quick reference

profilePath=String,middleName=String,co=String,otherMobile=Multivalue,msNPAllowDialin=Bool,countryCode=Int,norEduPersonNIN=String,eduPersonAffiliation=Multivalue,fabletonCostCenter=String,fabletonRoleCodes=Multivalue

Rule

Detail

Name

LDAP display name

Type

String, Multivalue, Bool, or Int

Separator between attributes

Comma, with no spaces

Several values inside one attribute

Pipe | in the template expression

Already in the template

Do not list it. The built-in type stays.

Schema

Must already exist. eADM does not extend the schema.

Last updated: