Romain Tiennot

Technicien Superieur en Informatique

Aller au contenu | Aller au menu | Aller à la recherche

Keyword - Active Directory

Fil des billets

Integration une distribution linux (Debian) dans un domaine Windows

Debian Domain

Lire la suite...

Lync Server 2010 - Installation et Configuration

Lync_Server_2010.png

Lire la suite...

Vérification de nom de poste libre via Active Directory

Autoit Souvent dans les entreprises, il y a un nommage des postes par bâtiments ou encore agence. J'ai souvent eu a chercher dans l'Active Directory un nom de poste disponible afin de préparer un nouveau. Ce script a pour but de verifier dans l'annuaire de l'AD le prochaine ordinateur de libre.

Dans mon exemple, il y a trois site :

  • Site 1
  • Site 2
  • Site 3

Le site 1 à 5 etage :

  • RDC avec nomage "SITE1-000" à "SITE1-099"
  • 1er avec nomage "SITE1-100" à "SITE1-199"
  • 2eme avec nomage "SITE1-200" à "SITE1-299"
  • 3eme avec nomage "SITE1-300" à "SITE1-399"
  • 4eme avec nomage "SITE1-400" à "SITE1-499"

Le site 2 à 4 etage :

  • RDC avec nomage "SITE2-000" à "SITE2-099"
  • 1er avec nomage "SITE2-100" à "SITE2-199"
  • 2eme avec nomage "SITE2-200" à "SITE2-299"
  • 3eme avec nomage "SITE2-300" à "SITE2-399"

Le site 3 à 3 etage :

  • RDC avec nomage "SITE3-000" à "SITE3-099"
  • 1er avec nomage "SITE3-100" à "SITE3-199"
  • 2eme avec nomage "SITE3-200" à "SITE3-299"
  • 3eme avec nomage "SITE3-300" à "SITE3-399"

Par exemple, lorsque l'on aura cliqué sur "Site 3" puis "2eme Etage", il va chercher dans l'active directory si "SITE3-200" est libre. Si c'est le cas, il vous l'affichera et vous pouvez l'utiliser sinon, il incrémentera jusqu’à trouver un poste de libre puis vous l'afficher.

ordinateur_libre1.png Ordinateur_libre2.png Ordinateur_libre3.png

Voici le code :

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=ordi.ico
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <Excel.au3>
#include <AD.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <IE.au3>
#include <Excel.au3>
Global $site1, $site2, $site3, $dDisplay, $nbEnd, $quit, $computer, $i, $nbStart, $suffix, $nbhote
GUICreate("Ordinateur de libre", 300, 300, 192, 124)
_AD_Open()
start()
 
func start()
GUICtrlCreateLabel("Veuillez cliquer sur l'un des boutons :", 20, 10, 200, 17)
$site1 = GUICtrlCreateButton("Site 1", 10, 40, 140, 50)
$site2 = GUICtrlCreateButton("Site 2", 150, 40, 140, 50)
$site3 = GUICtrlCreateButton("Site 3", 10, 90, 140, 50)
 
$quit = GUICtrlCreateButton("Quitter", 160,250,120,40)
 
GUISetState(@SW_SHOW)
while 1
	    $nMsg = GUIGetMsg()
    Switch $nMsg
		case $site1
			clear()
			site1()
 
		case $site2
			clear()
			site2()
 
		case $site3
			clear()
			site3()
 
        Case $GUI_EVENT_CLOSE
			_AD_Close()
            Exit
		Case $quit
			_AD_Close()
			Exit
    EndSwitch
WEnd
EndFunc
 
 
func clear()
			Global $dDisplay[4] = [$site1, $site2, $site3, $quit]
			For $i = 0 To UBound($dDisplay) - 1
				GUICtrlDelete($dDisplay[$i])
			Next
EndFunc
 
