Export AD avec attributs étendus

Suite à mon article Powershell, « Suppression automatique de Machine dans un AD » , je vous propose encore un nouveau petit script.

L’export AD avec attributs étendus !

Quand je parle d’attribut étendus, il s’agit d’informations supplémentaires que nous n’avons par conséquent pas avec un simple export (LastLoginDate, DistinguishedName, etc.).

##########################################################
# Author      : Christian Sueur (Contact@christiansueur.com)
# # Update Date : 20191122 By Christian.sueur
# # Comment     : Create a CSV from AD Computer list
# #               Format-table : operating system, last connection, etc.
# #
# ##########################################################


#Import du module AD
Import-Module ActiveDirectory

#Variable Definition
$dom = "myDom.com"
$MyOU = "OU=computers,OU=FR,DC=myDom,DC=com"

Get-ADComputer -Server $dom -SearchBase $MyOU -Properties * -filter * | Export-Csv C:\temp\test\export.csv -NoTypeInformation -Encoding UTF8

Suppression automatique de Machine dans un AD

Depuis quelques temps, je me suis remis à l’écriture de script en Powershell afin d’automatiser les actions dans un AD.

Voici donc un script permettant la suppression automatique de machines dans l’AD depuis une liste présentent dans un fichier texte.

##########################################################
# Author      : Christian Sueur (Contact@christiansueur.com)
# # Update Date : 20191122 By Christian.sueur
# # Comment     : Delete all computer from your "c:\temp\import.txt" file
# ##########################################################


#Import du module AD
Import-Module ActiveDirectory

# Importation des ordinateur depuis le fichier CSV spécifié
$computer = Get-Content C:\temp\import.txt
# Suppression de l'ordinateur 
foreach($ADComputer in $computer) 
{ 
    $Comp = $ADComputer
    echo $Comp #pour tests et informations ;)
    try{
        Get-ADComputer $Comp | Remove-ADComputer -Confirm:$false
    }
    catch {
        echo $Comp >> C:\temp\non_present.txt
    }
}

Comment ça marche ?

Le script va aller lire ligne par ligne les noms de machine présentes dans le fichier C:\temp\import.txt, puis va ajouter les valeurs dans une variable.

Exemple de fichier import.txt

Nom_de_machine1
Nom_de_machine2
Nom_de_machine3

Nous allons ensuite simplement prendre les valeurs une à une de la variable et tester si la machine est présente dans l’AD avec un Get-ADComputer.

Si la machine est présente on applique un Remove-ADComputer afin de la supprimer sinon on ajoute l’information dans un fichier texte afin d’avoir une visibilité sur les machines non présentes (log).