> Tech > Manipuler les objets Active Directory

Manipuler les objets Active Directory

Tech - Par iTPro - Publié le 24 juin 2010
email

 Avant de rentrer dans le vif du sujet, une petite parenthèse : la barre de titre de la fenêtre de la console en ligne de commande. Rien de particulier à voir ? Peut-être pas ! En effet, on peut y lire le nom de la machine sur

laquelle est lancée notre console… rien de bien particulier…

Cependant à côté, nous avons la portée de notre console : toutes les actions faites à partir de notre console ne peuvent cibler que des objets dans cette portée (un conteneur Active Directory). La portée peut être définie grâce à la variable PowerShell « $AdminSession ADSettings ». En plus de pouvoir restreindre notre portée par exemple à une unité organisationnelle (OU) particulière, nous pouvons définir certaines propriétés très utiles. 

Vous l’aurez compris, cette variable nous offrira une sécurité intéressante pour ne pas modifier des objets par erreur dans une autre OU mais aussi pour diriger nos requêtes vers les serveurs de notre choix. Fin de la parenthèse ! Nous allons enfin pouvoir nous intéresser aux utilisateurs, aux groupes et de manière générale aux « Recipients ». Un « recipient » est un objet Active Directory géré par Exchange: c’est donc un terme générique.

Aucun Cmdlet ne déroge à la règle de nomenclature. Ainsi nous avons un « Get-Recipient » pour récupérer tous nos objets ! Bien sûr, n’oublions pas de consulter l’aide sur cette Cmdlet avec la commande « Get-Help Get-Recipient –full ». Avec cette Cmdlet, nous récupérons l’ensemble des objets gérés par Exchange. Des Cmdlets dédiées à tous ces types existent ! Le but de cet article n’est pas de les lister mais de savoir les utiliser. Pour cela, quoi de mieux qu’un cas concret ? Mettons-nous d’abord en condition…

En tant qu’administrateurs Exchange de notre société, nous devons créer des comptes pour des nouveaux arrivants ! Leur nom, prénom et département sont dans un fichier au format CSV. Nous allons donc créer les comptes Active Directory ainsi que les boîtes aux lettres à l’aide de la Cmdlet « New-Mailbox ». Cette dernière fait l’action de créer le compte Active Directory puis la boîte aux lettres. Il est à distinguer de « Enable-Mailbox » qui crée la boîte aux lettres pour un utilisateur déjà existant.

La première étape est de créer le mot de passe temporaire de ces futurs nouveaux utilisateurs !

$strPass = ConvertTo-SecureString "P@ssw0rd"
-asplaintext –force

La variable « $strPass » contient donc le mot de passe crée via le Cmdlet “ConvertTo-Secure String” qui retourne une chaîne de caractères protégée en mémoire. En effet, PowerShell est capable de sécuriser les chaînes de caractères nativement. Nos nouveaux utilisateurs se con nec teront donc avec le mot de passe « P@ssw0rd ».

Le nom du département correspondra à l’OU dans laquelle sera placé le compte utilisateur. Nous pourrions bien sûr renseigner beaucoup plus d’information mais c’est la méthode qui est importante, plus que la quantité ! Pour lire ce fichier nous avons la Cmdlet « Import- CSV » prenant comme paramètre le nom du fichier : rien de plus simple !

Nous allons ensuite utiliser ce que nous avons découvert dans le premier article, à savoir l’enchaînement de commandes avec le caractère « | » suivi de « % » qui je vous le rappelle, permet d’énumérer ici chaque ligne de notre fichier. Par conséquent, la variable « $_ » utilisée voudra successivement chaque ligne du fichier CSV et les propriétés de cet objet sont les noms des colonnes définies sur la première ligne du fichier !  

Pour chaque ligne de notre fichier CSV (et donc pour chaque futur compte Active Directory) :

1- on récupère le prénom et le nom que l’on met en majuscule afin de les ranger, séparés par un espace dans la variable « $strDisplayName ». On aura donc par exemple : « Alyssia SALIANO ».

2- Ensuite, on construit une variable « $strOU » qui sera l’OU dans laquelle créer notre utilisateur. La variable « $_ .Depart ment » sera le département de l’utilisateur (Sales, RH, Marketing, …)

3- On peut maintenant créer notre utilisateur avec sa boîte aux lettres ! La Cmdlet « New-Mailbox » demande en entrée la base de données Exchange 2007 dans laquelle créer notre boîte aux lettres ainsi que d’autres informations obligatoires dont notre mot de passe.

4- On modifie la propriété « Depart ment » de l’utilisateur grâce à la Cmdlet « Set-User ».

Petites remarques :
– à la fin de certaines lignes, nous avons écrit le caractère « ` ». Il permet d’écrire une commande sur plusieurs lignes, rien de plus !
– Aucune gestion d’erreur n’a été faite. Nous verrons cela au cours des prochains articles ! Nous savons donc, à ce stade, créer en masse des comptes utilisateurs Active Directory, leur boîte aux lettres ainsi que modifier les propriétés de ces comptes!

Nous pouvons vérifier que les comptes existent grâce aux Cmdlets « Get-User » permettant de récupérer un ou plusieurs utilisateurs et « Get-Mailbox » pour les boîtes aux lettres. De même que pour les utilisateurs, la Cmdlet « Set-Mailbox » modifie les propriétés d’une boîte aux lettres. C’est très bien de pouvoir manipuler les comptes utilisateurs mais il n’y a pas que ça… il y a aussi les groupes ! Nous allons créer toujours en ligne de commande une liste de diffusion regroupant toutes les personnes du Marketing.

A chaque fois qu’une nouvelle personne intègrera ce département, elle devra automatiquement être membre de ce groupe. Pour cela, nous allons utiliser une liste de diffusion dynamique à l’aide de la Cmdlet « New-Dynamic – Distribution Group ». Le groupe « Marketing Group » sera créé dans l’OU spécifiée par le paramètre « OrganizationalUnit ». Il contiendra tous les objets Active Directory de type « MailboxUsers » et « MailContacts » ayant comme département « Marketing ».

Remarque :
le paramètre « RecipientContainer » est le conteneur Active Directory dans lequel les objets vérifiant les conditions seront cherchés. La recherche est récursive (cherche également dans les conteneurs enfants). Maintenant que nous avons nos utilisateurs du Marketing dans un groupe, nous allons leur donner une salle de réunion qu’ils pourront réserver ! Mais avant, nous allons placer dans la salle une télévision et un vidéoprojecteur…

Car Exchange Management Shell peut aussi meubler les pièces…
Avant tout, il faut créer nos ressources télévision et vidéoprojecteur et les associer au type « Room » qui sera le type de notre salle de réunion :

Set-ResourceConfig
–ResourcePropertySchema Room/Projector,Room/TV

On peut remarquer la syntaxe : le vidéoprojecteur et la télévision sont préfixés par le type de ressource. Nous pouvons maintenant créer notre salle de réunion toujours grâce à la Cmdlet « New-Mailbox » mais cette fois en précisant le type de boîte aux lettres à créer !

New-Mailbox -database
srv-exc01\DB01
– Name ‘SalleMarketing’`
-OrganizationalUnit ‘gregdom. local/Marketing/Rooms’`
-UserPrincipalName ‘salle_marketing@greg-dom.local’`
-Room

On peut remarquer le paramètre « -Room » ajouté à notre Cmdlet. Enfin, nous allons permettre à notre salle de réunion d’accepter automatiquement les demandes de réservations avec la Cmdlet suivante : voir figure 2.

Set-MailboxCalendarSettings
SalleMarketing
–AutomateProcessing AutoAccept

Cependant nous n’avons pas encore terminé ! Nous devons meubler notre salle ! Ceci s’effectue avec la Cmdlet suivante :

Set-Mailbox
-Identity SalleMarketing
– ResourceCustom:Projector,TV

Nos personnes du Marketing peuvent maintenant réserver leur salle de réunion meublée !  

Téléchargez gratuitement cette ressource

Guide de Services Cloud Managés

Guide de Services Cloud Managés

Accélérer votre transformation digitale, protéger et sécuriser vos environnements Cloud avec les offres de support, d'accompagnement et de services managés. Découvrez le TOP 3 des Services Managés pour accompagner la transformation de vos environnements Cloud, gagner en agilité et en sécurité dans un monde d'incertitudes.

Tech - Par iTPro - Publié le 24 juin 2010