Dans les versions précédente de Active Directory, vous aviez la possibilité de définir une stratégie de mot de passe pour les comptes du domaine avec des paramètres définis.

La stratégie des mots de passe ne peut être configurée que dans la GPO « Statégie de domaine par défault ».
Cette stratégie s’applique à tous chaque compte utilisateur du domaine et chaque compte utilisateur de la SAM local des serveurs et ordinateurs qui joignent le domaine.
Il n’est pas possible de définir d’autres paramètres via une autre GPO.
Avec l’arrivé d’Active Directory 2008/R2, vous pouvez maintenant accéder à « Fine Grain Password Policies » (FGPP).
FGPP vous permet de mettre en place des politiques de mot de passe multiples dans le même domaine Active Directory.
Ceci peut être utile pour sécuriser le mot de passe de certains comptes critiques comme Administrateurs, RH, Finances, Direction…
FGGP ne se positionnera plus sur une OU comme le ferait une GPO mais sur un groupe ou un compte.
Voici comment mettre en place FGPP sur un groupe d’utilisateurs.
1- Lancez ADSIEDIT.MSC sur votre DC.
2- Sélectionnez Connexion dans le menu Action..
3- Dans la boîte de dialogue Paramètres de connexion cliquez sur le bouton OK.

4- Dans ADSIEDIT, développez la vue de votre nom de domaine vers CN=System.
4- Cliquez-droit sur le CN = Password Settings Container.
6- Sélectionnez l’option Créer | Objet.
7- Remplissez les valeurs pour chaque entrées, le ci-dessous est un guide.
Attribut | Valeur | Description |
Cn | AdminsPasswordPolicy | Le nom de l'objet de stratégie de mot de passe dans Active Directory |
msDS-PasswordSettingsPrecedence | 10 | Nombre de poids. Au cas ou l'utilisateur serait membre de plusieurs groupes ayant chacun un FGPP. Le plus petit nombre a la priorité la plus élevé. |
msDS-PasswordReversibleEncryptionEnabled | False | Valeur booléenne pour définir si les mots de passe doivent être stockés avec un chiffrement réversible. |
msDS-PasswordHistoryLength | 5 | Nombre de mots de passe utilisateur unique doit d'entrée avant de les réutiliser un mot de passe. |
msDS-PasswordComplexityEnabled | True | Définit si la complexité de mot de passe doit être activée ou non. |
msDS-MinimumPasswordLength | 8 | Le nombre minimum de caractères dans le mot de passe utilisateur. |
msDS-MinimumPasswordAge | -864000000000 | L'âge minimum mot de passe (un jour). |
msDS-MaximumPasswordAge | -51840000000000 | L'âge maximum de mot de passe (60 jours). |
msDS-LockoutThreshold | 5 | Nombre de tentative échoué de mot de passe avant que l'utilisateur soit verrouillé. |
msDS-LockoutObservationWindow | -18000000000 | Le temps écoulé pour réinitialiser le compteur de verrouillage de mot de passe au maximum (30 minutes). |
msDS-LockoutDuration | -18000000000 | Le temps pendant lequel le compte reste verrouillé si aucune nouvelle mauvaise tentative n'a eu lieu (30 minutes). |
Pour calculer les temps utilisez le tableau ci-dessous en multipliant le nombre de minutes, heures ou jour pas la valeur correspondante.
Unité de temps | Formule | Valeur |
1 Minute | -60 * (10 ^ 7) | -600000000 |
1 Heure | -60 * 60 * (10 ^ 7) | -36000000000 |
1 Jour | -24 * 60 * 60 * (10 ^ 7) | -864000000000 |
8- Validez la configuration.
9- Affichez les propriétés du « Password Settings Object » (PSO).
10- Modifiez l’attribut « msDS-PSOAppliesTo » pour ajouter les groupes auxquels vous souhaitez appliquer la FPGG.
11- Appliquez.
Maintenant, tous les utilisateurs du groupe que vous avez sélectionné on un stratégie de mot de passe spécifique.
Répétez l’opération pour autant de PSOs que vous souhaitez créer.
Permet d’obtenir son « current username » avec Powershell pour l’utiliser dans vos scripts.
Votre login:
Variante avec le nom de domaine
[System.Security.Principal.WindowsIdentity]::GetCurrent().Name |
Juste le domaine:
[Environment]::UserDomainName |
Le nom de l’ordinateur:
[Environment]::MachineName |
En activant les messages de notification sur les liens de sites dans Active Directory 2003, vous réduisez le délais de réplication inter-sites qui est de 15 minutes minimum.
En activant la notification sur les liens intrer-sites, les modifications seront répliquées immédiatement vers le site distant.
Cela permet d’accélérer la réplication sur le domaine.
A chaque modification d’un objet sur un contrôleur de domaine, celui-ci notifie les contrôleurs distants de la modification pour qu’il lance une réplication.
Activer la notification:
$sitelink=[ADSI]"LDAP://CN=Site001-Site004,CN=IP,CN=Inter-Site Transports,CN=Sites,CN=Configuration,DC=domain,DC=local"
$sitelink.put("options","1")
$sitelink.setinfo() |
Vérifier la configuration:
([ADSI]$sitelink).options |
Il arrive au bout d’un certain temps d’avoir des comptes d’ordinateurs qui ne servent plus dans le domaine.
Pour identifier ces comptes qui ne se sont pas connectés depuis longtemps, lancer la commande:
Get-QADComputer -IncludeAllProperties -SizeLimit 0 -SearchRoot "domaine.local/OU_Computers" | ft Name,ParentContainer,OSName,pwdlastset |
Les ordinateurs doivent changer leur mots de passe tous les 30 jours.
Si la date de de « pwdlastset » est trop ancienne, il est probable que l’ordinateurs n’existe plus.
Si vous voulez filtrer les odinateurs qui n’ont pas changés de mot de passe depuis plus 90 jours, utilisez la méthode suivante:
$old = (Get-Date).AddDays(-90)
Get-QADComputer -IncludedProperties pwdLastSet -SizeLimit 0 -SearchRoot "domaine.local/OU_Computers" | where { $_.pwdLastSet -le $old } |
Le commandes suivantes permettent de collecter les principales informations sur la forêt et le domaine.
Les rôles FSMO, la liste des Domain Controllers, Global Catalogs, Sites…
Lister les infos sur la forêt.
$for = [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()
$for | fl * |
Lister les infos sur le domaine.
$dom = [System.DirectoryServices.ActiveDirectory.Domain]::getcurrentdomain()
$dom | fl * |
Ces deux commandes à la suite permettent d’afficher la liste des contrôleurs du domaine avec le site associé.
D’autres informations sont disponible.
$dom = [System.DirectoryServices.ActiveDirectory.Domain]::getcurrentdomain()
$dom.DomainControllers | ft Name,SiteName |
Ça peut servir pour mettre en place rapidement une relation d’approbation entre deux domaines.
netdom trust domain.dist /Domain:domain.local UserD:adminlocal /PasswordD:xxxxx /UserO:admindist /PasswordO:xxxxx /add /twoway /enablesidhistory |
Dans un gros domaine, il peut arriver que les utilisateurs soient triés dans des OU correspondantes à des filiales ou sites.
Cette méthode permet de tronquer le CanonicalName d’un compte pour en extraire le nom de la première OU.
$user = Get-QADUser -Identity "Capitaine CAVERNE"
$nodom=$user.CanonicalName.remove(0,15)
$firstslash=$nodom.IndexOfAny("/")
$filiale=$nodom.remove($firstslash) |
Le « 15 » correspond au nombre de caractère dans le de domaine.
Je sais, c’est pas de l’Exchange, c’est pas du Powershell mais ça peut servir.
Lancer dcpromo sur le contrôleur de domaine.
Si le dcpromo pour dégrader le DC ne fonctionne pas, il est possible de lancer la commande dcpromo /forceremoval
Il faut ensuite appliquer la procédure suivante pour nettoyer l’AD.
– Dans une invite de commande, lancer ntdsutil.
– Taper metadata cleanup.
– Taper connections .
– Taper connect to server localhost.
– Taper quit.
– Taper select operation target.
– Taper list domains.
– Taper select domain NUMERO.
– Taper list sites.
– Taper select site NUMERO.
– Taper list servers in site.
– Taper select server NUMERO.
– Taper quit.
– Taper remove selected server.
– Confirmer les boites de dialogue.
– Taper quit.
– Taper quit.
– Supprimer le serveur dans le gestionnaire de sites et services.
Commentaires récents