Page 1 sur 1

[Ex] Création Compte AD

Posté : mar. 20 avr. 2010 11:12
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

Re: [Ex] Création Compte AD

Posté : mar. 20 avr. 2010 15:01
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

Re: [Ex] Création Compte AD

Posté : mar. 20 avr. 2010 15:10
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

Re: [Ex] Création Compte AD

Posté : mar. 20 avr. 2010 15:25
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...

Re: [Ex] Création Compte AD

Posté : mar. 20 avr. 2010 18:49
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 ?

Re: [Ex] Création Compte AD

Posté : mar. 20 avr. 2010 19:29
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)

Re: [Ex] Création Compte AD

Posté : mer. 21 avr. 2010 09:28
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

Re: [Ex] Création Compte AD

Posté : mer. 21 avr. 2010 13:28
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("")

Re: [Ex] Création Compte AD

Posté : mar. 27 avr. 2010 15:42
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?

Re: [Ex] Création Compte AD

Posté : mar. 27 avr. 2010 20:52
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

Re: [Ex] Création Compte AD

Posté : mer. 28 avr. 2010 08:25
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.

Re: [Ex] Création Compte AD

Posté : mer. 28 avr. 2010 11:26
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

Re: [Ex] Création Compte AD

Posté : mer. 28 avr. 2010 14:54
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

Re: [Ex] Création Compte AD

Posté : mer. 28 avr. 2010 15:32
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

Re: [Ex] Création Compte AD

Posté : mer. 28 avr. 2010 15:43
par ricky
Je trouve que ça va avec. Merci beaucoup pour ton aide.

Re: [Ex] Création Compte AD

Posté : lun. 03 mai 2010 17:03
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

Re: [Ex] Création Compte AD

Posté : lun. 03 mai 2010 22:49
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:

Re: [Ex] Création Compte AD

Posté : mar. 04 mai 2010 23:33
par aikiox
Effectivement, je vais m'y pencher dessus :)

Merci

Re: [Ex] Création Compte AD

Posté : ven. 28 mai 2010 20:52
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