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

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

j'ai l'impression qu'il n'y a rien dans cette variable ($_)..

Une variable à tjr un contenu, $null est une valeur particulière mais reste une valeur.
Utilise Write-Debug pour tenter de déterminer l'origine du problème :
[code:1]
Write-Debug \"Current OU= $_\"
Write-Debug \"Current is $null $($_ -eq $null)\"
Write-Debug \"Current is $null $($_.PSbase -eq $null)\"
[/code:1]
Pense à configurer cette variable :
[code:1]
$global:«»DebugPreference=\"Continue\" #debug ON
$global:«»DebugPreference=\"SilentlyContinue\" #debug OFF
[/code:1]
[edit]
Le test sur psbase répond au cas suivant :
[code:1]
$t=@()
$t
#aucun affichage
$t -eq $null
#aucun affichage
$t.psbase -eq $null
#false
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 14/08/13 13:13

Tutoriels PowerShell

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

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

et oui une variable n'est jamais vraiment vierge

Dans le for, mon extract est vide, c'est pas normal ?


je me demande si ton fichier a toujour le bon format
a savoir premiere, ligne le nom du/des champs separer par des point-virgule
ex: \&quot;OU\&quot;;\&quot;nom\&quot;;...

ligne suivante, les valeurs separer par des point-virgule
ex: \&quot;Filiale\Entreprise\Manager\domaine\fr\&quot;;tyty

