Vous cherchez un moyen rapide de créer un rapport Active Directory (AD) à l’aide de PowerShell? Vous avez frappé à la bonne place! Dans cet article, vous apprendrez à créer des rapports personnalisés de comptes d’utilisateurs dans votre environnement AD à l’aide de l’applet de commande Get-ADObject
.
Imaginez que vous travaillez dans une entreprise en démarrage et apprenez que l’entreprise a été financée par des investisseurs pour développer l’entreprise en embauchant de nouvelles personnes pour plusieurs postes., Votre gestionnaire vous demande de lui fournir un rapport sur le nombre de têtes pour chaque bureau afin de s’assurer que le lieu de travail a suffisamment d’espace de bureau.
Normalement, vous pouvez afficher manuellement les comptes AD à l’aide de la console d’application Active Directory Users and Computers (ADUC) installée sur votre ordinateur de bureau. Cependant, l’utilisation d’ADUC prend en moyenne une minute par nouvel employé pour examiner les informations de chaque compte AD.,
Vous recherchez rapidement sur Internet certaines options et découvrez que vous pouvez automatiser la collecte des données du rapport AD à l’aide d’une applet de commande PowerShell appeléeGet-ADObject
. Dans cet article, vous apprendrez ce que fait l’applet de commande PowerShellGet-AdObject
et comment utiliser correctement cette applet de commande PowerShell AD pratique pour automatiser la création de rapports.
Table des Matières
Prérequis/conditions d’
Cet article va être un pas à pas à l’aide de Get-ADObject
., Si vous prévoyez de suivre, assurez-vous que vous disposez des conditions préalables suivantes:
- Connecté à un PC Windows 10 joint à un domaine en tant qu’utilisateur disposant des droits d’interroger les utilisateurs AD
- Dans un environnement Active Directory Windows Server 2016 ou supérieur. Le laboratoire avec lequel vous travaillerez dans cet article s’appelle mylab.local.
- Remote Server Administration Tools (RSAT) package
Conseil rapide: Si vous n’avez pas installé RSAT et que vous utilisez la dernière version de Windows 10, vous pouvez l’installer rapidement à l’aide de la commande PowerShell
Install-WindowsFeature -Name RSAT-AD-PowerShell
.,
Get-ADObject: Ses options et paramètres
L’objectif principal de l’applet de commandeGet-ADObject
est de se connecter à un contrôleur de domaine AD ou à un serveur Lightweight Directory Service (LDS) et de renvoyer des informations sur divers objets Active Directory.
Pour interroger des objets AD, l’applet de commandeGet-ADObject
possède un certain nombre de paramètres vous permettant de vous connecter à différents contrôleurs de domaine, de rechercher un catalogue global, de vous authentifier via d’autres informations d’identification et également de spécifier des filtres LDAP et de limiter les objets renvoyés par,
Notez que, par défaut, la balise
Get-ADObject
applet de commande retournera un seul ensemble de 1000 objets AD. La meilleure façon de remplacer cette configuration est d’utiliser le paramètreResultSetSize
spécifiant le nombre maximum d’objets à renvoyer. Si vous souhaitez recevoir tous les objets, définissez ce paramètre à $Null (valeur null). Ensuite, vous pouvez utiliser Ctrl+C pour arrêter la requête et le retour des objets.,
Pour plus d’informations sur le Get-ADObject
‘s paramètres, consultez le Get-ADObject
documentation d’aide.
Learning Project Outline
Cet article vous apprendra l’applet de commande PowerShellGet-ADObject
en l’appliquant à un scénario réel. Vous apprendrez en abordant le scénario expliqué dans les paragraphes d’introduction.
Le Scénario
Dans cet article, vous allez apprendre à utiliser Get-ADObject
pour générer deux rapports à envoyer à votre gestionnaire., Le premier rapport décomposera tous les comptes d’utilisateurs de chaque département. Le patron aimerait des fichiers CSV distincts pour chaque département. La deuxième tâche interrogera tous les comptes d’utilisateurs désactivés dans une OU spécifique et ses OU enfants.,
d’ici la fin de l’article, vous serez capable de générer des fichiers CSV qui ressemble à la suivante:
L’ANNONCE de l’Environnement
L’Active Directory de l’unité organisationnelle (UO) de la structure vous allez travailler avec dans cet article ressemble à ci-dessous., Vous pouvez voir que nous avons un département parent avec trois enfants appelés Comptabilité, Marketing et informatique. À l’intérieur de chacun de ces enfants se trouvent deux petits-enfants appelés Utilisateurs et ordinateurs.
- Département (UO)
– de la Comptabilité (UO)
Utilisateurs
– Ordinateurs
– Marketing (Nested UO)
Utilisateurs
– Ordinateurs
– IL (Nested UO)
Utilisateurs
– Ordinateurs
Raccourci: Vous pouvez construire ces unités d’organisation avec la balise
New-ADOrganizationalUnit
applet de commande PowerShell. Pour qu’un script fonctionne rapidement, consultez le script Create-OU-Structure.ps1.,
Vous travaillerez également avec des dizaines de comptes d’utilisateurs AD différents situés à l’intérieur de chacune des unités d’exploitation des utilisateurs, comme indiqué ci-dessous. Ces noms ont été choisis au hasard.
- la Comptabilité (accountant_user1-5)
- Marketing (market_user_user1-5)
- (it_user1-5)
Raccourci: Si vous souhaitez créer rapidement ces comptes d’utilisateurs à l’intérieur de ladite unités d’organisation, de télécharger et d’exécuter le Remplir-AD_Accounts.ps1 script.,
Création de rapports Active Directory à l’aide de Get-ADObject
Suffisamment d’introduction et d’informations générales surGet-ADObject.
Commençons enfin à apprendre comment cette applet de commande PowerShell fonctionne dans le monde réel!
Dans ce premier exemple, vous êtes chargé de fournir à votre gestionnaire un fichier CSV avec un rapport pour tous les comptes d’utilisateurs qui existent dans les unités de service Comptabilité, Marketing et Informatique.,
Comprendre le Paramètre Filter
Le seul paramètre obligatoire de la balise Get-ADObject
applet de commande PowerShell est Filter
. C’est un paramètre est une façon de limiter le nombre d’objets retournés. Comme il s’agit d’un paramètre obligatoire, vous devez le définir même si vous souhaitez renvoyer tous les objets en utilisant un caractère générique (*
). Cela indique à Get-ADObject
de renvoyer tous les objets.
L’exemple le plus simple d’utilisation du paramètreFilter
consiste à renvoyer tous les objets d’un domaine AD entier comme ci-dessous.,
PS51> Get-ADObject -Filter *
Vous verrez le paramètreFilter
utilisé à la fois pour renvoyer tous les objets et pour limiter la portée des objets renvoyés tout au long de cet article.
Pour plus d’informations sur le
Filter
paramètre de la syntaxe, runGet-Help about_ActiveDirectory_Filter
dans la console PowerShell.
Limiter la portée de la recherche en utilisant le paramètre SearchBase
L’exemple avec lequel vous travaillez est un cas d’utilisation parfait pour le paramètreGet-ADObject
‘sSearchBase
., Le paramètreSearchBase
vous permet de limiter la requête de recherche et donc les objets renvoyés viaGet-ADObject
en limitant la portée à une OU particulière.
En limitant la portée, cela réduit le temps nécessaire à l’exécution deGet-ADObject
en excluant les autres unités d’exploitation dans AD et en ciblant uniquement l’unité d’exploitation spécifique qui est pertinente pour récupérer les données dont vous avez besoin.
Dans cet exemple, extrayez tous les utilisateurs d’AD dans l’OU du département parent et toutes les OU des enfants comme ci-dessous. Cela renverra tous les utilisateurs dans l’unité d’organisation du département et dans toutes les unités d’organisation enfants.,
PS51> Get-ADObject -Filter * -SearchBase 'OU=Department,DC=mylab,DC=local'
En utilisant le paramètre Filter
À partir de maintenant, vous pouvez interroger tous les objets utilisateur dans l’unité d’organisation du département et toutes les unités d’organisation enfants. Mais ce n’est pas nécessaire à ce stade. Au lieu de cela, sortons d’abord tous les utilisateurs de la comptabilité. Une façon de le faire est d’utiliser la balise Filter
paramètre plutôt que de simplement fournir une valeur générique.
afin De limiter les résultats, utilisez la balise Filter
valeur Department -eq 'Accounting'
., Cela limite les résultats aux seuls objets de l’unité d’organisation du département qui ont un attribut AD department défini sur Comptabilité.
Vous pouvez voir ci-dessous que vous stockez tous les objets dans la variable$accounting_users
. Cela sera utilisé plus tard.
PS51> $accounting_users = Get-ADObject -SearchBase 'OU=Department,DC=mylab,DC=local' -Filter {Department -eq "Accounting"}
Sortie d’objets AD dans un fichier CSV
Maintenant que $accounting_users
contient tous les objets applicables, vous ne pouvez canaliser que les Name
et Department
propriétés pour chaque objet à l’applet de commande Export-Csv
., Cette applet de commande crée un nouveau fichier CSV et stocke chaque objet AD sous forme de ligne.
Vous devriez maintenant avoir un fichier CSV appelé report_accounting_users.csv sur votre bureau ressemble à la capture d’écran ci-dessous.
la Collecte de l’Autre les Objets Utilisateur
Maintenant que vous connaissez les bases de comment utiliser Get-ADObject
pour trouver des utilisateurs AD, étendre que de trouver les objets utilisateur pour les autres ministères. Vous utiliserez le même concept général qu’auparavant.,
Tout d’abord, trouvez tous les utilisateurs d’annonces dans le bureau de San Francisco.
Ensuite, trouvez tous les utilisateurs qui travaillent dans le bureau en Floride. Cet exemple est un peu différent car vous utilisez les propriétés calculées de l’applet de commande Select-Object
. Cela vous permet de transformer la propriété de l’objet nom de simplement st
qui vient de Get-ADObject
pour un plus descriptif State
.,
Enfin, de recueillir tous les utilisateurs. Cette fois, au lieu d’utiliser l’attribut Department AD, utilisez le paramètre Filter
pour trouver tous les objets dont le nom commence par lui.
Remarque: au Lieu d’utiliser
objectClass -eq 'user'
dans l’exemple précédent, vous pouvez également utilisé la baliseGet-AdUser
applet de commande.,
Trouver des Comptes Désactivés avec le Filtre LDAP
Dans l’exemple précédent, vous avez utilisé la balise Filter
paramètre pour limiter les objets retournés par Get-ADObject
. Une autre façon de le faire est d’utiliser le paramètre LDAPFilter
. Ce paramètre effectue la même tâche mais vous permet de spécifier un filtre via une chaîne de recherche de requête LDAP., Le paramètreLDAPFilter
est considéré comme une option plus avancée pour rechercher Active Directory.
Créons maintenant un rapport pour trouver tous les utilisateurs désactivés dans votre organisation en utilisant les paramètresLDAPFilter
etSearchBase
pour cibler une unité d’organisation spécifique.
Le paramètre useraccountcontrol:1.2.840.113556.1.4.803:=2 est un attribut AD spécifié pour tous les utilisateurs désactivés dans la base de données NTDS Active Directory. C’est un moyen pour AD de signaler les comptes qui ne sont pas actifs (l’ouverture de session est désactivée)., Voici d’autres exemples de requêtes LDAP que vous pourriez trouver utiles.
La commande ci-dessous exécute le paramètre de filtre LDAP utilisé pour afficher uniquement les utilisateurs désactivés, puis crée un rapport à l’aide de l’applet de commandeExport-CSV
comme vous l’avez fait précédemment.
Le Résultat de Fin
Vous devriez maintenant avoir cinq fichiers CSV sur votre bureau prêt pour votre manager!,
Résumé
Dans cet article, vous avez appris à rechercher Active Directory à l’aide de l’applet de commande PowerShellGet-ADObject
.
Quelle est la prochaine étape?
Pour approfondir ce que vous avez appris, passez ce processus de génération de rapports AD au niveau supérieur en exportant peut-être les données vers une base de données. Une fois dans une base de données, vous pouvez avoir accès aux données du rapport AD à l’aide d’un site Web personnalisé ou d’une application telle que Microsoft SharePoint. Ce n’est qu’une idée. Il existe d’innombrables autres!,
La capacité de rechercher Active Directory est une compétence fondamentale nécessaire dans de nombreuses organisations et qui vous permettra, à vous et à votre équipe, d’économiser des heures de temps.
Pour en savoir plus
- Scripts Active Directory à Gogo: Venez le chercher!
- la Documentation de Microsoft