lol tu as raison, je ne dois pas être super clair^^.
alors voilà mon script : (j'utilise aussi comme #include le module AD.au3 de Jonthan Clelland)
► Afficher le texte
;===============================================================================
;******************** CREATION D'UN NOUVEAU SITE AD ****************************
;===============================================================================
;
#include <GUIconstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <ad.au3>
#include <ButtonConstants.au3>
Opt('MustDeclareVars', 1)
Global $AM, $AP, $EU, $optQuestion, $optNoIcon ; variable pour la sélection de l'OU source
Global $NewOUTitle, $NewOU ; Nom de la nouvelle OU
Global $SourceOU ; variable à laquelle on affectera l'OU source
_Main()
Func _Main()
Global $BTNEXIT, $BTNEXEC, $MSG, $NewSite
GUICreate("Créer une Structure OU pour un nouveau Site", 370, 340, 100, 100) ; crée la fenêtre globale d'interface
GUICtrlCreateLabel("Nom de l'OU à créer :", 10, 15, 110) ; crée un champ à saisir pour le nom de l'OU à créer
$NewOU = GUICtrlCreateInput("", 10, 30, 200, 20)
GUICtrlSetState(-1, $GUI_FOCUS)
GUICtrlSetTip(-1, "The title of the message box.")
GUICtrlCreateGroup("Région", 10, 100, 200, 130) ; crée une zone de sélection de la Région ou l'on doit créer l'OU
$AM = GUICtrlCreateRadio("AM", 20, 120, 100, 20)
GUICtrlSetState(-1, $GUI_CHECKED)
$AP = GUICtrlCreateRadio("AP", 20, 140, 100, 20)
$EU = GUICtrlCreateRadio("EU", 20, 160, 100, 20)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;ferme le groupe
$BTNEXEC = GUICtrlCreateButton("&Exécuter", 120, 310, 100)
GUICtrlSetTip(-1, "Show the MessageBox")
$BTNEXIT = GUICtrlCreateButton("&Exit", 230, 310, 100)
GUICtrlSetTip(-1, "Quit the program")
GUISetState() ; ouvre une fenêtre de dialogue vide
; Gestion des boutons de sélection (à modifier pour affecter chemin de l'OU à une variable selon de case select)
While 1
$MSG = GUIGetMsg()
Select
Case $MSG = $GUI_EVENT_CLOSE Or $MSG = $BTNEXIT
Exit
Case $MSG = $BTNEXEC
$NewOU=GUICtrlRead($NewOUTitle)
Select
Case GUICtrlRead($AM) = $GUI_CHECKED
$SourceOU=("OU=AM,OU=TEST_GLOBAL,DC=domain,DC=corp") ;sélection de AM comme source
Case GUICtrlRead($AP) = $GUI_CHECKED
$SourceOU=("OU=AP,OU=TEST_GLOBAL,DC=domain,DC=corp") ;sélection de AP comme source
Case GUICtrlRead($EU) = $GUI_CHECKED
$SourceOU=("OU=EU,OU=TEST_GLOBAL,DC=domain,DC=corp") ;sélection de EU comme source
EndSelect
; Ouvrir une connection à l'AD
_AD_Open()
; *****************************************************************************
; Création des OU
; *****************************************************************************
; Création des OU et sous OU
Global $VerifCreationOU = _AD_CreateOU($SourceOU, "_NewSite")
; MsgBox(64, "Création des OU du Site : ", "TEST CREATION OU REUSSIE") ;MESSAGE DE TEST POUR REMPLACER LA LIGNE PRECEDENTE
;Vérification de la création de la nouvelle OU
; Global $VerifCreationOU ; VARIABLE DE TEST A UTILISER LORS DES TESTS
If $VerifCreationOU = 1 Then
MsgBox(64, "Création des OU du Site : ", "La création de l'OU du Site est réussie")
; Création des sous OU
Global $SourceOU1,$SourceOu2,$SourceOU3,$SourceOU4
$SourceOU1=(("OU=_NewSite,") & ($SourceOU))
_AD_CreateOU($SourceOU1, "Computers")
_AD_CreateOU($SourceOU1, "Delegation")
_AD_CreateOU($SourceOU1, "Groups")
_AD_CreateOU($SourceOU1, "Servers")
_AD_CreateOU($SourceOU1, "Service Accounts")
_AD_CreateOU($SourceOU1, "Users")
$SourceOU2=(("OU=Delegation,OU=_NewSite,") & ($SourceOU))
_AD_CreateOU($SourceOU2, "Roles")
_AD_CreateOU($SourceOU2, "Tasks")
$SourceOU3=(("OU=Tasks,OU=Delegation,OU=_NewSite,") & ($SourceOU))
_AD_CreateOU($SourceOU3, "Detailed Tasks")
_AD_CreateOU($SourceOU3, "Main Tasks")
$SourceOU4=(("OU=Detailed Tasks,OU=Tasks,OU=Delegation,OU=_NewSite,") & ($SourceOU))
_AD_CreateOU($SourceOU4, "Computer Administration")
_AD_CreateOU($SourceOU4, "Group Administration")
_AD_CreateOU($SourceOU4, "OU Administration")
_AD_CreateOU($SourceOU4, "SCCM Administration")
_AD_CreateOU($SourceOU4, "Server Administration")
_AD_CreateOU($SourceOU4, "Service Account Administration")
_AD_CreateOU($SourceOU4, "User Administration")
;MsgBox(64, "Création des sous OU du Site : ", "TEST CREATION OU REUSSIE" & @CRLF & $SourceOU1) ;MESSAGE DE TEST POUR REMPLACER LES LIGNES _AD_CreateOU
MsgBox(64, "Création des sous OU du Site : ", "Création des sous OU Terminée")
ElseIf @error = 1 Then
MsgBox(64, "Création des OU du Site : ","l'OU Source n'existe pas")
; Fermeture de la connection à l'AD
_AD_Close()
Exit
ElseIf @error = 2 Then
MsgBox(64, "Création des OU du Site : ","l'OU NewSite existe déja")
; Fermeture de la connection à l'AD
_AD_Close()
Exit
Else
; MsgBox(64, "Création des OU du Site : ", "Le code d'erreur : " & @error & " est renvoyé par l'Active Directory")
; Fermeture de la connection à l'AD
_AD_Close()
Exit
EndIf
; *****************************************************************************
; Création des Groupes (Roles et Taches)
; *****************************************************************************
; Création des groupes
Global $SourceOU5, $SourceOU6, $SourceOU7, $SourceOU8
Global $SourceOU9, $SourceOU10, $SourceOU11
Global $SourceOU12, $SourceOU13
$SourceOU5=(("OU=Computer Administration,OU=Detailed Tasks,OU=Tasks,OU=Delegation,OU=_NewSite,") & ($SourceOU))
$SourceOU6=(("OU=Group Administration,OU=Detailed Tasks,OU=Tasks,OU=Delegation,OU=_NewSite,") & ($SourceOU))
$SourceOU7=(("OU=OU Administration,OU=Detailed Tasks,OU=Tasks,OU=Delegation,OU=_NewSite,") & ($SourceOU))
$SourceOU8=(("OU=SCCM Administration,OU=Detailed Tasks,OU=Tasks,OU=Delegation,OU=_NewSite,") & ($SourceOU))
$SourceOU9=(("OU=Server Administration,OU=Detailed Tasks,OU=Tasks,OU=Delegation,OU=_NewSite,") & ($SourceOU))
$SourceOU10=(("OU=Service Account Administration,OU=Detailed Tasks,OU=Tasks,OU=Delegation,OU=_NewSite,") & ($SourceOU))
$SourceOU11=(("OU=User Administration,OU=Detailed Tasks,OU=Tasks,OU=Delegation,OU=_NewSite,") & ($SourceOU))
$SourceOU12=(("OU=Main Tasks,OU=Tasks,OU=Delegation,OU=_NewSite,") & ($SourceOU))
$SourceOU13=(("OU=Roles,OU=Delegation,OU=_NewSite,") & ($SourceOU))
_AD_CreateGroup($SourceOU5, "_NewSite_Computers_Task_OUChangeAttributes")
_AD_CreateGroup($SourceOU5, "_NewSite_Computers_Task_OUCreate")
_AD_CreateGroup($SourceOU5, "_NewSite_Computers_Task_OUDelete")
_AD_CreateGroup($SourceOU5, "_NewSite_Computers_Task_OUMove")
_AD_CreateGroup($SourceOU5, "_NewSite_Computers_Task_OURename")
_AD_CreateGroup($SourceOU5, "_NewSite_Task_ComputerChangeAttributes")
_AD_CreateGroup($SourceOU5, "_NewSite_Task_ComputerCreate")
_AD_CreateGroup($SourceOU5, "_NewSite_Task_ComputerDelete")
_AD_CreateGroup($SourceOU5, "_NewSite_Task_ComputerEnableDisable")
_AD_CreateGroup($SourceOU5, "_NewSite_Task_ComputerJoin")
_AD_CreateGroup($SourceOU5, "_NewSite_Task_ComputerLocalAdmin")
_AD_CreateGroup($SourceOU5, "_NewSite_Task_ComputerMove")
_AD_CreateGroup($SourceOU5, "_NewSite_Task_ComputerResetAccount")
_AD_CreateGroup($SourceOU6, "_NewSite_Groups_Task_OUChangeAttributes")
_AD_CreateGroup($SourceOU6, "_NewSite_Groups_Task_OUCreate")
_AD_CreateGroup($SourceOU6, "_NewSite_Groups_Task_OUDelete")
_AD_CreateGroup($SourceOU6, "_NewSite_Groups_Task_OUMove")
_AD_CreateGroup($SourceOU6, "_NewSite_Groups_Task_OURename")
_AD_CreateGroup($SourceOU6, "_NewSite_Task_GroupChangeAttributes")
_AD_CreateGroup($SourceOU6, "_NewSite_Task_GroupCreate")
_AD_CreateGroup($SourceOU6, "_NewSite_Task_GroupDelete")
_AD_CreateGroup($SourceOU6, "_NewSite_Task_GroupMembership")
_AD_CreateGroup($SourceOU6, "_NewSite_Task_GroupMove")
_AD_CreateGroup($SourceOU6, "_NewSite_Task_GroupRename")
_AD_CreateGroup($SourceOU7, "_NewSite_Task_OUChangeAttributes")
_AD_CreateGroup($SourceOU7, "_NewSite_Task_OUCreate")
_AD_CreateGroup($SourceOU7, "_NewSite_Task_OUDelete")
_AD_CreateGroup($SourceOU7, "_NewSite_Task_OUMove")
_AD_CreateGroup($SourceOU7, "_NewSite_Task_OURename")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_AdministratorConsoleAccess")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_Computers_CollectionsModify")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_Computers_PackagesTriggerDistribution")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_Computers_RemoteTools")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_Computers_ResourcesManage")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_Computers_ResourcesRead")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_Depl_CollectionsModify")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_Depl_packagesTriggerDistribution")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_OSD_CollectionsModify")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_OSD_PackagesTriggerDistribution")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_PackagesManageDistribution")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_ReportsRun")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_Servers_CollectionsModify")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_Servers_PackagesTriggerDistribution")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_Servers_RemoteTools")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_Servers_ResourcesManage")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_Servers_ResourcesRead")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_SrvDepl_CollectionsModify")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_SrvDepl_PackagesTriggerDistribution")
_AD_CreateGroup($SourceOU8, "_NewSite_Task_SCCM_TaskSequenceManage")
_AD_CreateGroup($SourceOU9, "_NewSite_Servers_Task_OUChangeAttributes")
_AD_CreateGroup($SourceOU9, "_NewSite_Servers_Task_OUCreate")
_AD_CreateGroup($SourceOU9, "_NewSite_Servers_Task_OUDelete")
_AD_CreateGroup($SourceOU9, "_NewSite_Servers_Task_OUMove")
_AD_CreateGroup($SourceOU9, "_NewSite_Servers_Task_OURename")
_AD_CreateGroup($SourceOU9, "_NewSite_Task_ServerCreate")
_AD_CreateGroup($SourceOU9, "_NewSite_Task_ServerDelete")
_AD_CreateGroup($SourceOU9, "_NewSite_Task_ServerEnableDisable")
_AD_CreateGroup($SourceOU9, "_NewSite_Task_ServerJoin")
_AD_CreateGroup($SourceOU9, "_NewSite_Task_ServerLocalAdmin")
_AD_CreateGroup($SourceOU9, "_NewSite_Task_ServerMove")
_AD_CreateGroup($SourceOU9, "_NewSite_Task_ServerResetAccount")
_AD_CreateGroup($SourceOU10, "_NewSite_ServiceAccounts_Task_OUChangeAttributes")
_AD_CreateGroup($SourceOU10, "_NewSite_ServiceAccounts_Task_OUCreate")
_AD_CreateGroup($SourceOU10, "_NewSite_ServiceAccounts_Task_OUDelete")
_AD_CreateGroup($SourceOU10, "_NewSite_ServiceAccounts_Task_OUMove")
_AD_CreateGroup($SourceOU10, "_NewSite_ServiceAccounts_Task_OURename")
_AD_CreateGroup($SourceOU10, "_NewSite_Task_ServiceAccountCreate")
_AD_CreateGroup($SourceOU10, "_NewSite_Task_ServiceAccountDelete")
_AD_CreateGroup($SourceOU10, "_NewSite_Task_ServiceAccountEnableDisable")
_AD_CreateGroup($SourceOU10, "_NewSite_Task_ServiceAccountInformationAdmin")
_AD_CreateGroup($SourceOU10, "_NewSite_Task_ServiceAccountMove")
_AD_CreateGroup($SourceOU10, "_NewSite_Task_ServiceAccountRename")
_AD_CreateGroup($SourceOU10, "_NewSite_Task_ServiceAccountResetPassword")
_AD_CreateGroup($SourceOU10, "_NewSite_Task_ServiceAccountUnlock")
_AD_CreateGroup($SourceOU11, "_NewSite_Task_UserCreate")
_AD_CreateGroup($SourceOU11, "_NewSite_Task_UserDelete")
_AD_CreateGroup($SourceOU11, "_NewSite_Task_UserEnableDisable")
_AD_CreateGroup($SourceOU11, "_NewSite_Task_UserInformationAdmin")
_AD_CreateGroup($SourceOU11, "_NewSite_Task_UserMove")
_AD_CreateGroup($SourceOU11, "_NewSite_Task_UserRename")
_AD_CreateGroup($SourceOU11, "_NewSite_Task_UserResetPassword")
_AD_CreateGroup($SourceOU11, "_NewSite_Task_UserUnlock")
_AD_CreateGroup($SourceOU11, "_NewSite_Users_Task_OUChangeAttributes")
_AD_CreateGroup($SourceOU11, "_NewSite_Users_Task_OUCreate")
_AD_CreateGroup($SourceOU11, "_NewSite_Users_Task_OUDelete")
_AD_CreateGroup($SourceOU11, "_NewSite_Users_Task_OUMove")
_AD_CreateGroup($SourceOU11, "_NewSite_Users_Task_OURename")
_AD_CreateGroup($SourceOU12, "_NewSite_Task_ComputersManagement")
_AD_CreateGroup($SourceOU12, "_NewSite_Task_GPOLink")
_AD_CreateGroup($SourceOU12, "_NewSite_Task_GPOManagement")
_AD_CreateGroup($SourceOU12, "_NewSite_Task_GroupsManagement")
_AD_CreateGroup($SourceOU12, "_NewSite_Task_LocalAdmin")
_AD_CreateGroup($SourceOU12, "_NewSite_Task_LogonScriptManagement")
_AD_CreateGroup($SourceOU12, "_NewSite_Task_OUManagement")
_AD_CreateGroup($SourceOU12, "_NewSite_Task_ServersManagement")
_AD_CreateGroup($SourceOU12, "_NewSite_Task_ServiceAccountsManagement")
_AD_CreateGroup($SourceOU12, "_NewSite_Task_UsersManagement")
_AD_CreateGroup($SourceOU13, "_NewSite_Role_SCCMAdmin")
_AD_CreateGroup($SourceOU13, "_NewSite_Role_SCCMReader")
_AD_CreateGroup($SourceOU13, "_NewSite_Role_SiteOperator")
MsgBox(64, "Création des Rôles et Taches :", "Création des Rôles et des taches Terminée")
; ***********************************************************************************
; Affectation des Groupes (Rôles et Taches globaux et régionaux) aux groupes locaux
; ***********************************************************************************
Select
Case $SourceOU=("OU=AM,OU=TEST_GLOBAL,DC=domain,DC=corp")
_AD_AddUserToGroup("_NewSite_Task_ComputersManagement", "AM_Task_ComputersManagement")
_AD_AddUserToGroup("_NewSite_Task_GPOManagement", "AM_Task_GPOManagement")
_AD_AddUserToGroup("_NewSite_Task_GroupsManagement", "AM_Task_GroupsManagement")
_AD_AddUserToGroup("_NewSite_Task_LogonScriptManagement", "AM_Task_LogonScriptManagement")
_AD_AddUserToGroup("_NewSite_Task_OUManagement", "AM_Task_OUManagement")
_AD_AddUserToGroup("_NewSite_Task_LocalAdmin", "AM_Task_RegionAdmin")
_AD_AddUserToGroup("_NewSite_Task_ServersManagement", "AM_Task_ServersManagement")
_AD_AddUserToGroup("_NewSite_Task_ServiceAccountsManagement", "AM_Task_ServiceAccountsManagement")
_AD_AddUserToGroup("_NewSite_Task_UsersManagement", "AM_Task_UsersManagement")
_AD_AddUserToGroup("_NewSite_Role_SiteOperator", "AM_Role_RegionOperator")
_AD_AddUserToGroup("_NewSite_Role_SCCMAdmin", "AM_Role_SCCMAdmin")
Case $SourceOU=("OU=AP,OU=TEST_GLOBAL,DC=domain,DC=corp")
_AD_AddUserToGroup("_NewSite_Task_ComputersManagement", "AP_Task_ComputersManagement")
_AD_AddUserToGroup("_NewSite_Task_GPOManagement", "AP_Task_GPOManagement")
_AD_AddUserToGroup("_NewSite_Task_GroupsManagement", "AP_Task_GroupsManagement")
_AD_AddUserToGroup("_NewSite_Task_LogonScriptManagement", "AP_Task_LogonScriptManagement")
_AD_AddUserToGroup("_NewSite_Task_OUManagement", "AP_Task_OUManagement")
_AD_AddUserToGroup("_NewSite_Task_LocalAdmin", "AP_Task_RegionAdmin")
_AD_AddUserToGroup("_NewSite_Task_ServersManagement", "AP_Task_ServersManagement")
_AD_AddUserToGroup("_NewSite_Task_ServiceAccountsManagement", "AP_Task_ServiceAccountsManagement")
_AD_AddUserToGroup("_NewSite_Task_UsersManagement", "AP_Task_UsersManagement")
_AD_AddUserToGroup("_NewSite_Role_SiteOperator", "AP_Role_RegionOperator")
_AD_AddUserToGroup("_NewSite_Role_SCCMAdmin", "AP_Role_SCCMAdmin")
Case $SourceOU=("OU=EU,OU=TEST_GLOBAL,DC=domain,DC=corp")
_AD_AddUserToGroup("_NewSite_Task_ComputersManagement", "EU_Task_ComputersManagement")
_AD_AddUserToGroup("_NewSite_Task_GPOManagement", "EU_Task_GPOManagement")
_AD_AddUserToGroup("_NewSite_Task_GroupsManagement", "EU_Task_GroupsManagement")
_AD_AddUserToGroup("_NewSite_Task_LogonScriptManagement", "EU_Task_LogonScriptManagement")
_AD_AddUserToGroup("_NewSite_Task_OUManagement", "EU_Task_OUManagement")
_AD_AddUserToGroup("_NewSite_Task_LocalAdmin", "EU_Task_RegionAdmin")
_AD_AddUserToGroup("_NewSite_Task_ServersManagement", "EU_Task_ServersManagement")
_AD_AddUserToGroup("_NewSite_Task_ServiceAccountsManagement", "EU_Task_ServiceAccountsManagement")
_AD_AddUserToGroup("_NewSite_Task_UsersManagement", "EU_Task_UsersManagement")
_AD_AddUserToGroup("_NewSite_Role_SiteOperator", "EU_Role_RegionOperator")
_AD_AddUserToGroup("_NewSite_Role_SCCMAdmin", "EU_Role_SCCMAdmin")
EndSelect
MsgBox(64, "Affectation des Groupes (Globaux et Régionaux) aux groupes locaux :", "Les Rôles et Taches Globaux et Régionaux ont bien pris en compte le nouveau Site")
; ***********************************************************************************
; Affectation des ACL de chaque OU
; ***********************************************************************************
Global $parametresLDIFDE
Global $LDIFDE = "C:\Windows\System32\ldifde.exe"
Select
Case $SourceOU=("OU=AM,OU=TEST_GLOBAL,DC=domain,DC=corp")
$parametresLDIFDE = " -i -f ACL_AM.txt"
Case $SourceOU=("OU=AP,OU=TEST_GLOBAL,DC=domain,DC=corp")
$parametresLDIFDE = " -i -f ACL_AP.txt"
Case $SourceOU=("OU=EU,OU=TEST_GLOBAL,DC=domain,DC=corp")
$parametresLDIFDE = " -i -f ACL_EU.txt"
EndSelect
ShellExecuteWait ($LDIFDE , $parametresLDIFDE)
; Fermeture de la connection à l'AD
_AD_Close()
exit ; A DECALER POUR LA SUITE DU SCRIPT
;prévoir renommage de _newSite à la fin
EndSelect
WEnd
EndFunc ;==>_Main
c'est la partie affectation des ACL que je n'arrive pas à faire.
apparemment il faut modifier les paramètres du nTSecurityDescriptor mais je ne comprends pas comment il fonctionne
quand j'aurais fini ce script pour ma société, j'en ferai une adaptation pour le forum avec possibilité de choisir l'OU source et les noms d'OU et sous OU, de groupes.
Stéphane A.