Powershell : Désactiver les comptes ordinateurs AD non connectés depuis 60 jours
30 juillet 2018
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]