IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Déverrouillage de tous les comptes d'une OU et de ses sous-OU dans AD


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Points : 16
    Points
    16
    Par défaut Déverrouillage de tous les comptes d'une OU et de ses sous-OU dans AD
    Bonjour,

    Je cherche à faire un script VBS qui déverrouille tous les comptes verrouillés d'une OU en particulier (et de ses sous OU).

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    'Global variables
    	Dim oContainer
    	Dim lockedAccounts
    'Initialize global variables
    	Set oContainer=GetObject("WinNT://mon_domaine")
     
    'Enumerate Container
    	EnumerateUsers oContainer'Clean up
    	msgbox "Les comptes suivants étaient verrouillés : " & vbCrlf & lockedAccounts
    	Set oContainer = Nothing
    	WScript.Echo "Finished"
    	WScript.Quit(0)
     
    	Sub EnumerateUsers(oCont) 
    		Dim I
    		Dim TT
    		TT=False
    		I=0
    		For Each oUser In oCont	
    			Dim ComputerName, UserName
    			ComputerName = "mon_controleur_de_domaine"
                           UserName = oUser.Name
     
    			Set objShell = WScript.CreateObject("WScript.Shell" ) 
    			Set objUser = GetObject("WinNT://" & ComputerName & "/" & UserName)
     
    			If (objUser.IsAccountLocked = True) Then
    				lockedAccounts = lockedAccounts & UserName & vbCrlf 
    				objUser.IsAccountLocked = False
    				msgbox lockedAccounts
    				On Error Resume Next ' Gestion des erreur
    				'objUser.SetInfo
    				I=I+1
    				if Err <> 0 then
    					msgbox "Vous ne disposez pas des droits necessaires pour dévérrouiller le compte  "	& UserName & "." , vbcritical + vbSystemModal, "Erreur !"
    				end if
    			'Else
    				'msgbox "Le compte  "" " & UserName & " ""  n'est pas verrouillé.", vbInformation + vbSystemModal, "Info Lock User Account"
    			End If	
     
    		Next
    		Msgbox I & "comptes étaient verrouillés"
    	End Sub

    Le fait est que je ne veux pas appliquer mon traitement sur TOUS les comptes mais seulement ceux d'une OU.

    Quelqu'un aurait une solution?

    Merci d'avance

  2. #2
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Initialize global variables
    	Set oContainer=GetObject("WinNT://mon_domaine")
    Tu veux faire une requete dans l'AD mais tu charges un fournisseur WinNT (faut respectez la casse c'est l'exception de vbscript).

    Le fournisseur WinNT ne prends pas en compte l'architecture AD donc il va faire ton opération sur tous les comptes.

    Etant à mon domicile est n'ayant pas d'Active Directory devant le nez je ne peux pas t'apporter de réponse mais tu devrais chercher la solution avec le fournisseur LDAP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Initialize global variables
    	Set oContainer=GetObject("LDAP://dc=mon_domaine,dc=fr")
    Tu peux telecharger ADSI script automatic qui aide pas mal pour les scripts Active Directory.

    http://www.microsoft.com/downloads/d...displaylang=en

    Si j'ai un peu de temps je chercherai une réponse à ta question

    En esperant que ces informations puissent t'aider.

    il y'a un autre moyen de se connecter à l'AD c'est par la connexion ADO qui interroge l'AD seulement en lecture.

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/05/2007, 15h25
  2. afficher tous les champs d'une table
    Par julio84 dans le forum ASP
    Réponses: 8
    Dernier message: 19/01/2005, 10h31
  3. Retrouver tous les champs d'une table
    Par tripper.dim dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/07/2004, 20h40
  4. Afficher tous les champs d'une table avec dbexpress et MySQL
    Par LHT dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/06/2004, 17h11
  5. Envoie d'un message a TOUS les composant d'une form
    Par chddv dans le forum Composants VCL
    Réponses: 7
    Dernier message: 15/09/2003, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo