Get Active Directory Schema Version

To get the schema version of your Active Directory, use the below powershell command line :

Get-ADObject (Get-ADRootDSE).schemaNamingContext -Property objectVersion

SchemaVersion

According to the objectVersion (47), we know that the schema is extended to Windows Server 2008 R2.

Find below a list of schema version with the matching Operating system.

Operating system Schema Version
Windows Server 2003 30
Windows Server 2003 R2 31
Windows Server 2008 44
Windows Server 2008 R2 47
Windows Server 2012 56
Windows Server 2012 R2 69
Windows Server 2016 87

 

Rajouter des utilisateurs dans un groupe AD à partir d’un fichier .CSV

Hello, je partage ce petit script qui pourrait vous être utile si vous souhaitez rajouter des utilisateurs (100, 1000…) en bloc à un groupe AD.

Pour  utiliser ce script cela suppose que vous avez déjà la liste de vos utilisateurs et que ces derniers existent déjà dans votre organisation Active Directory. Il faudra donc constituer un fichier .csv et ensuite exécuter le script que je vous fournis dans ce post dans PowerShell sur un contrôleur de domaine.

Le contenu du fichier MesUsers.csv

Name
saturnin
marie
serge
kevin
joel
gedeon
salomon
daniel
philippe
josiane

Le script à utiliser est le suivant:

Import-Module ActiveDirectory #Nous chargeons le module Active Directory 

$Group = "Nom du Groupe AD" #Group AD dans lequel vous souhaitez rajouter des users 
$MesUsers = Import-Csv "C:\MesUsers.csv" #Chemin d'accès de votre fichier Csv contenant la liste de vos users 
$members = Get-ADGroupMember -Identity $Group -Recursive | Select -ExpandProperty Name 

