Question
Création d'OU..Problème
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
Ç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.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
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.
- jean
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 24
- Remerciements reçus 0
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.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
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.
- jean
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 24
- Remerciements reçus 0
Encore merci et bonne vacances ; )
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Non, je te parle de choses que tu ne connais pas encore.Oula désolé mais là c'est compliqué..
jean21 écrit:
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.Donc les Write-Debug je les mets ou ?
jean21 écrit:
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.De même pour la configuration des variables..Je les configure où ?
jean21 écrit:
L'objet dotnet encapsulé par un objet powershell.C'est quoi psbase ?
D'autres détails de niveau avancé ici : laurent-dardenne.developpez.com/articles...iquesSousPowerShell/
jean21 écrit:
Avec les traces de debug tu n'aurais pas perdu de temps, en tout cas beaucoup moins.Quel con quand même lol désolé pour ce temps perdu
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Création d'OU..Problème