Powershell : Désactiver les comptes ordinateurs AD non connectés depuis 60 jours

30 juillet 2018 Non Par Anthony
Powershell : Désactiver les comptes ordinateurs AD non connectés depuis 60 jours

Ce script a pour objectif de nettoyer la base des ordinateurs Active Directory en désactivant les machines qui ne sont pas connecté à l’Active Directory depuis plus de 60 jours.

A savoir que vous pouvez le modifier pour :

  • Prendre en compte un délai supérieur ou inférieur à 60 jours.
  • Supprimer un compte ordinateur ou de le désactiver.
  • Définir des machines qui ne doivent pas être impactées (avec le filtre -and (Name -notlike « SRV* ») indiquant que les machines dont le nom commence par « SRV » ne seront pas pris en compte), modifier la variable $exc = « SRV* »

ATTENTION : Vous devez installer la fonctionnalité « Active Directory module for Windows Powershell »

Afin d’utiliser ce code, créez un fichier .ps1 et copiez-collez y le code ci-dessous :

[sourcecode language= »plain »]

$exc = "SRV*"
$then = (Get-Date).AddDays(-60) # The 60 is the number of days from today since the last logon.

Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $then -and (Name -notlike $exc) } | FT Name,lastLogonDate

# If you would like to Disable these computer accounts, uncomment the following line:
#Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $then -and (Name -notlike $exc) } | Set-ADComputer -Enabled $false

# If you would like to Remove these computer accounts, uncomment the following line:
# Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $then -and (Name -notlike $exc) } | Remove-ADComputer

[/sourcecode]