Question Variable dans boucle à réutiliser

Plus d'informations
il y a 15 ans 4 mois #8113 par FO
Bonjour,

J'ai une boucle qui me permet de récupérer une donnée sur chaque utilisateur et ensuite je voudrai récupérer la totalisé des utilisateurs dans une seule boucle en forme de liste

Exemple :
[code:1]foreach($user in $users)
{
#Recherche des utilisateurs dans l'OU
if ($user.path -like \"*$UserOU\"«»)
{
if ([datetime]::FromFileTime(($user.properties.pwdlastset)[0]) -le $PWDays)
{
$UserName = $User.properties.displayname
}
}
}

$alluser = \"la liste des users sous forme d'une liste\"
[/code:1]

Je souhaite récupérer mon $UserName et le mettre dans la variable $alluser

Si $username = 'toto'
si $username = 'titi'
Si $username = 'tata'

alors $alluser dans je l'éxécute=
toto
titi
tata

Merci pour votre aide

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

Plus d'informations
il y a 15 ans 4 mois #8114 par Arthur
En gros tu veux créer une liste qui contient tous les user ?
[code:1]$Alluser = New-Object Collections.ArrayList
foreach($user in $users)
{
#Recherche des utilisateurs dans l'OU
if ($user.path -like \"*$UserOU\"«»)
{
if ([datetime]::FromFileTime(($user.properties.pwdlastset)[0]) -le $PWDays)
{
$UserName = $User.properties.displayname
[Void]$Alluser.Add((New-object PSObject|
Add-member noteproperty Nom \"$UserName\"«»))
}
}
}

$Alluser = \"la liste des users sous forme d'une liste\"[/code:1]

msdn.microsoft.com/en-us/library/system....tions.arraylist.aspx

J'ai pas test le code et en ce moment je fais du bash...(:pinch:), je suis un peu rouillé donc y a peut être une erreur de syntaxe ou deux.<br><br>Message édité par: bilbao, à: 23/11/10 19:15

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

Plus d'informations
il y a 15 ans 4 mois #8117 par jojo
Réponse de jojo sur le sujet Re:Variable dans boucle à réutiliser
merci bilbao , pour ton aide et je te souhaite un bon apprentissage du bash :silly: ...j'ai une question concernant ton code...pourquoi choisir d'utiiser la classe .NET Collections.ArrayList au lieu de le faire directement
[code:1]
$array=@()
# puis dans la boucle
$array += $User.properties.displayname[/code:1]

es-ce que c'est plus rapide, ou c'est autre chose

merci

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

Plus d'informations
il y a 15 ans 4 mois #8118 par Arthur
Pour plusieurs raisons en fait :

-C'est plus jolie :laugh:, nan c'est surtout que l'on peut facilement créer des listes avec des propriétés personnalisées, on peut plus facilement s'y retrouver
-On a plus de méthodes en bonus ( voir doc sur les Arraylist)
-On peut plus facilement y visualiser, j'ai pas mal bossé avec les Datagridview, des fichiers csv, XML ou l'utilisation d'Arraylist est plus propre et simple je trouve ( Je suis en qwerty j'ai pas le u avec accent pour le \&quot;ou\&quot; :whistle: )
-Une list n'a pas de taille fixe, donc c'est super cool quand on ne sait pas combien d'entrés on va ajouter dans le futur.

Dans cet exemple l'utilisation d'un simple tableau est en effet un très bonne solution mais je me suis dit que quand on fait ce genre de script et que l'on post sur ce forum on doit connaitre l'existence des tableaux. :P

Surtout si on a acheté le bouquin d'Arnaud. (:evil:)

De plus ton code me semble faux, car si je me rappelle bien les tuto de Laurent on ne peut pas initialiser un tableau vide.

cf :
www.leedesmond.com/weblog/?p=183

HS : le bash c'est le mal, vive le perl/python/Powershell/... :whistle:<br><br>Message édité par: bilbao, à: 23/11/10 21:08

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

Plus d'informations
il y a 15 ans 4 mois #8119 par FO
Réponse de FO sur le sujet Re:Variable dans boucle à réutiliser
Merci pour vos réponses.

J'ai essayé ton code jojo, ca ne fonctionne pas.

$array=@()
# puis dans la boucle
$array += $User.properties.displayname

Il me prend seulement la première valeur dans qui passe dans ma boucle. Il ne rajoute pas les autres valeurs dans ma même variable $array

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

Plus d'informations
il y a 15 ans 3 mois #8146 par Jacques Barathon
Curieux, le code de jojo a l'air tout à fait correct. Es-tu sûr que ton code ressemble à ça ?

[code:1]
$Alluser = @()

foreach($user in $users)
{
#Recherche des utilisateurs dans l'OU
if ($user.path -like \&quot;*$UserOU\&quot;«»)
{
if ([datetime]::FromFileTime(($user.properties.pwdlastset)[0]) -le $PWDays)
{
$AllUser += $User.properties.displayname
}
}
}
[/code:1]

Si ce n'est pas le cas, peux-tu nous montrer le code que tu as ?<br><br>Message édité par: janel, à: 28/11/10 15:29

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

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