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

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

Ça m'affiche juste la première ligne..


donc avec ce code
[code:1] Import-CSV \"C:\test1.csv\" -Delimiter \";\" | Foreach {
$ch = $_.ou
$ch
}[/code:1]
si tu n'a que
[code:1]Filiale\Entreprise\Manager\domaine\fr[/code:1]
et pas
[code:1]Filiale\Entreprise\Manager\domaine\fr
test\domaine\fr
test\testN1\domaine\fr
test\test\testN1\domaine\fr[/code:1]

si ta variable $extract est vide alors le probleme est avant ca
[code:1]\"Name -eq '\"$_\"'\"[/code:1]

tu a bien un probleme a l'import

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

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

Pour le code j'ai un message d'erreur :

Execption lors de l'appel de \"Exists\" avec \"1\" argument : une référence a été renvoyé par le serveur.

Je ne vois pas du tout d'où ça peut venir :/


ton ordinateur est bien ton domaine ?
quel version de windows ?
quel version de l'AD ?
peut tu faire le test avec un autre poste ou sur le serveur AD ?

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

Plus d'informations
il y a 12 ans 7 mois #15619 par jean
Réponse de jean sur le sujet Re:Création d'OU..Problème
Autant pour moi, je suis un boulet ! J'ai oublié de mettre les DC donc au lieu de mettre par exemple :

Filiale\Entreprise\domaine\fr
je mettais la même chose sans domaine\fr donc forcément il trouvais pas l'AD --'

Quel con quand même lol désolé pour ce temps perdu mais au final c'est lequel le meilleur code ? celui là ou l'ancien que tu m'a passé ?

Merci pour tout, je pense que tu mérites de bonnes vacances ^^

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

Plus d'informations
il y a 12 ans 7 mois #15620 par Philippe
Réponse de Philippe sur le sujet Re:Création d'OU..Problème
heureux que tu est trouver le probleme
bon chance pour la suite

pour le moment le bon code est :

[code:1]
Set-StrictMode -version latest

Import-Module activedirectory

#Importation du fichier CSV et creation du lien LDAP
Import-CSV \"C:\test1.csv\" -Delimiter \";\" | Foreach {
#On recupere le champ \"ou\" du fichier CSV
$ch = $_.ou
if ($ch) {
Write-Host \"OU a créé .... \"$ch -foregroundcolor green
#On split le champ \"ou\" sous forme de tableau
$extract = $ch.Split(\"\\"«»)
#On recupere la taille du tableau
$taille = $extract.Length-2

# extraction du DC
$dc = \"DC=\"+($extract[-2])+\",DC=\"+$extract[-1]
$extract1 = @()
$ou = \"\"
# extraction des OU
$extract1 += for($i=1;$i -le $taille ;$i++) {$extract[$taille-$i]}
$extract1 | foreach {
$ou = \"OU=\"+$_
# test si l'OU existe
try { $ok = get-ADOrganizationalUnit -Filter \"Name -eq `\"$_`\"\" | where {$_.DistinguishedName -eq \"$($ou),$($dc)\"} }
catch { write-host \"erreur AD indisponible\" -foregroundcolor Red; exit }
if ($ok) {
write-host \"l OU est deja presente $($ou),$($dc)\" -foregroundcolor gray }
else
{ # rajout de l'OU
write-host \"l'OU $($ou),$($dc) n'existe pas, je la rajoute\"
try { New-ADOrganizationalUnit -Name $_ -Path $($dc) -ProtectedFromAccidentalDeletion $false }
catch { Write-Host \"erreur de creation de l'OU $($ou),$($dc)\" -foregroundcolor Red }
}
$dc = $ou + \",\" + $dc
}
}
}

[/code:1]

mais je doit le travailler pour le remdre plus \"souple\" :
passage d'argument
utilisation d'un DC en argument
utilisation d'un serveur AD en argument
utilisation du pipeline pour la liste des OU a creer
finalise la gestion d'erreur
et j'en oublie<br><br>Message édité par: 6ratgus, à: 16/08/13 10:45

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

Plus d'informations
il y a 12 ans 7 mois #15621 par jean
Réponse de jean sur le sujet Re:Création d'OU..Problème
Oui c'est sur on peut toujours l'améliorer, j'ai encore deux trois semaines devant moi donc j'ai un peu de temps

Encore merci et bonne vacances ; )

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

Plus d'informations
il y a 12 ans 7 mois #15623 par Laurent Dardenne
jean21 écrit:

Oula désolé mais là c'est compliqué..

Non, je te parle de choses que tu ne connais pas encore.
jean21 écrit:

Donc les Write-Debug je les mets ou ?

Là où tu souhaites tracer le contenu de tes variables, avant ou après ou avant ET après une affectation ou un appel de fonction. Ce qui permet de visualiser les modifications du contenu de tes variables.
jean21 écrit:

De même pour la configuration des variables..Je les configure où ?

Dans ton cas le mieux est de le configurer au niveau de la session.Donc modifie le contenu de la variable $DebugPreference avant l'exécution de ton script.
jean21 écrit:

C'est quoi psbase ?

L'objet dotnet encapsulé par un objet powershell.
D'autres détails de niveau avancé ici : laurent-dardenne.developpez.com/articles...iquesSousPowerShell/

jean21 écrit:

Quel con quand même lol désolé pour ce temps perdu

Avec les traces de debug tu n'aurais pas perdu de temps, en tout cas beaucoup moins.

Tutoriels PowerShell

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

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