Supprimer toutes les versions de Java : Un guide de script PowerShell

Si vous avez besoin de trouver des utilisateurs de l’Active Directory (AD) dans votre domaine, la commande PowerShell Get-Aduser est là. Les comptes utilisateur sont attribués à des employés, des comptes de service et d’autres ressources. Avant même de vous en rendre compte, les comptes d’utilisateurs AD deviennent difficiles à gérer.

En utilisant la cmdlet Get-AdUser PowerShell, vous pouvez obtenir des utilisateurs AD de nombreuses manières différentes. Dans cet article, vous allez apprendre quelques-unes de ces méthodes et comment utiliser cette cmdlet pratique.

Gérez et générez des rapports sur l’Active Directory, Exchange et Microsoft 365 avec ManageEngine ADManager Plus. Téléchargez l’essai gratuit !

Prérequis

Pour utiliser les exemples de cmdlet Get-AdUser couverts dans cet article, assurez-vous de disposer des éléments suivants :

Recherche d’un compte utilisateur avec Identity

Le cmdlet Get-AdUser a un but et un seul but. Il existe pour fournir autant d’options que possible pour trouver des utilisateurs de domaine. Si vous connaissez déjà le nom d’utilisateur à rechercher, vous pouvez utiliser le paramètre Identity.

Le paramètre Identity vous permet de fournir l’un des quatre identifiants différents.

  • distinguishedName (DN)
  • samAccountName
  • GUID
  • SID

Vous pouvez voir ci-dessous quelques exemples de recherche d’un compte utilisateur à l’aide de différents identifiants. Remarquez qu’il renvoie un ensemble d’attributs AD pour chaque compte utilisateur.

PS> Get-ADUser -Identity abertram


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local



PS> Get-ADUser -Identity 'S-1-5-21-4117810001-3432493942-696130396-3142'


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local



PS> Get-ADUser -Identity 'CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local'


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local

L’attribut le plus courant à utiliser pour le paramètre Identity sera l’attribut samAccountName.

Le Filtre Get-ADUser

Si vous avez besoin de trouver plus d’un utilisateur de domaine ou si vous ne connaissez pas un identifiant, utilisez un filtre. Pour ce faire, vous avez à votre disposition quelques paramètres appelés Filter et LDAPFilter.

Chaque paramètre de filtre permet à un utilisateur de fournir une instruction conditionnelle. Lorsque cette condition est remplie, Get-AdUser renverra les comptes utilisateur correspondant à cette condition.

Le paramètre le plus courant pour filtrer les utilisateurs est Filter. Le paramètre Filter vous permet de créer des conditions qui ressemblent à la syntaxe de filtre de la commande PowerShell Where-Object.

Le paramètre Filter utilise une langue appelée syntaxe de langage d’expression PowerShell. Cette langue est un peu comme celle que vous utiliseriez avec Where-Object, mais pas tout à fait. Pour une explication de l’utilisation de ce filtre, consultez cet article sur les filtres Active Directory et LDAP.

Voici un exemple d’utilisation du paramètre Filter. Cet exemple spécifie un attribut AD (givenName dans cet exemple) et définit une condition. Le filtre permet uniquement de renvoyer les utilisateurs ayant un givenName égal à Adam.

PS> Get-AdUser -Filter "givenName -eq 'Adam'"


DistinguishedName : CN=ADBertram,OU=Accounting,DC=mylab,DC=local
Enabled           : False
GivenName         : Adam
Name              : ADBertram
ObjectClass       : user
ObjectGUID        : 8ec5e2a8-1fda-42cb-9406-b1e6356dd457
SamAccountName    : ADBertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3163
Surname           : Bertram
UserPrincipalName : ADBertram

DistinguishedName : CN=Hughes\, Adam,CN=Users,DC=mylab,DC=local
Enabled           : True
GivenName         : Adam
Name              : Hughes, Adam
ObjectClass       : user
ObjectGUID        : 96778db3-3dbd-4b83-9183-db111caa2791
SamAccountName    : ahughes
SID               : S-1-5-21-4117810001-3432493942-696130396-38201
Surname           : Hughes
UserPrincipalName :

L’autre option de filtrage est LDAPFilter, qui ne sera pas couverte dans cet article. Pour plus d’informations sur le LDAPFilter et sa syntaxe, consultez cet article sur les filtres Active Directory et LDAP.

Utilisation de Get-AdUser par OU