func site1()
			GUICtrlCreateGroup("Site N°1", 10, 40, 280, 155)
			$site10 = GUICtrlCreateButton("Rez-de-chaussé", 35,60,100,40)
			$site11 = GUICtrlCreateButton("1er Etage", 160,60,100,40)
			$site12 = GUICtrlCreateButton("2eme Etage", 35,105,100,40)
			$site13 = GUICtrlCreateButton("3eme Etage", 160,105,100,40)
			$site14 = GUICtrlCreateButton("4eme Etage", 35,150,100,40)
			$suffix = "SITE1-"
			$nbhote = "3"
 
			$retour = GUICtrlCreateButton("Retour", 20,250,120,40)
			$quit = GUICtrlCreateButton("Quitter", 160,250,120,40)
				while 1
					$nMsg = GUIGetMsg()
						Switch $nMsg
							case $site10
								$nbStart = "000"
								$nbEnd = "099"
					 			verif()
 
							case $site11
								$nbStart = "100"
								$nbEnd = "199"
					 			verif()
 
							case $site12
								$nbStart = "200"
								$nbEnd = "299"
					 			verif()
 
							case $site13
								$nbStart = "300"
								$nbEnd = "399"
					 			verif()
 
							case $site14
								$nbStart = "400"
								$nbEnd = "499"
					 			verif()
 
							Case $GUI_EVENT_CLOSE
								_AD_Close()
								Exit
 
							Case $quit
								_AD_Close()
								Exit
 
							Case $retour
								GUICtrlDelete($site14)
								GUICtrlDelete($site13)
								GUICtrlDelete($site12)
								GUICtrlDelete($site11)
								GUICtrlDelete($site10)
								GUICtrlDelete($retour)
								clear()
								start()
 
							EndSwitch
				WEnd
EndFunc
 
func site2()
			GUICtrlCreateGroup("Site N°2", 10, 40, 280, 120)
			$site20 = GUICtrlCreateButton("Rez-de-chaussé", 35,60,100,40)
			$site21 = GUICtrlCreateButton("1er Etage", 160,60,100,40)
			$site22 = GUICtrlCreateButton("2eme Etage", 35,105,100,40)
			$site23 = GUICtrlCreateButton("3eme Etage", 160,105,100,40)
 
			$suffix = "site2-"
			$nbhote = "3"
 
			$retour = GUICtrlCreateButton("Retour", 20,250,120,40)
			$quit = GUICtrlCreateButton("Quitter", 160,250,120,40)
				while 1
					$nMsg = GUIGetMsg()
						Switch $nMsg
							case $site20
								$nbStart = "000"
								$nbEnd = "099"
					 			verif()
 
							case $site21
								$nbStart = "100"
								$nbEnd = "199"
					 			verif()
 
							case $site22
								$nbStart = "200"
								$nbEnd = "299"
					 			verif()
 
							case $site23
								$nbStart = "300"
								$nbEnd = "399"
					 			verif()
 
 
							Case $GUI_EVENT_CLOSE
								_AD_Close()
								Exit
 
							Case $quit
								_AD_Close()
								Exit
 
							Case $retour
								GUICtrlDelete($site23)
								GUICtrlDelete($site22)
								GUICtrlDelete($site21)
								GUICtrlDelete($site20)
								GUICtrlDelete($retour)
								clear()
								start()
 
 
							EndSwitch
				WEnd
EndFunc
 
func site3()
			GUICtrlCreateGroup("Site N°3", 10, 40, 280, 110)
			$site30 = GUICtrlCreateButton("Rez-de-chaussé", 35,60,100,40)
			$site31 = GUICtrlCreateButton("1er Etage", 160,60,100,40)
			$site32 = GUICtrlCreateButton("2eme Etage", 35,105,100,40)
 
			$suffix = "site3-"
			$nbhote = "3"
 
			$retour = GUICtrlCreateButton("Retour", 20,250,120,40)
			$quit = GUICtrlCreateButton("Quitter", 160,250,120,40)
				while 1
					$nMsg = GUIGetMsg()
						Switch $nMsg
							case $site30
								$nbStart = "000"
								$nbEnd = "099"
					 			verif()
 
							case $site31
								$nbStart = "100"
								$nbEnd = "199"
					 			verif()
 
							case $site32
								$nbStart = "200"
								$nbEnd = "299"
					 			verif()
 
 
							Case $GUI_EVENT_CLOSE
								_AD_Close()
								Exit
 
							Case $quit
								_AD_Close()
								Exit
 
							Case $retour
								GUICtrlDelete($site32)
								GUICtrlDelete($site31)
								GUICtrlDelete($site30)
								GUICtrlDelete($retour)
								clear()
								start()
 
 
							EndSwitch
				WEnd
EndFunc
 
func verif()
for $i = $nbStart -1  to $nbEnd - 1 step 1
	$computer = $i + 1
	if NOT _AD_ObjectExists(_AD_GetObjectAttribute($suffix&StringRight("00"&$computer,$nbhote) & "$", "sAMAccountName"))Then
		MsgBox(0,"",$suffix&StringRight("00"&$computer,$nbhote))
		ExitLoop
	EndIf
Next
EndFunc

A bientôt,
Romain

Date de derniere connexion d'utilisateur Active Directory

powershell.png Je vais vous présenter plusieurs script permettant de lister dans un fichier CSV les utilisateurs présent dans l'Active Directory n'ayant fait aucune demande d'authentification depuis X jours. Très pratique pour désactiver les utilisateurs n’étant plus présent dans une société par exemple.
Pour ce faire, il faut installer "ActiveRoles Management Shell for Active Directory" disponible sur le site de "Quest" Ensuite, il faut exécuter l'invite de commande "Windows PowerShell Modules". Le module va se charger. Pour l'export du CSV, il faut créer le dossier "TEMP" à la racine du système.

Ce script va rechercher dans tout l'annuaire Active Directory les utilisateur ne s’étant pas authentifié depuis plus de 90 jours et l'inscrire dans un fichier CSV dans le répertoire "c:\temp" :

$COMPAREDATE=GET-DATE
$NumberDays=90
$CSVFileLocation='C:\TEMP\OldComps.CSV'
 
GET-QADuser -SizeLimit 0 -IncludedProperties LastLogonTimeStamp | where { ($CompareDate-$_.LastLogonTimeStamp).Days -gt $NumberDays } | Select-Object Name, LastLogonTimeStamp, OSName, ParentContainerDN | Sort-Object ModificationDate, Name | Export-CSV $CSVFileLocation

Celui va rechercher dans tout l'annuaire Active Directory les utilisateur ACTIF ne s’étant pas authentifié depuis plus de 90 jours et l'inscrire dans un fichier CSV dans le répertoire "c:\temp" :

$COMPAREDATE=GET-DATE
$NumberDays=90
$CSVFileLocation='C:\TEMP\OldComps.CSV'
 
GET-QADuser -Enabled -SizeLimit 0 -IncludedProperties LastLogonTimeStamp | where { ($CompareDate-$_.LastLogonTimeStamp).Days -gt $NumberDays } | Select-Object Name, LastLogonTimeStamp, OSName, ParentContainerDN | Sort-Object ModificationDate, Name | Export-CSV $CSVFileLocation

A bientôt,
Romain

Integrer MAC OS X Lion dans un domaine Windows

mac.png Il est possible de faire coohabiter des Mac avec un domaine Windows. D'ailleur, je dois l'avouer, c'est très intuitif malgrès que depuis Lion les menus sont moins accéssible. Pour ce faire, il faut se rendre dans les "Préférences Système..." : Capture_d_ecran_2011-11-11_a_14.27.43.png

Ensuite, "Utilisateurs et Groupes" : Capture_d_ecran_2011-11-11_a_14.28.00.png

Il faut cliquer sur le cadena pour autoriser les modifications : Capture_d_ecran_2011-11-11_a_14.28.22.png

Ensuite, il faut cliquer "Options" et "Rejoindre" : Capture_d_ecran_2011-11-11_a_14.29.30.png Capture_d_ecran_2011-11-11_a_14.30.06.png

Un menu avec "Serveur" sera proposé mais je prépere indiquer qu'il s'agit d'un domaine "Active Directory". Dans ce cas, je cliquer sur "Ouvrir Utilitaire d'annuaire..." : Capture_d_ecran_2011-11-11_a_14.30.27.png

Une fois le cadena déverrouillé, je selection "Active Directory" et je renseigne le nom du domaine, le nom du MAC puis "__Relier..._" : Capture_d_ecran_2011-11-11_a_14.30.44.png

Ensuite, il est possible d'indiquer l'OU ou attirera le MAC une fois integré au domaine. Pour ce faire, il faut un compte administrateur du domaine : Capture_d_ecran_2011-11-11_a_14.31.58.png

Une fois integré, nous pouvons voir dans "Règles de rechercher" que l'authentification "Active Directory" est possible : Capture_d_ecran_2011-11-11_a_14.32.52.png

En ce rendant dans "Utilisateurs et groupes", on peut voir "Compte serveur réseau" indiquant le domaine fraichement integré. Capture_d_ecran_2011-11-11_a_14.33.03.png

Vous pouvez maintenant vous authentifier avec votre compte du domaine sur votre MAC. De plus, il vous indique le nombre de jour avant la moficiation de votre mot de passe et lors qu'il expire.

A bientôt,
Romain

- page 1 de 3