Photo by Jan Huber / Unsplash
Créer des objets AD dynamiques

Créer des objets AD dynamiques

Published on 28 Aug 2023

Bastien Perez
Bastien Perez

Clap

Présentation

J'ai présenté les objets dynamiques sur ce post LinkedIn.

Créer un utilisateur dynamique

# L'objet sera supprimé dans une heure (3600 secondes)
$TTLSeconds = 3600
$objectType = 'user'
$objectName= 'DynamicUser01'
# Choisir l'OU
$destinationOu="OU=Users,OU=Dynamic,DC=ad,DC=itprotips,DC=com"
$destinationOuObject = [ADSI]("LDAP://$destinationOu")

$dynamicObject = $destinationOuObject.Create($objectType,"CN=$objectName")
# On ajoute la classe dynamicObject et la classe de l'objet
$dynamicObject.PutEx(2,'objectClass',@('dynamicObject',$objectType))
$dynamicObject.Put('entryTTL', $TTLSeconds)
$dynamicObject.Put('sAMAccountName', $objectName)
# on ajoute un nom d'affichage et une description (facultatif)
$dynamicObject.Put('displayName', $objectName)
$removalTime = (Get-Date).AddSeconds($TTLSeconds)
$dynamicObject.Put('description',"This object will be deleted on $removalTime")
$dynamicObject.SetInfo()
# On ajoute un mot de passe 
$dynamicObject.SetPassword('CHANGEYOURPASSWORD')
# et on active le compte
$dynamicObject.Put('userAccountcontrol','512')
$dynamicObject.SetInfo()

Créer un groupe dynamique

# L'objet sera supprimé dans une heure (3600 secondes)
$TTLSeconds = 3600
$objectType = 'group'
$objectName= 'DynamicGroup02'
# Choisir l'OU
$destinationOu="OU=Groups,OU=Dynamic,DC=ad,DC=itprotips,DC=com"
$destinationOuObject = [ADSI]("LDAP://$destinationOu")

$dynamicObject = $destinationOuObject.Create($objectType,"CN=$objectName")
# On ajoute la classe dynamicObject et la classe de l'objet
$dynamicObject.PutEx(2,'objectClass',@('dynamicObject',$objectType))
$dynamicObject.Put('entryTTL', $TTLSeconds)
$dynamicObject.Put('sAMAccountName', $objectName)
# on ajoute un nom d'affichage et une description (facultatif)
$dynamicObject.Put('displayName', $objectName)
$removalTime = (Get-Date).AddSeconds($TTLSeconds)
$dynamicObject.Put('description',"This object will be deleted on $removalTime")
$dynamicObject.SetInfo()

Détecter la création d'un objet dynamique

Surveiller les événements de création est important pour s'assurer que ces objets ne soient pas utilisés pour des activités malveillantes. Voir cet article pour une méthode de détection avec les journaux Windows.

Comments

banner-Bastien Perez
Bastien Perez

Freelance Microsoft 365 - Active Directory - Modern Workplace

France