En fournissant une identité ou un filtre, PowerShell renvoie tous les utilisateurs du domaine correspondant aux critères. Il ne se limite pas à l’OU. Vous devrez configurer un « filtre » pour Get-AdUser afin de filtrer par OU en utilisant Get-Aduser -SearchBase <OU>.

L’utilisation du paramètre SearchBase vous permet de commencer la recherche d’un compte utilisateur dans une OU spécifique. Le paramètre SearchBase accepte le nom distinctif (DN) d’une OU.

Par exemple, vous pourriez trouver tous les utilisateurs dans l’OU MyUsers comme indiqué ci-dessous. L’utilisation du Filter de * signifie faire correspondre tous les comptes d’utilisateur.

PS> Get-ADUser -Filter * -SearchBase 'OU=MyUsers,DC=domain,DC=local'

Peut-être que vous souhaitez uniquement trouver des comptes d’utilisateurs dans une seule OU et exclure toutes les sous-OUs. Dans ce cas, vous pourriez utiliser les paramètres SearchBase et SearchScope. Le paramètre SearchScope définit à quelle profondeur dans la hiérarchie de l’OU vous souhaitez effectuer la recherche.

Par exemple, si vous souhaitez trouver tous les comptes d’utilisateurs dans une OU et toutes les sous-OUs, vous utiliseriez 1 comme valeur pour le paramètre SearchScope. Si vous souhaitez effectuer une recherche à travers toutes les sous-OUs, vous utiliseriez 2.

Voici un exemple de recherche de comptes d’utilisateurs dans l’OU MyUsers et toutes les sous-OUs en dessous.

PS> Get-ADUser -Filter * -SearchBase 'OU=MyUsers,DC=domain,DC=local' -SearchScope 2

Utilisation de crédentials alternatifs

Par défaut, Get-AdUser s’exécutera dans le contexte de l’utilisateur connecté. Mais vous pouvez également fournir des informations d’identification alternatives en utilisant le paramètre Credential.

Pour vous authentifier avec des informations d’identification alternatives, créez un objet PSCredential en utilisant Get-Credential comme indiqué ci-dessous:

PS> $cred = Get-Credential
PS> Get-AdUser -Filter * -Credential $cred

Pour plus d’informations sur les informations d’identification, consultez l’utilisation de la cmdlet PowerShell Get-Credential et tout ce qui concerne les informations d’identification.

Le paramètre de propriétés Get-AdUser de PowerShell

Lorsque vous exécutez Get-AdUser, vous ne verrez immédiatement que quelques attributs sont retournés. Vous constaterez également que même lorsque la sortie est redirigée vers Select-Object -Property *, tous les attributs ne sont toujours pas retournés.

Pour utiliser PowerShell afin d’obtenir les attributs de l’utilisateur AD, utilisez le paramètre Property. Ce paramètre accepte un ou plusieurs attributs délimités par des virgules à afficher avec la sortie.

Ci-dessous, vous trouverez un exemple d’utilisation de Get-AdUser pour trouver toutes les propriétés de tous les comptes d’utilisateurs avec un givenName de Adam. La sortie est tronquée, mais vous verrez d’autres attributs familiers tels que l’adresse e-mail, les propriétés de mot de passe, et plus encore.

PS> Get-AdUser -Filter "givenName -eq 'Adam'" -Properties *


AccountExpirationDate                :
accountExpires                       : 9223372036854775807
AccountLockoutTime                   :
AccountNotDelegated                  : False
AllowReversiblePasswordEncryption    : False
AuthenticationPolicy                 : {}
AuthenticationPolicySilo             : {}
BadLogonCount                        : 0
badPasswordTime                      : 0
badPwdCount                          : 0
CannotChangePassword                 : False
CanonicalName                        : mylab.local/Accounting/ADBertram
........

Gérez et rapportez sur Active Directory, Exchange et Microsoft 365 avec ManageEngine ADManager Plus. Téléchargez la version d’essai gratuite !

Résumé

La cmdlet Get-ADUser est une commande pratique pour trouver des comptes d’utilisateurs AD, créer des rapports, et plus encore. C’est une excellente façon de récupérer des utilisateurs AD d’un domaine. Pour une décomposition de Get-AdUser et de tous les paramètres, lisez le contenu d’aide en exécutant Get-Help Get-AdUser.

Pour de nombreux autres exemples d’utilisation de Get-AdUser, consultez l’article de blog Active Directory Scripts à foison : Venez les obtenir !.

Source:
https://adamtheautomator.com/get-aduser/