Question
Création d'OU..Problème
- jean
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 24
- Remerciements reçus 0
il y a 12 ans 7 mois #15572
par jean
Réponse de jean sur le sujet Re:Création d'OU..Problème
C'est exactement pareil que toi mon fichier csv SAUF que :
La première OU est la même soit :
[code:1]test\domaine\lan
test\testN1\domaine\lan[/code:1]
Fais ça et tu verras une erreur normalement..
Oui j'ai bien ISE et j'ai fait le pas à pas et je vois qui rentre dans mon catch mais je sais pas pourquoi.<br><br>Message édité par: jean21, à: 9/08/13 16:52
La première OU est la même soit :
[code:1]test\domaine\lan
test\testN1\domaine\lan[/code:1]
Fais ça et tu verras une erreur normalement..
Oui j'ai bien ISE et j'ai fait le pas à pas et je vois qui rentre dans mon catch mais je sais pas pourquoi.<br><br>Message édité par: jean21, à: 9/08/13 16:52
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 12 ans 7 mois #15573
par Philippe
Réponse de Philippe sur le sujet Re:Création d'OU..Problème
j'ai modifier ton script et j'ai trouver de suite ou été l'erreur :
[code:1]
#Importation du fichier CSV et creation du lien LDAP
Import-CSV \"C:\test1.csv\" | Foreach {
#On recupere le champ \"ou\" du fichier CSV
$ch = $_.ou
$ch
#On split le champ \"ou\" sous forme de tableau
$extract = $ch.Split(\"\\"«»)
$extract
#On recupere la taille du tableau
$taille = $extract.Length-1
$taille
try
{
#Creation des OU (1er niveau)
$(\"DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille])
$extract[0]
New-ADOrganizationalUnit -Name $extract[0] -Path $(\"DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille]) -ProtectedFromAccidentalDeletion $false
#Creation OU (2eme niveau)
if ($taille -gt 2)
{
$(\"OU=\"+($extract[0])+\",DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille])
$extract[1]
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)
{
$(\"OU=\"+($extract[1])+\",OU=\"+($extract[0])+\",DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille])
$extract[2]
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)
{
$(\"OU=\"+($extract[2])+\",OU=\"+($extract[1])+\",OU=\"+($extract[0])+\",DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille])
$extract[3]
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)
{
$(\"OU=\"+($extract[3])+\",OU=\"+($extract[2])+\",OU=\"+($extract[1])+\",OU=\"+($extract[0])+\",DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille])
$extract[4]
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
{
Write-Host \"erreur\"
}
}[/code:1]
ta encore des problemes index ici
[code:1] New-ADOrganizationalUnit -Name $extract[0] -Path $(\"DC=\"+($extract[$taille-1])+\",DC=\"+$extrac.....[/code:1]pour \"-name $extractu]0[/u\" essai plutot avec $extract[$taille-2] puis -3 etc...
je te laisse regarder pour trouver ta solution
je reviens lundi pour la suite
bon week end
[code:1]
#Importation du fichier CSV et creation du lien LDAP
Import-CSV \"C:\test1.csv\" | Foreach {
#On recupere le champ \"ou\" du fichier CSV
$ch = $_.ou
$ch
#On split le champ \"ou\" sous forme de tableau
$extract = $ch.Split(\"\\"«»)
$extract
#On recupere la taille du tableau
$taille = $extract.Length-1
$taille
try
{
#Creation des OU (1er niveau)
$(\"DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille])
$extract[0]
New-ADOrganizationalUnit -Name $extract[0] -Path $(\"DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille]) -ProtectedFromAccidentalDeletion $false
#Creation OU (2eme niveau)
if ($taille -gt 2)
{
$(\"OU=\"+($extract[0])+\",DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille])
$extract[1]
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)
{
$(\"OU=\"+($extract[1])+\",OU=\"+($extract[0])+\",DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille])
$extract[2]
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)
{
$(\"OU=\"+($extract[2])+\",OU=\"+($extract[1])+\",OU=\"+($extract[0])+\",DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille])
$extract[3]
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)
{
$(\"OU=\"+($extract[3])+\",OU=\"+($extract[2])+\",OU=\"+($extract[1])+\",OU=\"+($extract[0])+\",DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille])
$extract[4]
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
{
Write-Host \"erreur\"
}
}[/code:1]
ta encore des problemes index ici
[code:1] New-ADOrganizationalUnit -Name $extract[0] -Path $(\"DC=\"+($extract[$taille-1])+\",DC=\"+$extrac.....[/code:1]pour \"-name $extractu]0[/u\" essai plutot avec $extract[$taille-2] puis -3 etc...
je te laisse regarder pour trouver ta solution
je reviens lundi pour la suite
bon week end
Connexion ou Créer un compte pour participer à la conversation.
- jean
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 24
- Remerciements reçus 0
il y a 12 ans 7 mois #15576
par jean
Réponse de jean sur le sujet Re:Création d'OU..Problème
Salut,
Alors voilà, j'ai regardé le pas à pas détaillé et quand dans mon fichier csv je met :
Filiale\Entreprise\Manager\domaine\fr
Et sur ce code :
[code:1]$taille = $extract.Length[/code:1]
$taille est égale à 2
Sachant qu'extract est le tableau splité il devrait être de taille 4 nan ? Est ce normal ou pense tu que cela vient de mon fichier csv ?
Alors voilà, j'ai regardé le pas à pas détaillé et quand dans mon fichier csv je met :
Filiale\Entreprise\Manager\domaine\fr
Et sur ce code :
[code:1]$taille = $extract.Length[/code:1]
$taille est égale à 2
Sachant qu'extract est le tableau splité il devrait être de taille 4 nan ? Est ce normal ou pense tu que cela vient de mon fichier csv ?
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 12 ans 7 mois #15577
par Philippe
Réponse de Philippe sur le sujet Re:Création d'OU..Problème
on doit pas avoir le meme code
car moi j'ai bien 4
pour [code:1]\"Filiale\Entreprise\Manager\domaine\fr\"[/code:1]
contenue de mon fichier csv :[code:1]\"OU\"
\"Filiale\Entreprise\Manager\domaine\fr\"
test\domaine\lan
test\testN1\domaine\lan[/code:1]
par contre petit conseil en passant
pour la phase developpement/debugage de ton script tu ne devrais pas mettre les try-catch
car ca tu ne vois pas le message d'erreur que tu pourrais avoir
et les rajoutes apres quand t'es sur que ton code fonctionne
pour pouvoir gere les possibles problemes de fonctionnement \"normal\" (ex: une OU existe deja)
mais ton probleme principale n'est pas la
dans [code:1] New-ADOrganizationalUnit -Name $extract[0] -Path $(\"DC=.....[/code:1]ton extract spliter est indexer par rapport au debut or il faut creer tes OU a partir de la racine donc de la fin de ta chaine extract
d'ou remplacer [code:1]$extract[0][/code:1]par[code:1]$extract[$taille-2][/code:1]
pour ton premier New-ADOrganizationalUnit pour avoir dans exemple manager
puis remplacer $extract[0] par $extract[$taille-3]pour ton deuxieme New-ADOrganizationalUnit pour avoir dans exemple entreprisse
etc etc etc
ce qui donne pour la premiere ligne de New-ADOrganizationalUnit[code:1]New-ADOrganizationalUnit -Name $extract[$taille-2] -Path $(\"DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille]) -ProtectedFromAccidentalDeletion $false
[/code:1] pour la deuxieme ligne [code:1]New-ADOrganizationalUnit -Name $extract[$taille-3] -Path $(\"OU=\"+($extract[$taille-2])+\",DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille]) -ProtectedFromAccidentalDeletion $false
[/code:1]
et remarque le -path qui a aussi changer pour suivre l'arborescence des OU<br><br>Message édité par: 6ratgus, à: 12/08/13 10:58
car moi j'ai bien 4
pour [code:1]\"Filiale\Entreprise\Manager\domaine\fr\"[/code:1]
contenue de mon fichier csv :[code:1]\"OU\"
\"Filiale\Entreprise\Manager\domaine\fr\"
test\domaine\lan
test\testN1\domaine\lan[/code:1]
par contre petit conseil en passant
pour la phase developpement/debugage de ton script tu ne devrais pas mettre les try-catch
car ca tu ne vois pas le message d'erreur que tu pourrais avoir
et les rajoutes apres quand t'es sur que ton code fonctionne
pour pouvoir gere les possibles problemes de fonctionnement \"normal\" (ex: une OU existe deja)
mais ton probleme principale n'est pas la
dans [code:1] New-ADOrganizationalUnit -Name $extract[0] -Path $(\"DC=.....[/code:1]ton extract spliter est indexer par rapport au debut or il faut creer tes OU a partir de la racine donc de la fin de ta chaine extract
d'ou remplacer [code:1]$extract[0][/code:1]par[code:1]$extract[$taille-2][/code:1]
pour ton premier New-ADOrganizationalUnit pour avoir dans exemple manager
puis remplacer $extract[0] par $extract[$taille-3]pour ton deuxieme New-ADOrganizationalUnit pour avoir dans exemple entreprisse
etc etc etc
ce qui donne pour la premiere ligne de New-ADOrganizationalUnit[code:1]New-ADOrganizationalUnit -Name $extract[$taille-2] -Path $(\"DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille]) -ProtectedFromAccidentalDeletion $false
[/code:1] pour la deuxieme ligne [code:1]New-ADOrganizationalUnit -Name $extract[$taille-3] -Path $(\"OU=\"+($extract[$taille-2])+\",DC=\"+($extract[$taille-1])+\",DC=\"+$extract[$taille]) -ProtectedFromAccidentalDeletion $false
[/code:1]
et remarque le -path qui a aussi changer pour suivre l'arborescence des OU<br><br>Message édité par: 6ratgus, à: 12/08/13 10:58
Connexion ou Créer un compte pour participer à la conversation.
- jean
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 24
- Remerciements reçus 0
il y a 12 ans 7 mois #15578
par jean
Réponse de jean sur le sujet Re:Création d'OU..Problème
Ah nan au temps pour moi la taille est bonne..
Ah super ! Ça a marché malgré qui me mette une erreur quand même..\"Une tentative d'ajout...\"
C'est pas possible de l'enlever cette erreur ? Avec un Silent par exemple ?
Une autre remarque : Ton code marche mais je suis obliger de mettre le lien à l'envers :
Par exemple pour qu'entreprise sois à la racine, je suis obligé de mettre dans le fichier csv :
..../.../Entreprise soit à la fin du lien..alors que moi j'aurais préféré mettre : Entreprise/.../...
Et j'aurais aimé le mettre au début : C'est pour cela que j'ai mis extract[0] etc etc..Mais c'est bizarre ça ne marche pas..<br><br>Message édité par: jean21, à: 12/08/13 14:40
Ah super ! Ça a marché malgré qui me mette une erreur quand même..\"Une tentative d'ajout...\"
C'est pas possible de l'enlever cette erreur ? Avec un Silent par exemple ?
Une autre remarque : Ton code marche mais je suis obliger de mettre le lien à l'envers :
Par exemple pour qu'entreprise sois à la racine, je suis obligé de mettre dans le fichier csv :
..../.../Entreprise soit à la fin du lien..alors que moi j'aurais préféré mettre : Entreprise/.../...
Et j'aurais aimé le mettre au début : C'est pour cela que j'ai mis extract[0] etc etc..Mais c'est bizarre ça ne marche pas..<br><br>Message édité par: jean21, à: 12/08/13 14:40
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 12 ans 7 mois #15579
par Philippe
Réponse de Philippe sur le sujet Re:Création d'OU..Problème
pour ce message :
[code:1]New-ADOrganizationalUnit : Une tentative d’ajout d’un objet dans l’annuaire avec un nom déjà utilisé s’est produite........[/code:1]
l'OU existe deja, tu peut testé quel existe avec par exemple :
[code:1]if (![ADSI]::exists(\"LDAP://OU=test,DC=domaine,DC=lan\"«»))
{
# L OU n'existe pas la créer
new-adorganiz.....
}[/code:1]
comme ca plus de message d'erreur a gere pour ce probleme
[code:1]New-ADOrganizationalUnit : Une tentative d’ajout d’un objet dans l’annuaire avec un nom déjà utilisé s’est produite........[/code:1]
l'OU existe deja, tu peut testé quel existe avec par exemple :
[code:1]if (![ADSI]::exists(\"LDAP://OU=test,DC=domaine,DC=lan\"«»))
{
# L OU n'existe pas la créer
new-adorganiz.....
}[/code:1]
comme ca plus de message d'erreur a gere pour ce probleme
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.053 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Création d'OU..Problème