ForEach ($User in $MesUsers){ 

#Vérifie si l'utilisateur existe déjà dans le groupe  
  If ($members -contains $User.Name){            
   Write-Host "$($User.Name.ToUpper()) exists in the Group" -ForegroundColor Yellow       

#S'il n'existe pas on le rajoute      
  Elseif (Add-ADGroupMember -Identity $Group -Members $User.Name -ErrorAction SilentlyContinue)
   {            
    Write-Host "$($User.Name.ToUpper()) a été rajouté au group" -ForegroundColor Green      
  }  

#En cas de problème on ressort ici la liste des users qui n'ont pas pu être rajoutés      
  Else {          
     Write-Host "Unable to Add $($User.Name.ToUpper())" -ForegroundColor Red      
   } 
}

 

Pour visualiser le log des erreurs, histoire de vérifier que le scritp s’est exécuté correctement, il suffit d’afficher le contenu de la variable $error. C’est une variable système pré-définie dans PowerShell.

$error

Et voilà 🙂

Lister les serveurs de votre domaine

Dans ce billet, je vous expose deux méthodes simples de recherches de vos serveurs dans l’AD. La première se fait à base de commande PowerShell, il vous sera nécessaire de la réexécuter toutes les fois que vous aurez besoin de rechercher des infos. La seconde à l’aide de Requêtes engregistrées est relativement longue à créer mais vous n’aurez pas besoin de la réexécuter puisqu’elle s’actualise toute seule.

Méthode 1 : A l’aide PowerShell

Ouvrir Windows PowerShell sur votre contôleur de domaine et importer le module Active Directory :

Import-Moduel ActiveDirectory

Utiliser la commande suivante pour lister vos serveur 2012

Get-ADComputer -Filter * -properties * | where {$_.OperatingSystem -ilike « Windows Server 2012 * »} | Select Name, OperatingSystem

ListServer2

Si vous voulez savoir juste le nombre de serveur, c’est simple:

>(Get-ADComputer -Filter * -properties * | where {$_.OperatingSystem -ilike « Windows Server 2012 * »}).count

ListServer3

Méthode 2 : A l’aide Requêtes enregistrées

Ouvrer la console « Utilisateurs et Ordinateurs Active Directory », dans l’arborescence de gauche, cliquer-droit sur « Requêtes enregistrées » >> Nouveau >> Requête

RE1

Dans la fenêtre qui s’ouvre, donner un nom significatif à votre requête, dans notre cas « All Windows Server 2012 »

RE2

Dans la fenêtre suivante, nous mettons  » *  » parce que nous voulons rechercher plusieurs ordinateurs, le rôle installé sur l’ordinateur nous importe peu. Mais on aurait pu choisir « Contrôleur de domaine si on cherchait tous les DCs 2012 de notre domaine » par exemple.

RE3

Dans l’option champ, nous déroulons la liste pour sélectionner « système d’exploitation » puis utilisons les paramètres suivants « Condition: Commencer par », « Valeur : Windows Server 2012 »

RE4

Cliquer sur « Ajouter » puis OK

RE5

Dans la fenêtre suivante, nous avons un résumé du paramétrage effectué avec la « Chaîne de recherche » correspondante. Cliquer sur OK pour valider.

RE6b

Et nous pouvons constater que les serveurs Windows 2012 de notre domaine sont listés dans la console « Utilisateurs et Ordinateurs Active Directory ».

RE7

Et voilà 🙂

Configurer vos applications pour les connexions sécurisées LDAPs

Dans une entreprise, certaines applications peuvent avoir besoin de se connecter au serveur LDAP pour récupérer des information ou des droits d’accès pour les utilisateurs. Pour se faire, ces applications s’appuient sur un fichier de configuration, qui dans une configuration classique, peut ressembler à ceci :

#config  ldap
ldap.usersearchfilter=(samAccountName={0})
ldap.usersearchbase=DC=mondomaine,DC=lan
ldap.url=ldap://mondomaine.lan:389    # connexion non sécurisée
ldap.managerdn=CN=svc_ldapRdr,OU=Comptes services,DC=mondomaine,DC=lan #Compte de service d’accès au serveur LDAP
ldap.managerpassword= »MDP du compte svc_ldapRdr »
ldap.grouproleattribute=CN

On peut remarquer que la connexion ici n’est pas sécurisée car utilise un simple bind (port 389), pas sécurité. cela veut dire qu’on peut récupérer les mots de passe si on place un sniffer (wireshark par exemple) entre l’application et le serveur LDAP.

Pour une connexion sécurisée, on aurait plutôt utilisé la configuration suivante:

#config  ldap
ldap.usersearchfilter=(samAccountName={0})
ldap.usersearchbase=DC=mondomaine,DC=lan
ldap.url=ldaps://mondomaine.lan:636      # connexion sécurisée à LDAP
ldap.managerdn=CN=svc_ldapRdr,OU=Comptes services,DC=mondomaine,DC=lan #Compte de service d’accès au serveur LDAP
ldap.managerpassword= »MDP du compte svc_ldapRdr »
ldap.grouproleattribute=CN

Afin de réaliser une connexion sécurisée en SSL sur un serveur LDAP à a partir d’un serveur tomcat installé sous Windows. Il est nécessaire d’enregistrer les certificats SSL au niveau de la JVM du tomcat (keystore). Pour cela on va utiliser les outils suivants :

Keytool qui est un outil de gestion des certificats proposé dans les binaires de la JDK
Un programme JAVA : InstallCert.java permettant de récupérer les certificats SSL sur un serveur donné et de les importer dans la JVM.

Exemple:
Notre serveur LDAP de domaine (Active Directory) et un point d’entrée qui redirige vers un de ces contrôleurs :

Point d’entrée :

ldaps://mondomaine.lan:636

Notre serveur LDAP :

DC01.mondomaine.lan

L’applicatif se connectant sur le LDAP doit se connecter sur l’adresse suivante

ldaps://mondomaine.lan:636

Pour enregistrer les certificats SSL des serveurs LDAP dans le keystore de la JVM, il faut :
– Compiler le programme InstallCert en lançant la commande : javac InstallCert
– Lancer le programme InstallCert sur les 4 serveurs afin de récupérer les certificats :

java InstallCert DC01.mondomaine.lan:636

Après le lancement de ces programmes un fichier jssecacerts à été généré dans le répertoire courant
– Il faut maintenant exporter les certificats contenus dans le fichier jssecacerts pour chaque serveur en lançant les commandes suivantes :

« C:\Program Files\Java\jre7\bin\keytool.exe »  -exportcert -alias dc01.mondomaine.lan -keystore jssecacerts -storepass changeit -file DC01.mondomaine.lan.cer

– Une fois les exportations terminées, il faut importer les certificats générés dans le keystore de la JVM en lançant les commandes suivantes :

« C:\Program Files\Java\jre7\bin\keytool.exe » -keystore « C:\Program Files\Java\jre7\lib\security\cacerts » -importcert -alias DC01.mondomaine.lan -file dc01.mondomaine.lan.cer

Et voilà, j’espère que cet article vous aura été utile 🙂

Petit lexique AD – Exchange

  • NTLM et Kerberos : authentification afin de recevoir un ‘ticket’ d’autorisation d’accès aux ressources du réseau (serveur de fichier, partage réseau, accès ordinateur…)
  • LDAP : protocole d’accès à un annuaire LDAP (interragir avec l’annuaire ldap).
  • LDAPs: Accès à l’annuaire à l’aide d’un canal sécurisé pour des requêtes LDAP
  • Get-ADForest : permet d’afficher les informations sur votre forêt Active Directory

Get-ADForest

  • netdom query fsmo : lister les maîtres d’opération de votre infrastructure AD

NetdomQueryFSMO

  • nltest /dclist:mondomaine.lan : lister les contrôleurs de domaine depuis un poste ou serveur membre. Cette commande a l’avantage de nous fournir le nom du PDC de notre domaine.

Lister les DCs

  • Démarrer tous les services automatiques Exchange
$Services = Get-Services | ?{($_.Name -ilike "MSExchange*" -and ($_.StartType -ilike "Auto*")
Foreach ($Service in $Services) {Start-Service $Services}
  • Activer la licence de votre serveur Exchange 2013/2016
Set-ExchangeServer NomServeur -ProductKey XXXXX-XXXXX-XXXXX-XXXXX-XXXXX