et les saut de ligne au standard windows (pour etre sur ouvre le fichier avec le bloc-note de windows mais pas le wordpad
si tu a tous sur la meme ligne, tu a un probleme a ce niveau

tu essayer ceci pour voir si tu n'a pas de probleme d'import :
[code:1]Import-CSV \&quot;C:\test1.csv\&quot; -Delimiter \&quot;;\&quot; | Foreach {
$ch = $_.ou
$ch
}
[/code:1]
tu devrais voir s'afficher les lignes une par une comme ca :
[code:1]Filiale\Entreprise\Manager\domaine\fr
test\domaine\fr
test\testN1\domaine\fr
test\test\testN1\domaine\fr[/code:1]<br><br>Message édité par: 6ratgus, à: 14/08/13 14:26

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

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

Salut,
jean21 écrit:

j'ai l'impression qu'il n'y a rien dans cette variable ($_)..

Une variable à tjr un contenu, $null est une valeur particulière mais reste une valeur.
Utilise Write-Debug pour tenter de déterminer l'origine du problème :
[code:1]
Write-Debug \&quot;Current OU= $_\&quot;
Write-Debug \&quot;Current is $null $($_ -eq $null)\&quot;
Write-Debug \&quot;Current is $null $($_.PSbase -eq $null)\&quot;
[/code:1]
Pense à configurer cette variable :
[code:1]
$global:«»DebugPreference=\&quot;Continue\&quot; #debug ON
$global:«»DebugPreference=\&quot;SilentlyContinue\&quot; #debug OFF
[/code:1]
[edit]
Le test sur psbase répond au cas suivant :
[code:1]
$t=@()
$t
#aucun affichage
$t -eq $null
#aucun affichage
$t.psbase -eq $null
#false
[/code:1]&lt;br&gt;&lt;br&gt;Message édité par: Laurent Dardenne, à: 14/08/13 13:13


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

Donc les Write-Debug je les mets ou ?

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

C'est quoi psbase ? Dsl je suis vraiment un débutant..

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

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

merci laurent

et oui une variable n'est jamais vraiment vierge

Dans le for, mon extract est vide, c'est pas normal ?


je me demande si ton fichier a toujour le bon format
a savoir premiere, ligne le nom du/des champs separer par des point-virgule
ex: \&quot;OU\&quot;;\&quot;nom\&quot;;...

ligne suivante, les valeurs separer par des point-virgule
ex: \&quot;Filiale\Entreprise\Manager\domaine\fr\&quot;;tyty

et les saut de ligne au standard windows (pour etre sur ouvre le fichier avec le bloc-note de windows mais pas le wordpad
si tu a tous sur la meme ligne, tu a un probleme a ce niveau

tu essayer ceci pour voir si tu n'a pas de probleme d'import :
[code:1]Import-CSV \&quot;C:\test1.csv\&quot; -Delimiter \&quot;;\&quot; | Foreach {
$ch = $_.ou
$ch
}
[/code:1]
tu devrais voir s'afficher les lignes une par une comme ca :
[code:1]Filiale\Entreprise\Manager\domaine\fr
test\domaine\fr
test\testN1\domaine\fr
test\test\testN1\domaine\fr[/code:1]&lt;br&gt;&lt;br&gt;Message édité par: 6ratgus, à: 14/08/13 14:26


Oui oui il a exactement le même format qu'au début..

Ça m'affiche juste la première ligne..Mais je pense que y'a un problème avec ton :

\&quot;Name -eq '\&quot;$_\&quot;'\&quot;

Mais c'est vrai que j'ai l'impression que mon code voit une valeur vide alors que nan..C'est très fréquent avec les fichiers csv comment remédier à ça ?<br><br>Message édité par: jean21, à: 16/08/13 10:03

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

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

essai avec ce code modifier et donne moi les resultats avant ce soir je pars encore en vacances !! B)
[code:1]
Set-StrictMode -version latest

Import-Module activedirectory

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

# extraction du DC
$dc = \&quot;DC=\&quot;+($extract[-2])+\&quot;,DC=\&quot;+$extract[-1]
$extract1 = @()
$ou = \&quot;\&quot;
# extraction des OU
$extract1 += for($i=1;$i -le $taille ;$i++) {$extract[$taille-$i]}
$extract1 | foreach {
$ou = \&quot;OU=\&quot;+$_
# test si l'OU existe
if ([ADSI]::exists(\&quot;LDAP://$($ou),$($dc)\&quot;«»)) {
# if ($ok) {
write-host \&quot;l OU est deja presente $($ou),$($dc)\&quot; -foregroundcolor gray }
else
{ # rajout de l'OU
write-host \&quot;l'OU $($ou),$($dc) n'existe pas, je la rajoute\&quot;
try { New-ADOrganizationalUnit -Name $_ -Path $($dc) -ProtectedFromAccidentalDeletion $false }
catch { Write-Host \&quot;erreur de creation de l'OU $($ou),$($dc)\&quot; -foregroundcolor Red }
}
$dc = $ou + \&quot;,\&quot; + $dc
}
}
}

[/code:1]

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

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

bonjour jean21

essai avec ce code modifier et donne moi les resultats avant ce soir je pars encore en vacances !! B)
[code:1]
Set-StrictMode -version latest

Import-Module activedirectory

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

# extraction du DC
$dc = \&quot;DC=\&quot;+($extract[-2])+\&quot;,DC=\&quot;+$extract[-1]
$extract1 = @()
$ou = \&quot;\&quot;
# extraction des OU
$extract1 += for($i=1;$i -le $taille ;$i++) {$extract[$taille-$i]}
$extract1 | foreach {
$ou = \&quot;OU=\&quot;+$_
# test si l'OU existe
if ([ADSI]::exists(\&quot;LDAP://$($ou),$($dc)\&quot;«»)) {
# if ($ok) {
write-host \&quot;l OU est deja presente $($ou),$($dc)\&quot; -foregroundcolor gray }
else
{ # rajout de l'OU
write-host \&quot;l'OU $($ou),$($dc) n'existe pas, je la rajoute\&quot;
try { New-ADOrganizationalUnit -Name $_ -Path $($dc) -ProtectedFromAccidentalDeletion $false }
catch { Write-Host \&quot;erreur de creation de l'OU $($ou),$($dc)\&quot; -foregroundcolor Red }
}
$dc = $ou + \&quot;,\&quot; + $dc
}
}
}

[/code:1]


D'accord, je vais essayer de te répondre vite alors ^^

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

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

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

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

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