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

Plus d'informations
il y a 12 ans 7 mois #15557 par jean
Création d'OU..Problème a été créé par jean
Bonjour à tous,

Alors voilà je dois faire une création d'OU dans AD que j'ai codé comme cela :

[code:1]# Creation du fichier log
echo Creation du fichier log...
$fichierlog = \"C:\Users\Administrateur\Desktop\test.log\"

#Creation des enregistrements du script dans le fichier log
Start-Transcript -Path $fichierlog

#Importation du fichier CSV et creation du lien LDAP
echo Importation du fichier CSV et creation de lutilisateur...
Import-CSV C:\Users\Administrateur\Desktop\test.csv -Delimiter \";\" |
Foreach {

#On recupere le champ \"ou\" du fichier CSV
$ch = $_.ou

#On split le champ \"ou\" sous forme de tableau
$extract = $ch.Split(\"\\"«»)

#On recupere la taille du tableau
$taille = $extract.Length-1



try{
#Creation des OU (1er niveau)
New-ADOrganizationalUnit -Name $extract[0] -Path $(\"DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille]) -ProtectedFromAccidentalDeletion $false

if ($taille -gt 2)
{
#Creation OU (2eme niveau)
New-ADOrganizationalUnit -Name $extract[1] -Path $(\"OU=\"+($extract[0])+\",DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille]) -ProtectedFromAccidentalDeletion $false

#Creation OU (3eme niveau)
if($taille -gt 3) {
New-ADOrganizationalUnit -Name $extract[2] -Path $(\"OU=\"+($extract[1])+\",OU=\"+($extract[0])+\",DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille]) -ProtectedFromAccidentalDeletion $false
}
#Creation OU (4eme niveau)
if($taille -gt 4) {
New-ADOrganizationalUnit -Name $extract[3] -Path $(\"OU=\"+($extract[2])+\",OU=\"+($extract[1])+\",OU=\"+($extract[0])+\",DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille]) -ProtectedFromAccidentalDeletion $false}
}
if($taille -gt 5) {
New-ADOrganizationalUnit -Name $extract[4] -Path $(\"OU=\"+($extract[3])+\",OU=\"+($extract[2])+\",OU=\"+($extract[1])+\",OU=\"+($extract[0])+\",DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille]) -ProtectedFromAccidentalDeletion $false}
}catch{

echo erreur


}

}[/code:1]

Alors voilà dans mon fichier CSV j'ai un champ : ou
Il est sous la forme : Entreprise\domaine\fr

Le problème dans mon code : C'est quand il y a deux même OU mais pas sous OU.

Exemple : Entreprise \ domaine \ fr (Avec un antislash a la place des espaces)
Entreprise \ Manager \ domaine \ fr (idem)

Et ben ça ne marche pas..je suis vraiment déçu car ça m'aurait vraiment fait gagner du temps..Donc la je pense qu'il va falloir que je fasse appel à set-ADOrganizationalUnit..Enfin je sais pas quoi faire..

Pouvez vous me donner une piste svp..

Message édité par: jean21, à: 9/08/13 10:21<br><br>Message édité par: jean21, à: 9/08/13 10:23

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

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

Le problème dans mon code : C'est quand il y a deux même OU mais pas sous OU.

je crois que j'ai pas tout compris ! :sick:

[code:1]Entreprise\domaine\fr
Entreprise\Manager\domaine\fr[/code:1]

tes deux OU de meme nom sont dans deux niveaus differents donc pas de probleme (pas deux OU de meme nom au meme niveau d'OU)
et ton script a l'air bon !

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

Plus d'informations
il y a 12 ans 7 mois #15560 par jean
Réponse de jean sur le sujet Re:Création d'OU..Problème
Non c'est bien ça le problème..A partir du moment qu'il y a déjà une OU existante, quand elle est modifié ça ne marche plus, ça rentre dans le catch.

Si tu as les moyens, essaie tu verras bien..

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

Plus d'informations
il y a 12 ans 7 mois #15565 par Philippe
Réponse de Philippe sur le sujet Re:Création d'OU..Problème
peut tu me confirmé que tu a bien ce message d'erreur !

[code:1]New-ADOrganizationalUnit : Une tentative d’ajout d’un objet dans l’annuaire avec un nom déjà utilisé s’est produite
Au niveau de ligne : 1 Caractère : 25
+ New-ADOrganizationalUnit &lt;&lt;&lt;&lt; -Name $extract[0] -Path $(\&quot;DC=\&quot;+($extract[$taille-1])+\&quot;,DC=\&quot;+$extract[$taille]) -ProtectedFromAccidentalDeletion $false
+ CategoryInfo : NotSpecified: (OU=tesph,DC=test,DC=lan:«»String) [New-ADOrganizationalUnit], ADException
+ FullyQualifiedErrorId : Une tentative d’ajout d’un objet dans l’annuaire avec un nom déjà utilisé s’est produite,Microsoft.ActiveDirectory.Management.
Commands.NewADOrganizationalUnit[/code:1]

car en faite ton script ne test pas si l'OU existe dejas
et quand tu cree
Manager domaine fr
puis
Entreprise Manager domaine fr
ton script recree manager qui existe deja !!

comme je t'ai deja dis, ton fait bien ce que tu lui demande
il n'a qu'un probleme de conception/logique

rajopute :
[code:1]try {
Get-ADOrganizationalUnit $(\&quot;OU=\&quot;+($extract[0])+\&quot;,DC=\&quot;+($extract[$taille-1])+\&quot;,DC=\&quot;+$extract[$taille])
} catch {
# action a faire en cas d'erreur ou ne rien faire
}[/code:1] pour chaque creation d'OU par exemple

Mais en programmation et donc avec powershell, il y a souvent plusieurs techniques disponibles pour effectuer une meme action, c'est ce qui permet de s'adapter au mieu a chaque situation.

bon scriptage<br><br>Message édité par: 6ratgus, à: 9/08/13 16:12

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

Plus d'informations
il y a 12 ans 7 mois #15568 par jean
Réponse de jean sur le sujet Re:Création d'OU..Problème
Oui c'est bien ce message d'erreur qui se me : une tentative d'ajout etc etc..

Par contre ce n'est pas en mettant dans le fichier csv :
Manager domaine fr
puis
Entreprise Manager domaine fr
que ça me met l'erreur. D'ailleurs je tiens a préciser qui me crée deux OU quand je fais ça..L'OU manager et l'OU Entreprise avec Manager dedans.Comment je peux faire pour qu'ils fasse qu'un..

De plus, c'est en faisant ceci que ça pose problème :

Manager domaine fr
puis
Manager entreprise domaine fr



Donc ton code étant dans le try ne met que : Manager domaine fr et ne modifie pas en Manager entreprise domaine fr.


Vois tu ce que je veux dire ? Merci d'avance..<br><br>Message édité par: jean21, à: 9/08/13 14:40

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

Plus d'informations
il y a 12 ans 7 mois #15571 par Philippe
Réponse de Philippe sur le sujet Re:Création d'OU..Problème
peut tu donner un extrait de ton fichier CSV car je n'arrive pas a reproduire l'erreur avec ton script
si les OU n'existe pas dans l'AD et qu'il ne sont pas en double dans le fichier, je n'est pas d'erreur

contenue de mon fichier test.csv[code:1]\&quot;OU\&quot;
test\domaine\lan
testN2\testN1\domaine\lan[/code:1]

par contre quand je relance une deuxieme fois le script j'ai \&quot;erreur\&quot; car l'OU existe deja.

utilise tu \&quot;Windows PowerShell ISE\&quot; pour faire du pas à pas et voir ou ca coince ?

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

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