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 |
|
|
Types that write |
|
|
What you still do |
Add the attribute on the export template and map an expression to it |
Where to configure
-
Open the synchronization cycle and select the Export AD step that should write the attribute.
-
Set Custom attributes. Do not put spaces around
=or,. -
Open the export template for that same step and object type (user, group, or organisational unit).
-
Add a mapping line. The new name is in the target attribute list. The expression is the value eADM sends.
-
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 |
|---|---|
|
|
One value. An empty result clears the attribute. |
|
|
The expression is split on |
|
|
Only |
|
|
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 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The identity number stored on the user |
|
|
|
|
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 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
|---|---|---|
|
|
|
Dial-in allowed |
|
|
|
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 |
|---|---|---|
|
|
|
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: |
|
Active Directory |
In ADSI Edit or Attribute Editor, confirm the value on that user. For |
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 |
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 |
Correct the type and save the template again. |
|
|
The expression is |
Send |
|
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 |
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 |
|
|
Separator between attributes |
Comma, with no spaces |
|
Several values inside one attribute |
Pipe |
|
Already in the template |
Do not list it. The built-in type stays. |
|
Schema |
Must already exist. eADM does not extend the schema. |