[Ex] Création Compte AD

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

[Ex] Création Compte AD

#1

Message par aikiox »

Bonjour,

J'ai créé un script pour la création de compte AD.
Par contre, il faut une architecture AD bien particuliaire mais il peut servir d'exemple.
► Afficher le texte
Cordialement
Romain
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [Ex] Création Compte AD

#2

Message par Yogui »

J'ai un script quasi identique en début de semaine :
mais j'utilise l'include AD.AU3 disponible ICI

(j'ai fait un peu de ménage dans mon script qui va en plus écrire dans les base d'autre application donc si certaine variable ne sont pas utilisée c'est normal)
► Afficher le texte
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

Re: [Ex] Création Compte AD

#3

Message par aikiox »

Bonjour,

Script vraiment excellent !
Mais nous cherchons a créer des comptes très rapidements sans taper trop d'information (Profils, mot de passe, changement de mot de passe...ect)

Je le garde de coté !!

Cordialement
Romain
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [Ex] Création Compte AD

#4

Message par Yogui »

Le but de ce script est pour nous de ne saisir qu'une seule fois les informations...

Comme je l'ai dit je l'ai vraiment allégé pour le poster ici ... La version "full" tape dans plusieurs bases de données pour créer les utilisateurs (d'où l'obligation d'être le plus complet possible) de plus je pense qu'un AD bien renseigné et bien hiérarchisé est une obligation pour simplifier la mise en place d'application LDAP et plus simplement d'un annuaire téléphonique AD...
Avatar du membre
Natsu
Niveau 2
Niveau 2
Messages : 26
Enregistré le : sam. 17 avr. 2010 20:40
Status : Hors ligne

Re: [Ex] Création Compte AD

#5

Message par Natsu »

Je n'ai pas comprit le but de ce script et ce qu'est la création de compte AD ^^'
Pouvez-vous m'éclaircir sur le sujet ?
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [Ex] Création Compte AD

#6

Message par Yogui »

lorsque l'on travail en entreprise on travail le plus souvent avec un active directory ce qui permet entre autre de créer les utilisateurs de façon global un utilisateur est autoriser à se connecter à tous les ordinateurs de l'entreprise (du domaine) contrairement à l'utilisation domestique ou les compte utilisateurs sont définit par poste (cliques droit sur le poste de travail gérer utilisateur et groupe locaux).

petit lien concernant l'AD:
http://fr.wikipedia.org/wiki/Active_Directory

ou pour le coté libre et gratuit :

http://fr.wikipedia.org/wiki/OpenLDAP (les scripts de ce topic ne fonctionnent pas sous open ldap mais un include existe)
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

Re: [Ex] Création Compte AD

#7

Message par aikiox »

Bonjour,

Effectivement, nos deux scripts font deux choses differentes.
Le gros avantage du tien, c'est qu'il peut s'adapter dans n'importe quelle architecture AD.

J'ai modifier le script pour créer jusqu'a 10 comptes.

Cordialement
Romain
Fichiers joints
comptead.au3
(168.23 Kio) Téléchargé 411 fois
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [Ex] Création Compte AD

#8

Message par Yogui »

ton code un petit peu modifié :
► Afficher le texte
sinon juste pour la forme un case serai plus beau que ces If imbriqué.

Petite astuce pour sortir d'une fonction le return("")
Avatar du membre
ricky
Niveau 7
Niveau 7
Messages : 443
Enregistré le : ven. 06 févr. 2009 09:25
Localisation : Suisse
Status : Hors ligne

Re: [Ex] Création Compte AD

#9

Message par ricky »

Hello,

Yogui, j'aime beaucoup ton code quelques topics plus haut...

Mais j'ai un problème, je cherche à créer un compte local, je ne vois pas comment faire.

Ce compte doit être admin, je fourni le nom, le descriptif et le mot de passe. Celui-ci ne doit jamais expirer et l'utilisateur ne peut pas le changer. Le but de ce compte est de pouvoir lancer des services sous ce compte. Peux-tu m'aider?
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [Ex] Création Compte AD

#10

Message par Yogui »

un truc comme ça ?

Code : Tout sélectionner

Func _CreateAccount($strUserName,$strFullName,$strPassword,$strGroup)
; RETRIEVE Computer Name
Dim $objNetwork, $strComputerName
$objNetwork = ObjCreate("WScript.Network")
$strComputer = $objNetwork.ComputerName
; Code To add User
$objSystem = ObjGet("WinNT://" & $strComputer)
$objUser = $objSystem.Create("user", $strUserName)
$objUser.FullName = $strFullName
$objUser.SetPassword ($strPassword)

;~ Pour Info Voici les différents flags en hexa.
;~ 0x2      Account Disabled
;~ 0x10     Account Locked out
;~ 0x20     Password Not Required
;~ 0x40     Cannot Change Password
;~ 0x10000  Password Never Expires
;~ 0x800000 Password Expired

$objUser.userFlags = 0x10000
$objUser.SetInfo
; Code to add User to Group
$objGroup = ObjGet("WinNT://" & $strComputer & "/" & $strGroup)
$objGroup.Add("WinNT://" & $strUserName)
EndFunc
Je n'ai rien inventé j'ai trouvé ce script sur le forum :

http://www.autoitscript.fr/forum/viewto ... &view=next
Avatar du membre
ricky
Niveau 7
Niveau 7
Messages : 443
Enregistré le : ven. 06 févr. 2009 09:25
Localisation : Suisse
Status : Hors ligne

Re: [Ex] Création Compte AD

#11

Message par ricky »

Parfait, merci beaucoup, j'ai pas assez bien cherché.

Dernière question, ou puis-je trouver des infos sur : $objUser.? Car j'aimerais rajouter le descriptif et voir les possibilités. J'ai rien trouvé dans le help d'autoit.
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [Ex] Création Compte AD

#12

Message par Yogui »

L'aide d'autoit ne peux pas grand chose pour toi il faut aller à la pèche du coté de microsoft l'objet étant un objet windows.

par contre si la structure et la même que pour un AD la description doit être :

$objUser.description= "test"

Mais sans aucune garantie
Avatar du membre
ricky
Niveau 7
Niveau 7
Messages : 443
Enregistré le : ven. 06 févr. 2009 09:25
Localisation : Suisse
Status : Hors ligne

Re: [Ex] Création Compte AD

#13

Message par ricky »

Merci yogui, c'est tout à fait ça!

J'ai trouvé un code pour énumérer les comptes, mais je n'arrive pas à le traduire en auto-it, qqn peut m'aider :

Code : Tout sélectionner

Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
Set colAccounts = GetObject("WinNT://" & strComputer & "")
colAccounts.Filter = Array("user")
For Each objUser In colAccounts
    Wscript.Echo objUser.Name 
Next
Merci d'avance
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [Ex] Création Compte AD

#14

Message par Yogui »

Code : Tout sélectionner

$colAccounts = ObjGet("WinNT://" & @ComputerName)
$colAccounts.Filter ="user"
MsgBox(0, "", IsArray($colAccounts))
For $objUser In $colAccounts
    MsgBox(0, "Liste des utilisateurs", $objUser.Name)
Next
Par contre je pense qu'il serai pas mal d'ouvrir de nouveau topic pour ces demandes afin de facilité la recherche sur le forum
Avatar du membre
ricky
Niveau 7
Niveau 7
Messages : 443
Enregistré le : ven. 06 févr. 2009 09:25
Localisation : Suisse
Status : Hors ligne

Re: [Ex] Création Compte AD

#15

Message par ricky »

Je trouve que ça va avec. Merci beaucoup pour ton aide.
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

Re: [Ex] Création Compte AD

#16

Message par aikiox »

Bonjour,

Me revoila,

Voici la création de compte AD a partir d'un fichier EXCEL.

Code : Tout sélectionner

[spoiler=]#include <Excel.au3>
$fichier = @ScriptDir & "\comptead.xls"

If FileExists(@ScriptDir&"\compteAD.xls") = 1 Then
_ExcelBookOpen($fichier)
$oExcel = ObjGet("","Excel.Application")
$oExcel.SheetsInNewWorkbook = 1
$oExcel.Visible = 0



for $i = 0 to 100 step 1
$nom = $oExcel.Activesheet.Cells(1+$i,1).Value
$prenom = $oExcel.Activesheet.Cells(1+$i,2).Value
$fonction = $oExcel.Activesheet.Cells(1+$i,3).Value


select
case    $fonction = "Direction"
Run(@ComSpec & " /c " & 'dsadd user cn="'&$prenom&" "&$nom&'",ou=Utilisateurs,ou="Service Direction",dc=drinkevol,dc=lan -upn "'&$prenom&"."&$nom&'"@drinkevol.lan -ln "'&$nom&'" -fn "'&$prenom&'" -display "'&$prenom&" "&$nom&'" -pwd '&StringUpper(StringLeft($prenom, 1))&StringLower(StringLeft($nom, 1))&"123456"&' -profile "\\evodeb1\profils\'&$prenom&"."&$nom&'" -hmdir \\evodeb1\commun\ -hmdrv U: -memberof cn=Direction,ou=Utilisateurs,ou="Service Direction",dc=drinkevol,dc=lan -samid '&$prenom&"."&$nom&' -mustchpwd yes', "", @SW_HIDE)
MsgBox(0,"Direction", $prenom&" "&$nom&" fait partie de la Direction",1)

Case $fonction = "Administration"
Run(@ComSpec & " /c " & 'dsadd user cn="'&$prenom&" "&$nom&'",ou=Utilisateurs,ou="Service Administratif",dc=drinkevol,dc=lan -upn "'&$prenom&"."&$nom&'"@drinkevol.lan -ln "'&$nom&'" -fn "'&$prenom&'" -display "'&$prenom&" "&$nom&'" -pwd '&StringUpper(StringLeft($prenom, 1))&StringLower(StringLeft($nom, 1))&"123456"&' -profile "\\evodeb1\profils\'&$prenom&"."&$nom&'" -hmdir \\evodeb1\commun\ -hmdrv U: -memberof cn=Administration,ou=Utilisateurs,ou="Service Administratif",dc=drinkevol,dc=lan -samid '&$prenom&"."&$nom&' -mustchpwd yes', "", @SW_HIDE)
MsgBox(0,"Administration", $prenom&" "&$nom&" fait partie de l'Administration",1)

case $Fonction = "Production 1"
Run(@ComSpec & " /c " & 'dsadd user cn="'&$prenom&" "&$nom&'",ou=Utilisateurs,ou="Production 1",ou="Service Production",dc=drinkevol,dc=lan -upn "'&$prenom&"."&$nom&'"@drinkevol.lan -ln "'&$nom&'" -fn "'&$prenom&'" -display "'&$prenom&" "&$nom&'" -pwd '&StringUpper(StringLeft($prenom, 1))&StringLower(StringLeft($nom, 1))&"123456"&' -profile "\\evodeb1\profils\'&$prenom&"."&$nom&'" -hmdir \\evodeb1\commun\ -hmdrv U: -memberof cn=Production1,ou=Utilisateurs,ou="Production 1",ou="Service Production",dc=drinkevol,dc=lan -samid '&$prenom&"."&$nom&' -mustchpwd yes', "", @SW_HIDE)
MsgBox(0,"Production 1", $prenom&" "&$nom&" fait partie de la Production 1",1)

case $Fonction = "Production 2"
Run(@ComSpec & " /c " & 'dsadd user cn="'&$prenom&" "&$nom&'",ou=Utilisateurs,ou="Production 2",ou="Service Production",dc=drinkevol,dc=lan -upn "'&$prenom&"."&$nom&'"@drinkevol.lan -ln "'&$nom&'" -fn "'&$prenom&'" -display "'&$prenom&" "&$nom&'" -pwd '&StringUpper(StringLeft($prenom, 1))&StringLower(StringLeft($nom, 1))&"123456"&' -profile "\\evodeb1\profils\'&$prenom&"."&$nom&'" -hmdir \\evodeb1\commun\ -hmdrv U: -memberof cn=Production2,ou=Utilisateurs,ou="Production 2",ou="Service Production",dc=drinkevol,dc=lan -samid '&$prenom&"."&$nom&' -mustchpwd yes', "", @SW_HIDE)
MsgBox(0,"Production 2", $prenom&" "&$nom&" fait partie de la Production 2",1)

case $Fonction = "Informatique"
Run(@ComSpec & " /c " & 'dsadd user cn="'&$prenom&" "&$nom&'",ou=Utilisateurs,ou="Service Informatique",dc=drinkevol,dc=lan -upn "'&$prenom&"."&$nom&'"@drinkevol.lan -ln "'&$nom&'" -fn "'&$prenom&'" -display "'&$prenom&" "&$nom&'" -pwd '&StringUpper(StringLeft($prenom, 1))&StringLower(StringLeft($nom, 1))&"123456"&' -profile "\\evodeb1\profils\'&$prenom&"."&$nom&'" -hmdir \\evodeb1\commun\ -hmdrv U: -memberof cn=Technique,ou=Utilisateurs,ou="Service Informatique",dc=drinkevol,dc=lan -samid '&$prenom&"."&$nom&' -mustchpwd yes', "", @SW_HIDE)
MsgBox(0,"Informatique", $prenom&" "&$nom&" fait partie de la Informatique",1)

EndSelect
Next
Else
msgbox(64,"ERREUR","Le fichier CompteAD.xls n'est pas présent dans "&@ScriptDir)
EndIf
ProcessClose("Excel.exe")[/spoiler]
Cordialement
Romain
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Ex] Création Compte AD

#17

Message par Tlem »

Je n'ai fait que survolé ce sujet. Mais en 'réponse' au script du premier message, le voici quelque peut amélioré dans l'écriture. ;)
► Afficher le texte
AutoIt permet de limiter certaine répétition de code, ou redondance. Alors autant en profiter. :mrgreen:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

Re: [Ex] Création Compte AD

#18

Message par aikiox »

Effectivement, je vais m'y pencher dessus :)

Merci
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

Re: [Ex] Création Compte AD

#19

Message par aikiox »

Bonjour,

Je reviens vers vous car j'ai modifié le code.

Nous avons en plus du code, un fichier excel nommé : comptead.xls

Il y a trois colonne :

_______________________
| Nom | Prénom | Service |
_______________________


Maintenant il vérifie si :

-Le fichier excel est présent ou non

- Compte le nombre de case active

- Vérifie s'il y a quelque chose d'écrit dans la colonne nom et prénom

- Vérifie la colonne service en affichant un message d'erreur s'il y a quelque chose d'écrit autre qu' "Administration","Direction","Informatique","Production 1", "Production 2".

- Supprime les espaces dans le nom et prénom

- Il crée le compte puis affiche un message d'information si le compte est bien crée ou existe ou erreur.

- A la fin, il affiche le nombre de compte crée correctement.


Voici le code :

► Afficher le texte
Si vous avez des modifications, je suis preneur.

Cordialement
Romain
Fichiers joints
comptead.xls
(9.8 Kio) Téléchargé 276 fois
Modifié en dernier par Yogui le ven. 28 mai 2010 20:52, modifié 1 fois.
Raison : Suppression de la balise center ajout de la balise Code
Répondre