Question Création d'OU..Problème

Plus d'informations
il y a 12 ans 7 mois #15589 par jean
Réponse de jean sur le sujet Re:Création d'OU..Problème
Ahh t'a géré il est vraiment optimisé ton code ! Tu en avais besoin aussi ? pourquoi si c'est pas trop indiscret ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 7 mois #15590 par jean
Réponse de jean sur le sujet Re:Création d'OU..Problème
Il y a certain bout de code que j'ai pas compris par contre :

[code:1]$extract1 = @()[/code:1]

[code:1] $extract1 += for($i=1;$i -le $taille ;$i++) {$extract[$taille-$i]}[/code:1]

[code:1]ok = get-ADOrganizationalUnit -Filter \"Name -eq `\"$_`\"\" | where {$_.DistinguishedName -eq \"$($ou),$($dc)\"}}[/code:1]

[code:1] $ou = \"OU=\"+$_[/code:1]

Si tu pourrais me les expliquer ça serait sympa ^^

Ton code passe tout le temps dans AD indisponible je comprends pas...

C'est ce bout de code qui coince : [code:1]-Filter \"Name -eq `\"$_`\"\"
[/code:1]<br><br>Message édité par: jean21, à: 13/08/13 15:11

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 7 mois #15592 par Philippe
Réponse de Philippe sur le sujet Re:Création d'OU..Problème
jean21 écrit:

Il y a certain bout de code que j'ai pas compris par contre :

Si tu pourrais me les expliquer ça serait sympa ^^

aller je me lance : :huh:

Pour[code:1]$extract1 = @()[/code:1]
creation d'un tableau (de chaine de caractere vide)

Pour[code:1] $extract1 += for($i=1;$i -le $taille ;$i++) {$extract[$taille-$i]}[/code:1]
le += rajoute un element au tableau $extract1

le for-next est une boucle qui lis les elements de $extract un par un, explication :
je commence par la fin element par element, $taille-1 puis $taille-2 etc... je reutilise l'extract et le taille de ton script
d ou le $extract[$taille-$i]

ex: pour Filiale Entreprise Manager domaine fr
Filiale a pour index 0 dans $extract
Entreprise a pour index 1 dans $extract
Manager a pour index 2 dans $extract
domaine a pour index 3 dans $extract
fr a pour index 4 dans $extract
$taille = 3 (5 elements -2 ) $taille = $extract.Length-2
donc a la premiere boucle for ca fait $taille-$i = 3-1 = 2 soit $extract[2] = Manager =&gt; $extract1 = \&quot;Manager\&quot;
au deuxieme passage dans for ca fait $taille-$i = 3-2 = 1 soit $extract[1] = Entreprise =&gt; $extract1 = \&quot;Manager\&quot;, \&quot;Entreprise\&quot;
au troisieme passage dans for ca fait $taille-$i = 3-3 = 0 soit $extract[0] = Filiale =&gt; $extract1 = \&quot;Manager\&quot;, \&quot;Entreprise\&quot;, \&quot;Filiale\&quot;
a la fin $extract1 = \&quot;Manager\&quot;, \&quot;Entreprise\&quot;, \&quot;Filiale\&quot;
voila pour cette ligne

[code:1]$dc = \&quot;DC=\&quot;+($extract[-2])+\&quot;,DC=\&quot;+$extract[-1][/code:1]non demander mais bon
ici $extract[-1] prend le dernier element de $extract
ici $extract[-2] prend le l'avant dernier element de $extract


Pour[code:1] $ou = \&quot;OU=\&quot;+$_[/code:1]
le $extract1 | foreach { renvoie chaque element de $extract dans $_ (variable du pipeline) un par un
donc au premier passage $ou = \&quot;OU=Manager\&quot;
au deuxieme passage $ou = \&quot;OU=Entreprise\&quot;
au troisieme passage et dernier $ou = \&quot;OU=Filiale\&quot;


Pour[code:1]$ok = get-ADOrganizationalUnit -Filter \&quot;Name -eq `\&quot;$_`\&quot;\&quot; | where {$_.DistinguishedName -eq \&quot;$($ou),$($dc)\&quot;}}[/code:1]
idem a ![ADSI]::exists(\&quot;LDAP://$(\&quot;OU=\&quot;+($extract[$taille-1])+\&quot;,DC=\&quot;+($extract[$taille])+\&quot;,DC=\&quot;+$extract[$taille+1])\&quot;)
soit verification si une OU existe sans generé d'erreur si l'OU est absente :

le get-ADOrganizationalUnit remvois toutes les OU de l'AD avec pour nom le contenue de la variable pipe $_ (exemple \&quot;Filiale\&quot;)

where {$_.DistinguishedName -eq \&quot;$($ou),$($dc)\&quot;} va donc filtrer le DistinguishedName correspond a celui rechercher (dans l'exemple : OU=Filiale,OU=Entreprise,OU=Manager,DC=domaine,DC=fr (une OU possible)
le resultat est remvoyer dans $ou

si $ok est vide rien trouver sinon contient les propriete de l'OU
il y plus cas testé dans le if !$ok si vide ou pas

si je n'est pas ete assez clair dis le moi

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 7 mois #15593 par Philippe
Réponse de Philippe sur le sujet Re:Création d'OU..Problème
jean21 écrit:

Ton code passe tout le temps dans AD indisponible je comprends pas...

C'est ce bout de code qui coince : [code:1]-Filter \&quot;Name -eq `\&quot;$_`\&quot;\&quot;
[/code:1]


quand tu dis \&quot;passe tout le temps...\&quot; tu veux dire que qu'il est tres lent ? ;)
si il s'arrete directement c'est qu'il n'a pas accee a l'AD
commente les lignes try et catch au dessus et en dessous
et donne moi le message d'erreur !


cette partie peut etre optimiser pour les grosses AD ou serveurs un peu lent

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 7 mois #15594 par Philippe
Réponse de Philippe sur le sujet Re:Création d'OU..Problème
jean21 écrit:

Ahh t'a géré il est vraiment optimisé ton code ! Tu en avais besoin aussi ? pourquoi si c'est pas trop indiscret ?


et bien tout est gere par un OpenLDAP chez nous
et on syncronize l'AD a cette LDAP par des commandes sous DOS depuis une interface web globale a notre SI :
- ajout d'OU pour un nouveau site
- ajout d'utilisateur pour un site
- trie des ordinateurs par site
- chanement de nom, mot de passe, de fonction, de site...
- droits et permisions
- etc...

tous ca va bientot etre remplacer en powershell, qui lui pourra intervenir dans le LDAP dans certain cas (par exemple : dectection du changement de mon de passe de session windows par l'utilisateur)
donc la je prend un peu d'avance

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 7 mois #15595 par jean
Réponse de jean sur le sujet Re:Création d'OU..Problème
6ratgus écrit:

jean21 écrit:

Ahh t'a géré il est vraiment optimisé ton code ! Tu en avais besoin aussi ? pourquoi si c'est pas trop indiscret ?


et bien tout est gere par un OpenLDAP chez nous
et on syncronize l'AD a cette LDAP par des commandes sous DOS depuis une interface web globale a notre SI :
- ajout d'OU pour un nouveau site
- ajout d'utilisateur pour un site
- trie des ordinateurs par site
- chanement de nom, mot de passe, de fonction, de site...
- droits et permisions
- etc...

tous ca va bientot etre remplacer en powershell, qui lui pourra intervenir dans le LDAP dans certain cas (par exemple : dectection du changement de mon de passe de session windows par l'utilisateur)
donc la je prend un peu d'avance


Ah d'accord, ah oui tu vas avoir du boulot là ^^

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.054 secondes
Propulsé par Kunena