Magic Quadrant™ pour la gestion des accès privilégiés 2025 : Netwrix reconnue pour la quatrième année consécutive. Téléchargez le rapport.

Plateforme
Centre de ressourcesBlog
Comment désactiver les comptes d'utilisateurs inactifs en utilisant PowerShell

Comment désactiver les comptes d'utilisateurs inactifs en utilisant PowerShell

Mar 17, 2015

Les comptes d'utilisateurs inactifs d'Active Directory (AD) peuvent représenter un risque de sécurité pour les organisations, dans des situations telles que lorsque d'anciens employés ont encore des comptes actifs des mois après avoir quitté l'entreprise parce que les RH n'ont pas informé l'IT, ou lorsque des comptes peuvent être créés dans un but particulier mais jamais supprimés après l'événement. Quelle que soit la raison de l'existence de tels comptes, Active Directory peut rapidement devenir incontrôlable, rendant à son tour vos systèmes plus difficiles à auditer et moins sécurisés.

Module Active Directory pour PowerShell

Le module PowerShell pour Active Directory permet aux administrateurs système d'interroger Active Directory et de générer des rapports en utilisant les données résultantes. Le module AD pour PowerShell est installé par défaut sur les contrôleurs de domaine Windows Server 2012, ou alternativement vous pouvez télécharger les Remote Server Administration Tools (RSAT) for Windows 8.1 et installer le module en utilisant la commande ci-dessous.

Connectez-vous en tant qu'administrateur local, ouvrez une invite PowerShell, tapez le code ci-dessous et appuyez sur ENTRÉE pour installer le module AD pour PowerShell :

      Install-WindowsFeature RSAT-AD-PowerShell
      

Recherchez dans Active Directory les comptes inactifs

La cmdlet Search-ADAccount offre un moyen facile de rechercher dans Active Directory des comptes d'utilisateurs inactifs :

      Search-ADAccount –UsersOnly –AccountInactive
      
Image

La commande ci-dessus retourne tous les comptes inactifs. Pour restreindre les résultats à une plage horaire spécifique, vous pouvez ajouter le paramètre –TimeSpan à Search-ADAccount. Dans l'exemple ci-dessous, une variable définit la valeur pour le paramètre –TimeSpan, en utilisant l'applet de commande New-Timespan pour simplifier la saisie :

      $timespan = New-Timespan –Days 90 Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan
      

Alternatively, you can specify the –DateTime parameter to return accounts that have been inactive since a given date. In the command that follows, accounts not active since May 5th 2014 are returned:

      Search-ADAccount –UsersOnly –AccountInactive -DateTime ‘5/20/2014’
      

Pour obtenir des informations plus conviviales sur les comptes, redirigez les résultats vers la cmdlet Get-ADUser puis choisissez les colonnes à afficher dans le résultat en utilisant Select:

      Search-ADAccount –UsersOnly –AccountInactive | Get-ADuser -Properties Department,Title | Select Name,Department,Title,DistinguishedName
      
Image

Les résultats peuvent également être triés par un champ spécifié, dans cet exemple par l'attribut LastLogOnDate, qui est dérivé du LastLogonTimestamp et converti en un format lisible :

      Search-ADAccount –UsersOnly –AccountInactive | Get-ADuser -Properties Department,Title | Sort LastLogOnDate | Select Name,Department,Title,DistinguishedName
      

Il est important de noter que contrairement à l'attribut LastLogOn, LastLogonTimestamp est synchronisé entre les contrôleurs de domaine, mais peut être obsolète de 9 à 14 jours, donc vous devriez prendre cela en compte lors du traitement de vos résultats.

Une autre manière de simplifier le résultat et de compter le nombre d'utilisateurs inactifs consiste à transmettre les résultats au cmdlet Measure :

      Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan | Measure
      

Comme avec tout autre cmdlets PowerShell, les résultats peuvent être transmis à Out-GridView, ou vers un fichier délimité par des virgules afin que les résultats puissent être importés dans Excel.

      Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan | Out-GridView
      

Désactiver les comptes inactifs

Une fois que vous avez obtenu l'ensemble des résultats recherchés, il vous suffit de les transmettre à la cmdlet Disable-ADAccount comme indiqué ici pour désactiver les comptes :

      Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan | Disable-ADAccount
      

Netwrix Auditor inclut la capacité de détecter et de désactiver les comptes utilisateurs inactifs sur toutes les versions prises en charge de Windows, et les résultats sont intégrés dans la base de données, les fonctionnalités de rapport et de notification du produit de sorte que des scripts supplémentaires ne doivent pas être exécutés et maintenus séparément. Netwrix Auditor peut désactiver les comptes inactifs, définir un mot de passe aléatoire, déplacer les comptes vers une Unité Organisationnelle (OU) désignée, ou supprimer les comptes.

Il est maintenant temps de donner votre avis dans le sondage ci-dessous. Gardez à l'esprit qu'il n'y a qu'une seule réponse correcte !

Partager sur

En savoir plus

À propos de l'auteur

Asset Not Found

Russell Smith

Consultant en TI

Consultant en TI et auteur spécialisé dans les technologies de gestion et de sécurité. Russell possède plus de 15 ans d'expérience dans le domaine des TI, il a écrit un livre sur la sécurité Windows et a coécrit un texte pour la série de cours académiques officiels de Microsoft (MOAC).