Blog ENI : Toute la veille numérique !
-25€ dès 75€ sur les livres en ligne, vidéos... avec le code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. PowerShell
  3. Manipulation d’annuaires
Extrait - PowerShell Fonctionnalités avancées (2e édition)
Extraits du livre
PowerShell Fonctionnalités avancées (2e édition) Revenir à la page d'achat du livre

Manipulation d’annuaires

Introduction

Un service d’annuaire est un élément central dans un système d’information. Il identifie, authentifie et regroupe un grand nombre d’objets. On y retrouve notamment l’identité numérique des utilisateurs, des ordinateurs et des serveurs.

Des annuaires, il en existe plusieurs, mais le plus connu de tous est sans doute Active Directory (AD), renommé Active Directory Domain Services (ADDS) depuis Windows Server 2008. Il est apparu avec Windows Server 2000. On le retrouve même dans les plus petites structures (moins de 20 employés).

ADDS dispose de fonctionnalités complémentaires, outre celles de base. On retrouve notamment la capacité d’administrer de manière centrale un grand nombre de postes et d’utilisateurs à travers des objets appelés stratégies de groupe ou Group Policy Objects (GPO). Il est également possible de créer des groupes d’utilisateurs ou d’ordinateurs pour faciliter la gestion des droits à travers le réseau d’entreprise.

ADDS est une fonctionnalité très complète, mais aussi gourmande en termes de temps d’administration. Pour simplifier cela, il est nécessaire de connaître un raccourci qui réduit les actions répétitives et sans plus-value. Par exemple, créer un utilisateur : que l’on en crée...

Module Active Directory

Le module Active Directory est apparu sous Windows Server 2008 R2. Il contient deux éléments : un fournisseur (provider) permettant ainsi d’explorer l’arborescence de l’annuaire comme un système de fichiers et un jeu de commandes PowerShell permettant d’administrer l’ensemble des fonctionnalités de l’ADDS et l’AD LDS (Active Directory Lightweight Domain Services).

Cette section couvre seulement les principes de base du module. Il s’agit ici de vous donner des bases et de montrer la plus-value qu’a PowerShell sur l’administration d’annuaires.

1. Prérequis

Le module interroge le service web Active Directory (Active Directory Web Services). Ce dernier est présent par défaut sous Windows Server 2008 R2 et les versions ultérieures. Si jamais votre infrastructure est exclusivement composée de Windows Server 2008, vous ne pourrez pas utiliser ce service. Historiquement, il était possible d’installer ce service sur ce système d’exploitation, mais Microsoft ne met plus à disposition l’installateur en téléchargement. Ce qui est normal étant donné que Windows Server 2008 n’est plus supporté depuis plusieurs années.

Par défaut, le module Active Directory est disponible à l’installation du rôle ADDS (sauf pour Windows Server 2008 bien entendu). Il existe une possibilité d’installer ce module sur les postes clients Windows. Pour cela, on doit télécharger et installer les Remote Server Administration Tools (RSAT).

Pour administrer les contrôles de domaine sous 2008 à travers Active Directory Management Gateway Service, on doit passer soit par les RSAT d’un poste client, soit par Windows Server 2008 R2 minimum disposant du module PowerShell. Pour installer ce module de manière autonome sur un serveur, il est possible d’utiliser la commande Install-WindowsFeature RSAT-AD-PowerShell.

Une fois le module disponible, on peut commencer à l’utiliser. Si la découverte automatique des modules est désactivée, on doit au préalable importer le module :

PS > Import-Module ActiveDirectory 

Pour connaître les commandes contenues dans le module, on utilise encore et toujours la commande Get-Command...

ADSI

1. Présentation d’ADSI

ADSI (Active Directory Service Interfaces) est une interface de programmation basée sur la technologie COM, intégrée au framework .NET. Elle a été créée par Microsoft pour homogénéiser l’interaction avec plusieurs types d’annuaires : base de comptes locaux SAM (Security Account Manager), LDAP (Lightweight Directory Access Protocol, utilisé par Active Directory), NDS (Novell Netware Directory Services) et IIS. Chaque interaction est gérée par des fournisseurs de service (aussi appelés monikers en anglais). Il est alors possible de spécifier à ADSI le fournisseur de service en fonction de l’annuaire à contacter. Il n’est donc plus nécessaire de savoir comment interagir avec chaque annuaire, il suffit de savoir comment fonctionne chaque interface sous ADSI.

2. Confusion avec Active Directory

On pense souvent qu’ADSI n’est utilisable qu’avec l’annuaire Active Directory et c’est en partie dû à leur dénomination commune. Il faut savoir que l’API ADSI a fait son apparition sous Windows NT 4.0, alors que l’annuaire Active Directory est apparu pour la première fois sous Windows Server 2000.

Pour être au plus juste dans la terminologie, on parle d’Active Directory sur les systèmes antérieurs à Windows Server 2008. Passée cette version, on parle alors d’Active Directory Domain Services (ADDS).

3. Encore utile aujourd’hui ?

Depuis sa création, l’API ADSI n’a que très peu évolué. Toutefois, elle reste présente, même dans les systèmes les plus récents comme Windows 10 et Windows Server 2016.

L’API a été portée sur PowerShell Core mais est seulement disponible sous Windows. Elle n’est pas compatible en environnement Linux ou macOS.

Quels avantages peut-on tirer de l’utilisation de l’API ADSI ? Pour des traitements du quotidien, l’utilisation du jeu de commandes Active Directory est largement suffisante. Mais pour cela, encore faut-il pouvoir l’utiliser. Le module Active Directory n’est utilisable qu’à partir d’un Active Directory sur Windows Server 2008 R2 (voire 2008). Il est donc tout à fait opportun...

ADSIPS

ADSIPS est un module communautaire créé par François-Xavier Cat, MVP francophone depuis plusieurs années. Sa motivation première a été de s’affranchir du module Active Directory et de pouvoir utiliser ADSIPS sur n’importe quel système d’exploitation Windows et vers n’importe quel domaine.

Le code source du projet est disponible librement sur la plateforme GitHub : https://github.com/lazywinadmin/AdsiPS

Pour en apprendre davantage sur ADSI et connaître différentes syntaxes ou modes de fonctionnement, jetez un œil au code. C’est une véritable source d’inspiration.

Lorsque vous serez à l’aise avec ADSI, vous pourrez même participer à la vie du module en apportant votre pierre à l’édifice, tout comme nous l’avons fait en ajoutant une modeste contribution au projet.

Sinon, il est tout à fait possible de se contenter de l’utiliser en téléchargeant le module directement depuis la PowerShell Gallery :

PS > Install-Module ADSIPS -Force