[TUTO] – Active Directory : Ajouter un attribut personalisé dans l’Active Directory

3
16446

Nous verrons ensemble dans ce tutoriel comment ajouter un nouvel attribut personnalisé dans l’Active Directory en fonction de vos besoins.

Dans mon cas, je souhaite utiliser un attribut de type booléen comme filtre de synchronisation de mes objets Active Directory dans Azure Active Directory (Via Azure Active Directory Connect).

 

Pour commencer, ouvrez une console « mmc.exe »

ajouter_un_attribut_personalise_dans_active_directory01

 

Ajoutez le snap-in « Active Directory Schema », puis cliquez sur « OK ».

Il est possible que celui-ci ne soit pas disponible. Pour remédier à ça, il vous suffit d’exécuter cette commande via un prompt ouvert en tant qu’administrateur.

regsvr32 schmmgmt.dll

ajouter_un_attribut_personalise_dans_active_directory02

 

Déroulez l’arborescence « Active Directory Schema… » puis cliquez droit sur « Attributes » puis sur « Create Attribute… »

ajouter_un_attribut_personalise_dans_active_directory03

 

Une popup vous signal que toute création d’un objet dans le schéma est permanente, cliquez sur « Continue ».

ajouter_un_attribut_personalise_dans_active_directory04

 

Renseignez les informations suivantes :

  • Common Name :  Correspond au nom de l’attribut
  • LDAP Display Name : Correspond au nom LDAP de l’attribut
  • Unique X500 Object ID : Correspond à un ID unique de l’attribut dans votre schéma Active Directory ( Référez vous au script d’après pour générer cet ID)
  • Description : Correspond à la description de l’attribut
  • Syntax : Correspond au type de l’attribut
  • Minimum : Range minimum
  • Maximum : Range maximum

ajouter_un_attribut_personalise_dans_active_directory05

 

Voici le script à utiliser pour généré un ID unique, il s’agit d’un script VBS a exécuter en tant qu’administrateur depuis un contrôleur de domaine.

Plus d’informations disponibles ici : https://gallery.technet.microsoft.com/scriptcenter/56b78004-40d0-41cf-b95e-6e795b2e8a06

