Interagir sur Active Directory avec DSGET, DSQUERY et DSMOD
Requêter ou modifier automatiquement Active Directory à partir de lignes de commandes est très utile pour obtenir instantanément des informations globales sur les utilisateurs plutôt que de les rechercher ou les modifier graphiquement via une MMC, ce qui est purement et simplement un gouffre de temps. Rappelez-vous que le but de l’administrateur est toujours de se simplifier la vie dès que possible.
Prenons quelques exemples. Premièrement, pour savoir qui n’a pas de klogon utilisé dans un groupe donné d’une société donnée, on tape la commande suivante dans une invite de commande :
C:\>dsget group "CN=GRPG-XitimCorp,OU=Groupes,DC=xitim,DC=com" -members -s srv-2003 |dsget user -samid -loscr -s srv-2003>c:\export.txt
Remarquez que l’on renvoie le résultat de la commande dans un fichier texte export.txt qu’on écrit à la racine de C:\. Cela évite un potentiel remplissage massif et illisible de votre output DOS et vous permettra au besoin de vous servir des données du fichier ainsi exporté pour ensuite les importer – pourquoi pas – dans un fichier CSV à tabulations…
Autre exemple, pour savoir les utilisateurs qui ont un répertoire de base et dont le compte est désactivé on tape :
C:\>dsget group "CN=GRPG-XitimCorp,OU=Groupes,DC=xitim,DC=com" -members -s srv-2003 |dsget user -samid -hmdir -disabled -s srv-2003>c:\export2.txt
Dernier exemple, pour récupérer tous les noms, prénoms et bureaux de chaque employé d’une société, on tape la commande suivante :
dsget group "CN=GRPG-XitimCorp,OU=Groupes,DC=xitim,DC=com" -members -s srv-2003 |dsget user -fn -ln -office -s srv-2003>c:\export3.txt
Comment fonctionnent ces commandes ?
dsget group récupère la liste des membres du groupe choisi dans une arborescence d’OU de l’annuaire LDAP. Cette liste est redirigée à dsget user (via le pipe) qui récupère à son tour les informations en y ajoutant des arguments Active Directory.
Voici un panel non exhaustif d’arguments quasi indispensables dans l’exploitation quotidienne…
| Argument | Utilité |
|---|---|
| s [serveur] | spécifie un serveur d'annuaire sur lequel effectuer la recherche |
| dn | renvoie le chemin complet de l'utilisateur |
| fn | renvoie le prénom de l'utilisateur |
| ln | renvoie le nom de l'utilisateur |
| display | renvoie le nom affiché des contacts |
| renvoie l'adresse e-mail | |
| samid | renvoie le nom d'ouverture de session |
| sid | renvoie le SSID du compte |
| hmdir | renvoie le chemin du dossier de base |
| hmdrv | renvoie la lettre associée au chemin du dossier de base |
| office | renvoie le numéro de bureau |
| tel | renvoie le numéro de téléphone |
| disabled | indique les comptes désactivés |
Modifier Active Directory
Avec les exemples ci-dessous, on ajoute un utilisateur et/ou une machine à un groupe spécifié. Bien évidemment, on pourrait ajouter 1000 personnes ou ordinateurs d’un coup et utiliser des wildcards pour pousser l’automatisation un cran plus loin. Notez que pour modifier votre annuaire, ces commandes seront une base de travail fondamentale, afin de créer, notamment, des groupes dynamiques.
Exemple : ajout de l’utilisateur john doe au groupe zorro
C:\>dsquery user "CN=john doe,OU=Test,DC=xitim,DC=com" | dsmod group "CN=zorro,OU=Test,DC=xitim,DC=com" -addmbr dsmod réussi:CN=zorro,OU=Test,DC=xitim,DC=com
Exemple : ajout de la machine VM-XPSP2 au groupe zorro
C:\>dsquery computer "CN=VM-XPSP2,OU=Test,DC=xitim,DC=com" | dsmod group "CN=zorro,OU=Test,DC=xitim,DC=com" -addmbr dsmod réussi:CN=zorro,OU=Test,DC=xitim,DC=com
Pour en savoir plus, je vous invite à consulter les pages dédiées de DSGET et DSQUERY sur le site de Microsoft.
Articles sur le même thème :
- Effectuer une délégation de contrôle sur une unité d’organisation avec Active Directory 2003
- Installer Active Directory sous Windows Server 2008 R2
- Trop d’objets Active Directory à afficher dans une Unité d’Organisation…
- Remettre en état Active Directory 2003 par une restauration non-authoritative
- Utiliser vSphere PowerCLI pour interagir sur une machine virtuelle


