Code : Tout sélectionner
#include <AD.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region déclaration variables global GUI
Global $Comboservice, $ComboNom, $RBACTIV, $RBDESAC
#EndRegion déclaration variables global GUI
#Region déclaration variables global d'echange
Global $listecomboservice, $listecomboserviceuser, $aOUs, $active
#EndRegion déclaration variables global d'echange
_AD_Open()
$listecomboservice = _listOU()
#Region ### START Koda GUI section ### Form=c:\documents and settings\f.guillot\bureau\nouveau dossier (4)\d.kxf
GUICreate("Activation Désactivation des utilisateurs", 436, 265, 192, 124)
$Comboservice = GUICtrlCreateCombo("", 200, 40, 145, 25)
GUICtrlSetData(-1, $listecomboservice, "")
$Label1 = GUICtrlCreateLabel("Choisir le service :", 96, 40, 89, 17)
$Label2 = GUICtrlCreateLabel("Choisir l'agent", 96, 80, 69, 17)
$ComboNom = GUICtrlCreateCombo("", 200, 80, 145, 25)
$Activation = GUICtrlCreateGroup("Activation du compte", 88, 120, 257, 73)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$RBACTIV = GUICtrlCreateRadio("Activé", 120, 152, 73, 17)
$RBDESAC = GUICtrlCreateRadio("Désactivé", 248, 152, 81, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$BTNOK = GUICtrlCreateButton("Changer ETAT", 312, 224, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Comboservice
GUICtrlSetData($ComboNom, "", "")
$combouser = _objetinouselect(GUICtrlRead($Comboservice))
GUICtrlSetData($ComboNom, $combouser, "")
Case $ComboNom
$utilisateur = GUICtrlRead($ComboNom)
If _AD_IsObjectDisabled($utilisateur) Then
GUICtrlSetState($RBDESAC, $GUI_CHECKED)
$active = "vrai"
Else
GUICtrlSetState($RBACTIV, $GUI_CHECKED)
$active = "faux"
EndIf
Case $BTNOK
$iValue = _AD_DisableObject(GUICtrlRead($ComboNom))
If $active = "vrai" Then
If $iValue = 1 Then
MsgBox(64, "Information","l'utilisateur " & GUICtrlRead($ComboNom) & " a été désactivé")
$active = "faux"
ElseIf @error = 1 Then
MsgBox(64, "Information", "l'utilisateur " & GUICtrlRead($ComboNom) & " n'est pas présent")
Else
MsgBox(64, "Information", "Erreur '" & @error & "' en provenance de AD")
EndIf
Else
If $iValue = 1 Then
MsgBox(64, "Information", "l'utilisateur " & GUICtrlRead($ComboNom) & " a été réactivé")
$active = "vrai"
ElseIf @error = 1 Then
MsgBox(64, "Information", "l'utilisateur " & GUICtrlRead($ComboNom) & " n'est pas présent")
Else
MsgBox(64, "Information", "Erreur '" & @error & "' en provenance de AD")
EndIf
EndIf
EndSwitch
WEnd
Func _listOU()
Local $listecomboservice
Global $aOUs = _AD_GetAllOUs()
If @error > 0 Then
MsgBox(64, "Erreur", "Impossible de joindre l'AD")
Else
For $i = 1 To $aOUs[0][0] Step 1
$tempo = StringSplit($aOUs[$i][0], "\")
;~ If $tempo[1] = "Hmb" Then
$listecomboservice = $listecomboservice & "|" & $aOUs[$i][0]
;~ EndIf
Next
EndIf
Return ($listecomboservice)
EndFunc ;==>_listOU
Func _objetinouselect($ousource)
Local $listecomboserviceuser
For $i = 1 To $aOUs[0][0] Step 1
If $aOUs[$i][0] = $ousource Then
$sOU = $aOUs[$i][1]
ExitLoop
EndIf
Next
$aObjects = _AD_GetObjectsInOU($sOU, "(name=*)", 2, "sAMAccountName,distinguishedName,displayname")
If @error > 0 Then
MsgBox(64, "Erreur", "l'OU est introuvable")
Else
For $i = 1 To $aObjects[0][0] Step 1
$listecomboserviceuser = $listecomboserviceuser & "|" & $aObjects[$i][0]
Next
EndIf
Return ($listecomboserviceuser)
EndFunc ;==>_objetinouselect