Function GenerateOID()
‘Initializing Variables
Dim guidString, oidPrefix
Dim guidPart0, guidPart1, guidPart2, guidPart3, guidPart4, guidPart5, guidPart6
Dim oidPart0, oidPart1, oidPart2, oidPart3, oidPart4, oidPart5, oidPart6
On Error Resume Next
‘Generate GUID
Set TypeLib = CreateObject(« Scriptlet.TypeLib »)
guidString = TypeLib.Guid
‘If no network card is available on the machine then generating GUID can result with an error.
If Err.Number <> 0 Then
Wscript.Echo « ERROR: Guid could not be generated, please ensure machine has a network card. »
Err.Clear
WScript.Quit
End If
‘Stop Error Resume Next
On Error GoTo 0
‘The Microsoft OID Prefix used for the automated OID Generator
oidPrefix = « 1.2.840.113556.1.8000.2554 »
‘Split GUID into 6 hexadecimal numbers
guidPart0 = Trim(Mid(guidString, 2, 4))
guidPart1 = Trim(Mid(guidString, 6, 4))
guidPart2 = Trim(Mid(guidString, 11, 4))
guidPart3 = Trim(Mid(guidString, 16, 4))
guidPart4 = Trim(Mid(guidString, 21, 4))
guidPart5 = Trim(Mid(guidString, 26, 6))
guidPart6 = Trim(Mid(guidString, 32, 6))
‘Convert the hexadecimal to decimal
oidPart0 = CLng(« &H » & guidPart0)
oidPart1 = CLng(« &H » & guidPart1)
oidPart2 = CLng(« &H » & guidPart2)
oidPart3 = CLng(« &H » & guidPart3)
oidPart4 = CLng(« &H » & guidPart4)
oidPart5 = CLng(« &H » & guidPart5)
oidPart6 = CLng(« &H » & guidPart6)
‘Concatenate all the generated OIDs together with the assigned Microsoft prefix and return
GenerateOID = oidPrefix & « . » & oidPart0 & « . » & oidPart1 & « . » & oidPart2 & « . » & oidPart3 & _
« . » & oidPart4 & « . » & oidPart5 & « . » & oidPart6
End Function
‘Output the resulted OID with best practice info
Wscript.Echo « Your root OID is:  » & VBCRLF & GenerateOID & VBCRLF & VBCRLF & VBCRLF & _
« This prefix should be used to name your schema attributes and classes. For example:  » & _
« if your prefix is «  »Microsoft » », you should name schema elements like «  »microsoft-Employee-ShoeSize » ».  » & _
« For more information on the prefix, view the Schema Naming Rules in the server  » & _
« Application Specification (http://www.microsoft.com/windowsserver2003/partners/isvs/appspec.mspx). » & _
VBCRLF & VBCRLF & _
« You can create subsequent OIDs for new schema classes and attributes by appending a .X to the OID where X may  » & _
« be any number that you choose. A common schema extension scheme generally uses the following structure: » & VBCRLF & _
« If your assigned OID was: 1.2.840.113556.1.8000.2554.999999 » & VBCRLF & VBCRLF & _
« then classes could be under: 1.2.840.113556.1.8000.2554.999999.1  » & VBCRLF & _
« which makes the first class OID: 1.2.840.113556.1.8000.2554.999999.1.1 » & VBCRLF & _
« the second class OID: 1.2.840.113556.1.8000.2554.999999.1.2 etc… » & VBCRLF & VBCRLF & _
« Using this example attributes could be under: 1.2.840.113556.1.8000.2554.999999.2  » & VBCRLF & _
« which makes the first attribute OID: 1.2.840.113556.1.8000.2554.999999.2.1  » & VBCRLF & _
« the second attribute OID: 1.2.840.113556.1.8000.2554.999999.2.2 etc… » & VBCRLF & VBCRLF & _
« Here are some other useful links regarding AD schema: » & VBCRLF & _
« Understanding AD Schema » & VBCRLF & _
« http://technet2.microsoft.com/WindowsServer/en/Library/b7b5b74f-e6df-42f6-a928-e52979a512011033.mspx  » & _
VBCRLF & VBCRLF & _
« Developer documentation on AD Schema: » & VBCRLF & _
« http://msdn2.microsoft.com/en-us/library/ms675085.aspx  » & VBCRLF & VBCRLF & _
« Extending the Schema » & VBCRLF & _
« http://msdn2.microsoft.com/en-us/library/ms676900.aspx  » & VBCRLF & VBCRLF & _
« Step-by-Step Guide to Using Active Directory Schema and Display Specifiers  » & VBCRLF & _
« http://www.microsoft.com/technet/prodtechnol/windows2000serv/technologies/activedirectory/howto/adschema.mspx  » & _
VBCRLF & VBCRLF & _
« Troubleshooting AD Schema  » & VBCR & _
« http://technet2.microsoft.com/WindowsServer/en/Library/6008f7bf-80de-4fc0-ae3e-51eda0d7ab651033.mspx  » & _
VBCRLF & VBCRLF

 

Exemple après exécution du script

ajouter_un_attribut_personalise_dans_active_directory12

 

Votre attribut est créé, rendez-vous dans ses propriétés puis cochez les cases suivantes puis validez par « OK » :

  • Attribute is active
  • Replicate this attribute to the Global Catalog
  • Attribute is copied when duplicating a user

ajouter_un_attribut_personalise_dans_active_directory11

 

Il faut maintenant l’associer à une classe et dans mon cas, je souhaite que l’attribut soit lié à tous mes objets utilisateurs « User ».

Cliquez droit sur la classe « User » puis sur « Properties ».

ajouter_un_attribut_personalise_dans_active_directory06

 

Rendez-vous dans l’onglet « Attributes » puis cliquez sur « Add… »

ajouter_un_attribut_personalise_dans_active_directory07

 

Sélectionnez l’attribut que vous venez de créer puis cliquez sur « OK ».

ajouter_un_attribut_personalise_dans_active_directory08

 

L’attribut apparaît désormais dans la liste des attributs de la classe user.

Cliquez sur « OK » pour valider.

ajouter_un_attribut_personalise_dans_active_directory09

 

Il est temps de valider avec un de vos utilisateurs du domaine que l’attribut soit bien disponible.

Rendez-vous dans les propriétés de l’utilisateurs puis dans la partie « Attribute Editor » et vérifiez enfin que l’attribut nouvellement créé soit bien la.

ajouter_un_attribut_personalise_dans_active_directory10

 

 

Pour changer la valeur, il vous suffit de double cliquer sur l’attribut et sélectionner la valeur que vous souhaitez attribuer.

3 Commentaires

  1. Bonjour,
    Pour que le second attribut et suivants apparaissent dans la classe user (par exemple) il faut cocher l’option Attribute is copied when duplicating a user comme dit plus haut.
    Cependant cette option est systématiquement grisée…
    Pour y remédier il faut se connecter au Schema AD avec Modification ADSI et chercher attribut voulu puis l’éditer et chercher searchflags. En modifier la valeur avec 0x16 et la l’option est dégrisée ..

  2. Bonjour,
    Tout d’abord merci pour ce tuto qui me sert énormément.
    Cependant j’ai un probléme incompréhensible.
    J’ai suivi ce ce tuto pour ajouter attribut dans mon schema AD. Tout a bien fonctionné.
    J’ai effectué la même procédure pour mon second attribut à rajouter, seulement impossible de voir ce nouvel attribut lors de l’ajout à la classe user ?
    Il n’apparaît pas dans la liste des attributs à ajouter ?
    Merci de votre aide.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici