Question Une barre de progression durant un scrip [resolu]

Plus d'informations
il y a 11 ans 11 mois #17252 par Laurent
Bonjour à tous,

Voila un bout (petit) de mon script...
Explication : je récupère des infos dans l'AD, j'utilise aussi des infos provenant de fichier texte et ensuite je créé une arborescence complexe qui peut monter à plusieurs centaines d'objets.
C'est long.
Je souhaiterais l'affichage d'une barre de progression ou au moins une animation durant l’exécution du script qui prouverai que quelque chose \"se passe\" car pour l'instant je reste bête devant mon prompt et mon écran vide :unsure:
[code:1]#Script pour créer une arborescence (dossiers vides) à partir des informations de l'AD et de fichiers txt

New-Item -type directory -path $disk\$col\$ressource
New-Item -type directory -path $disk\$col\$echange
#créer une arborescence lieux pour les répertoires RESSOURCE et ECHANGE
$list_lieux = Get-Content \"lieux.txt\"
Foreach($lieux in $list_lieux)
{
New-Item -type directory -path $disk\$col\$ressource\$lieux
New-Item -type directory -path $disk\$col\$echange\$lieux
}
#Boucle pour créer une arborescence des groupes et classement des user dans les groupes
$list_group = Get-Content \"groupes.txt\"
Foreach($groupe in $list_group)
{
If ($groupe.startswith(\"1\"«»))
{
#Recherche dans l'AD des users du groupe
$ldapQuery = \"(&(objectCategory=user))\"
$de = new-object system.directoryservices.directoryentry(\"LDAP://OU=xxxxx,OU=xxxxx,OU=xxxxx,DC=xxxxx,DC=xxxxx\"«»)
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall() | %{$_.properties.name} | out-file user.txt
$list_user = Get-Content \"user.txt\"
Foreach($user in $list_user)
{
New-Item -type directory -path $disk\$col\groupe-1\$groupe\$user
}
}
elseIf ($groupe.startswith(\"2\"«»))
{
#Recherche dans l'AD des users du groupe
$ldapQuery = \"(&(objectCategory=user))\"
$de = new-object system.directoryservices.directoryentry(\"LDAP://OU=xxxxx,OU=xxxxx,OU=xxxxx,DC=xxxxx,DC=xxxxx\"«»)
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall() | %{$_.properties.name} | out-file user.txt
$list_user = Get-Content \"user.txt\"
Foreach($user in $list_user)
{
New-Item -type directory -path $disk\$col\groupe-2\$groupe\$user
}
}
}
# et ainsi de suite... je peux avoir une dizaine de groupes avec à chaque fois des poignées de user
Write-Host -foregroundcolor yellow \"Processus création répertoires terminé\";[/code:1]
En furetant j'ai trouvé du code notamment avec la commande \"Write-Progress\" mais je sais pas comment l'intégrer :huh:

Si quelqu'un voit comment répondre à ce problème ?
Merci

Message édité par: Sasquash, à: 1/04/14 19:25<br><br>Message édité par: Sasquash, à: 3/04/14 09:06

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

Plus d'informations
il y a 11 ans 11 mois #17258 par Laurent Dardenne
Salut,
le prérequis est de connaitre le total de chaque itération, et comme ici il y en a deux imbriquées, tu peux consulter ce post .

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 11 mois #17260 par Laurent
Merci de cette réponse.
Effectivement, d'après mes lectures et votre réponse tout tiens sur le nombre d'itération...chose que je ne maitrise pas puisque certaines données source peuvent varier en nombre d'une fois sur l'autre.

Je vais me pencher sur votre lien :)

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

Plus d'informations
il y a 11 ans 11 mois #17261 par Laurent Dardenne
Sasquash écrit:

certaines données source peuvent varier en nombre d'une fois sur l'autre.

A priori, ici une variable porte l'information :
[code:1]
$total=$list_group.count
Foreach($groupe in $list_group)
$total2=$list_user.count
Foreach($user in $list_user)
[/code:1]
Il faut juste s'assurer que le résultat soit tjr une collection:
[code:1]
$list_group = @(Get-Content \&quot;groupes.txt\&quot;«»)
[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 11 mois #17272 par Laurent
Oui tout à fait :cheer:

Ce post m'a bien aiguillé et j'ai résolu mon problème maintenant.
Je fais une barre de progression pour chaque boucle et ça répond à mon attente.
Merci :)

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

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