Comment créer, supprimer, renommer, désactiver et joindre des ordinateurs dans AD en utilisant PowerShell
Jul 10, 2018
Avant qu'un utilisateur puisse se connecter à un ordinateur et accéder aux ressources du réseau et basées sur le domaine, cet ordinateur doit être membre de l'environnement Active Directory. Dans ce guide, vous découvrirez comment automatiser les tâches quotidiennes liées aux comptes d'ordinateurs, telles que la création, le renommage et la suppression faciles de comptes.
Dans l'ensemble, vous apprendrez à utiliser PowerShell pour effectuer les tâches suivantes de gestion de comptes d'ordinateurs :
- Joindre un ordinateur à un domaine
- Joindre plusieurs ordinateurs à un domaine
- Retirer un ordinateur d'un domaine avec PowerShell
- Créez un objet ordinateur dans AD
- Créer des comptes d'ordinateur à partir d'un fichier CSV
- Supprimez un ordinateur de AD
- Supprimez des comptes d'ordinateurs en utilisant une liste
- Supprimez les comptes d'ordinateurs obsolètes dans Active Directory avec PowerShell
- Renommer un ordinateur
- Renommez un ordinateur et joignez-le à un domaine
- Désactiver un compte d'ordinateur AD
- Désactiver des comptes d'ordinateurs à l'aide d'une liste
- Réinitialiser un compte d'ordinateur AD
PowerShell ISE est le meilleur outil pour travailler avec des scripts PowerShell. Démarrez l'outil PowerShell ISE avec des privilèges d'administrateur en appuyant sur « Windows+R » et en saisissant « runas /profile /user:Administrator PowerShell_ISE » dans la fenêtre Exécuter. (Alternativement, vous pouvez cliquer droit sur l'icône de PowerShell ISE et choisir l'option « Exécuter en tant qu'administrateur ».) Entrez le mot de passe de l'administrateur lorsque cela vous est demandé.
Avant de pouvoir travailler avec AD et ses objets, vous devez importer le module Active Directory pour Windows PowerShell. Dans Microsoft Windows Server 2008 R2, vous devez activer ce module en exécutant la commande suivante :
Import-Module ActiveDirectory
Dans Microsoft Windows Server 2012 et les versions ultérieures, ce module est activé par défaut.
Joindre un ordinateur à un domaine
La tâche la plus courante consiste à joindre un ordinateur à un contrôleur de domaine. Pour joindre un PC à an Active Directory domain, exécutez le script PowerShell suivant localement :
$dc = "ENTERPRISE" # Specify the domain to join.
$pw = "Password123" | ConvertTo-SecureString -asPlainText –Force # Specify the password for the domain admin.
$usr = "$dcT.Simpson" # Specify the domain admin account.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -DomainName $dc -Credential $creds -restart -force -verbose # Note that the computer will be restarted automatically.
L'ordinateur va redémarrer puis rejoindre le domaine ; il sera ajouté au conteneur par défaut.
Pour joindre un ordinateur à un DC à distance, vous devez améliorer ce script de cette manière :
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = "R07GF" # Specify the computer that should be joined to the domain.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -ComputerName $pc -LocalCredential $pcadmin -DomainName $dc -Credential $creds -Verbose -Restart -Force
La variable $pc et le paramètre –LocalCredential sont utilisés pour authentifier l'ordinateur sur le domaine. Notez que pour utiliser cette méthode, vous devez désactiver le pare-feu sur l'ordinateur local.
Joignez plusieurs ordinateurs à un domaine
Vous pouvez ajouter plusieurs ordinateurs au domaine en les spécifiant dans la ligne de commande sous forme de liste délimitée par des virgules ou en important leurs noms à partir d'un fichier texte.
Voici comment spécifier les ordinateurs dans une liste délimitée par des virgules :
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = "WKS034, WKS052, WKS057" # Specify the computers that should be joined to the domain.
$creds = New-Object System.Management.Automation.PSCredential($usr$pw)
Add-Computer -ComputerName $pc -LocalCredential $pcadmin -DomainName $dc -Credential $creds -Restart -Force
Et voici comment utiliser un fichier texte avec la liste des ordinateurs qui devraient être joints :
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = Get-Content -Path C:Computers.txt # Specify the path to the computers list.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -ComputerName $pc -LocalCredential $pcadmin -DomainName $dc -Credential $creds -Restart -Force
Retirer un ordinateur d'un domaine avec PowerShell
Pour retirer un ordinateur d'un domaine à distance, utilisez la cmdlet Remove-Computer. Ici, nous retirons un ordinateur d'un domaine, donc aucune identification locale n'est nécessaire et nous pouvons omettre le paramètre ?LocalCredential:
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = "R07GF"
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Remove-Computer -ComputerName $pc -Credential $creds –Verbose –Restart –Force
Pour retirer plusieurs ordinateurs en utilisant une liste dans un fichier TXT, utilisez le script ci-dessus pour joindre des ordinateurs à un DC, en remplaçant le cmdlet Add-Computer par Remove-Computer. Notez que vous aurez toujours besoin des identifiants d'administrateur de domaine pour compléter cette opération de désassociation.
Créez un objet ordinateur dans AD
Pour créer un objet ordinateur, utilisez le cmdlet New-ADComputer. Par exemple, exécutez les paramètres de cmdlet suivants pour créer un objet ordinateur avec “WKS932” comme nom et la valeur par défaut du chemin LDAP :
New-ADComputer –Name “WKS932” –SamAccountName “WKS932”
Créer des comptes ordinateur à partir d'un fichier CSV
Si vous avez une liste d'ordinateurs à importer dans Active Directory, enregistrez cette liste dans un fichier CSV avec l'en-tête « computer » et la liste des noms d'ordinateurs dans la colonne ci-dessous. Exécutez le script PowerShell suivant sur votre contrôleur de domaine pour ajouter les ordinateurs à partir du fichier CSV, en vous assurant que les variables « Path » et « File » sont correctement définies :
$File="C:scriptsComputers.csv" # Specify the import CSV position.
$Path="OU=Devices,DC=enterprise,DC=com" # Specify the path to the OU.
Import-Csv -Path $File | ForEach-Object { New-ADComputer -Name $_.Computer -Path $Path -Enabled $True}
Supprimer un ordinateur de AD
Pour supprimer un compte d'ordinateur de AD, utilisez le cmdlet Remove-ADObject. Le paramètre -Identity spécifie quel ordinateur Active Directory supprimer. Vous pouvez spécifier un ordinateur par son nom distinctif, GUID, identifiant de sécurité (SID) ou nom de compte du Gestionnaire des comptes de sécurité (SAM).
Remove-ADObject -Identity "WKS932"
Vous serez invité à confirmer la suppression.
Supprimer des comptes d'ordinateurs à l'aide d'une liste
Si vous avez un fichier texte avec une liste d'anciens ordinateurs, vous pouvez simplifier la tâche de leur suppression en utilisant PowerShell. Le script suivant lira les noms des ordinateurs à partir d'un fichier TXT et supprimera les comptes correspondants via une chaîne de commandes, ou pipeline :
Get-Content C:scriptscomputersfordeletion.txt | % { Get-ADComputer -Filter { Name -eq $_ } } | Remove-ADObject -Recursive
Demandez un essai gratuit de Netwrix Directory Manager pour une meilleure gestion des groupes
Supprimez les comptes d'ordinateurs obsolètes de Active Directory avec PowerShell
Les comptes obsolètes dans Active Directory peuvent être compromis, entraînant des incidents de sécurité, il est donc crucial de les surveiller. Ce script PowerShell interrogera Active Directory et retournera tous les ordinateurs qui ne se sont pas connectés au cours des 30 derniers jours ; vous pouvez facilement modifier cette valeur par défaut dans le script. Il supprimera également ces comptes pour maintenir votre AD propre.
$stale = (Get-Date).AddDays(-30) # means 30 days since last logon, can be changed to any number.
Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $stale} | FT Name,lastLogonDate
Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $stale} | Remove-ADComputer
Il y a un ordinateur, FS1, qui n'a pas été utilisé depuis plus de 30 jours. Le système demandera confirmation avant de le supprimer du domaine :
Si vous souhaitez désactiver, plutôt que supprimer, les comptes d'ordinateurs inactifs, remplacez le cmdlet Remove-ADComputer par Set-ADComputer et le paramètre et la valeur -Enabled $false.
Renommer un ordinateur
Pour changer le nom d'un ordinateur, utilisez le cmdlet Rename-Computer. Notez que l'ordinateur doit être en ligne et connecté à Active Directory.
Rename-Computer –ComputerName "FS1" -NewName "FS2"
Si vous souhaitez exécuter ce script localement, cela ressemblera à ceci :
Rename-Computer -NewName "newname" -DomainCredential "DomainAdministrator"
Renommez un ordinateur et joignez-le à un domaine
Vous pouvez améliorer le script de renommage en joignant l'ordinateur au domaine et en le plaçant simultanément dans l'OU spécifié. Le script doit être exécuté sur la machine cible, pas sur le contrôleur de domaine.
$NewComputerName = "Server3" # Specify the new computer name.
$DC = "contoso.com" # Specify the domain to join.
$Path = "OU=TestOU,DC=contoso,DC=com" # Specify the path to the OU where to put the computer account in the domain.
Add-Computer -DomainName $DC -OUPath $Path -NewName $NewComputerName –Restart –Force
Le script demandera les identifiants d'un compte ayant les permissions pour ajouter des ordinateurs au domaine, puis l'ordinateur sera renommé, redémarré et ajouté au domaine.
Désactiver un compte d'ordinateur AD
Utilisez le cmdlet Disable-ADAccount pour désactiver les comptes d'utilisateur, d'ordinateur et de service dans Active Directory. Si vous spécifiez un nom de compte d'ordinateur, n'oubliez pas d'ajouter un signe dollar ($) à la fin du nom ; sinon, vous recevrez une erreur après l'exécution du script.
Disable-ADAccount -Identity fs1$
Désactiver des comptes d'ordinateurs à l'aide d'une liste
Vous pouvez également désactiver des comptes d'ordinateur en masse en utilisant une liste dans un fichier texte :
$Pclist = Get-Content C:scriptsComputer.txt # Specify the path to the computers list.
Foreach($pc in $Pclist)
{
Disable-ADAccount -Identity "$pc"
Get-ADComputer -Identity "$pc" | Move-ADObject -TargetPath “OU=Disabled Computers,DC=enterprise,DC=com”
}
Réinitialiser un compte d'ordinateur AD
Comme un compte utilisateur, un compte ordinateur interagit avec Active Directory à l'aide d'un mot de passe. Mais pour les comptes ordinateur, un changement de mot de passe est initié par défaut tous les 30 jours et le mot de passe est exempté de la politique de password policy du domaine. Les changements de mot de passe sont initiés par le client (ordinateur), et non par AD.
Les identifiants de l'ordinateur sont généralement inconnus de l'utilisateur car ils sont définis de manière aléatoire par l'ordinateur. Mais vous pouvez définir votre propre mot de passe ; voici un script PowerShell pour le faire :
$pc = read-host –Prompt “Input computer name to reset“ # Specify the computer name.
$pw = read-host –Prompt “Input random characters for temp password“ –AsSecureString # Specify the password.
Get-ADComputer $pc | Set-ADAccountPassword –NewPassword:$pw -Reset:$true
Conclusion
Maintenant, vous avez appris à gérer les comptes d'ordinateurs Active Directory avec PowerShell. Vous pouvez améliorer tous ces scripts par vous-même pour les adapter à vos besoins.
N'oubliez pas qu'il est crucial de suivre de près tous les changements apportés aux comptes informatiques, afin de pouvoir rapidement détecter toute modification indésirable et y répondre de manière appropriée.
Meilleures pratiques de gestion des groupes Active Directory
Meilleures pratiques de gestion des groupes Active DirectoryPartager sur
En savoir plus
À propos de l'auteur
Jeff Melnick
Directeur de l'ingénierie des systèmes
Jeff est un ancien directeur de l'ingénierie des solutions mondiales chez Netwrix. Il est un blogueur, conférencier et présentateur de longue date chez Netwrix. Dans le blog Netwrix, Jeff partage des astuces et des conseils qui peuvent améliorer de manière significative votre expérience en administration système.
En savoir plus sur ce sujet
Gestion de la configuration pour un contrôle sécurisé des points de terminaison
Lois sur la confidentialité des données par État : Différentes approches de la protection de la vie privée
Exemple d'analyse des risques : Comment évaluer les risques
Le Triangle CIA et son application dans le monde réel
Qu'est-ce que la gestion des documents électroniques ?