====== Gestion de l'Active Directory avec PowerShell ====== ===== Introduction ===== ===== Avec le module ===== ===== Interfaces de service Active Directory ===== ==== Objectif ==== Les interfaces ADSI (Active Directory Service Interfaces) sont un ensemble d’interfaces COM utilisées pour accéder aux fonctionnalités des services d’annuaire à partir de différents fournisseurs de réseau. ADSI est utilisé dans un environnement informatique distribué pour présenter un ensemble unique d’interfaces de service d’annuaire pour la gestion des ressources réseau. Les administrateurs et les développeurs peuvent utiliser les services ADSI pour énumérer et gérer les ressources dans un service d’annuaire, quel que soit l’environnement réseau qui contient la ressource.\\ ADSI permet des tâches d’administration courantes, telles que l’ajout de nouveaux utilisateurs, la gestion des imprimantes et la localisation des ressources dans un environnement informatique distribué.\\ ==== Les avantages et les inconvénients ==== === Avantages === * Natif à la condition que les modules frameworks soient à jour * Beaucoup plus de paramètre * Résultat plus rapide === Inconvénients === * Pas de "Whatif" * Plus dur à mettre en place * Script plus long et donc une source possible d'erreur ===== ADSI vs Module ===== ==== Module ==== === Installer le module Active Directory === //Windows 10// Get-WindowsCapability -Name *RSAT* -Online | Where-Object Name -Match ActiveDirectory | Add-WindowsCapability -Online //Windows Server// Get-WindowsCapability -Name *ServerManager* -Online | Where-Object State -ne Installed | Add-WindowsCapability -Online Get-WindowsCapability -Name *ActiveDirectory* -Online | Where-Object State -ne Installed | Add-WindowsCapability -Online import-module activedirectory === Gestion des groupes === $KLADMIN = Get-ADGroup -Filter {name -like "*kladmin*"} | ForEach-Object { (Get-ADGroupMember -Identity $_.name -Recursive) | ForEach-Object { $ADUserName = $_.name Get-ADUser -Filter {name -eq $ADUserName} -Properties GivenName,Name,mail } } $KLADMIN | Where-Object Enabled -eq $true | Select-Object GivenName,Name,mail,@{n='Login'; e={$_.UserPrincipalName}} | Export-Csv -Path C:\IT\Kladmin.csv -Force -Encoding UTF8 -Delimiter ',' -NoTypeInformation