Question progress bar

Plus d'informations
il y a 15 ans 9 mois #2535 par hans christophe
progress bar a été créé par hans christophe
Bonjour

je souhait intégrer nu progress bar dans mon script pour voir l'évolution de mon move-mailbox.

je prit le tuto sur le site qui concerne la progress bar, quand j'insère le code dans mon script, il m'affiche une fenêtre avec la barre de progression et ensuite fait les commande ce trouvant dans le script :(

je n'arrive pas a trouver ce qu'il faut ajouter/modifier dans le script du tuto pour qu'il m'affiche correctement la progression de la commande :blink:

ps: move mailbox de +/- 150 MB

merci

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

Plus d'informations
il y a 15 ans 9 mois #2538 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:progress bar
Salut, je n'ai pas compris de quel code tu parles.

Sinon consulte ce post :
powershell-scripting.com/index.php?optio...;id=2283&catid=5

Tutoriels PowerShell

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

Plus d'informations
il y a 15 ans 9 mois #2540 par hans christophe
Réponse de hans christophe sur le sujet Re:progress bar
Voilà le script en question :-)

donc quand je le lance j'ai la progressbar et ensuite la commande move-mailbox qui ce lance
je ne trouve pas comment faire pour avoir la progress bar liée au move-mailbox

[code:1]# 1
$a = new-object -comobject wscript.shell
$b = $a.popup(\" insert source forest credentail \",0, \"Move mailbox \",1)
if ($b -eq 2) {exit}
$SourceCredential = Get-Credential -credential

# 2
$a = new-object -comobject wscript.shell
$b = $a.popup(\" insert Target forest credentail \",0, \"Move mailbox \",1)
if ($b -eq 2) {exit}
$TargetCredential = Get-Credential -credential

[void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')

# Timer

$timer = new-object System.Windows.forms.timer
$timer.Interval = 1000 # 1 seconde


# progressBar1

$progressBar1 = new-object System.Windows.Forms.ProgressBar
$progressBar1.Location = new-object System.Drawing.Point(58, 107)
$progressBar1.Name = 'progressBar1'
$progressBar1.Size = new-object System.Drawing.Size(164, 23)
$progressBar1.Value = 0
$progressbar1.style = 'continuous'
$progressbar1.step = 1

# Label1

$label1 = new-object System.Windows.Forms.Label
$label1.Location = new-object System.Drawing.Point(70, 70)
$label1.Size = new-object System.Drawing.Size(139,13)
$label1.Text = 'Style continuous :'


$Form1 = new-object System.Windows.Forms.form

# Form1

$Form1.Controls.Add($label1)
$Form1.ClientSize = new-object System.Drawing.Size(284, 264)
$Form1.Controls.Add($progressBar1)
$Form1.Text = \"Barre de progression - 1\"
$timer.Add_Tick({
$progressBar1.PerformStep()
})

$timer.Start()
$Form1.ShowDialog()
import-CSV \"c:\movemb.csv\" | foreach {Move-mailbox -targetdatabase \"test\" -AllowMerge -identity $_.identity -globalcatalog test -sourceforestglobalcatalog test -NTAccountOU $_.OU -sourceforestcredential $sourcecredential -targetforestcredential $targetcredential}
[/code:1]<br><br>Message édité par: hansc, à: 3/07/08 09:37

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

Plus d'informations
il y a 15 ans 9 mois #2544 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:progress bar
hansc écrit:

je ne trouve pas comment faire pour avoir la progress bar liée au move-mailbox

J'ai testée le script proposé dans le tuto par Arnaud mais sans résulat. Il manquer \&quot;qq chose\&quot; dans l'enchaînement des événements, je regarde ça.

De la manière dont tu procédes ici, ça ne marcherais pas de toute façons. Ton code doit se retrouver dans une fonction appellée par le timer, c'est lui qui déclenche l'exécution de ton opération de déplacement. Et ici il faut connaître le temps max d'exécution de cette opération. Si le temps indiqué dans la propriété interval n'est pas assez important le timer peut se redéclencher alors que l'appel de l'opération précédente n'est pas terminée.
Sur ce je ne suis pas sûr de ce que j'avance car je ne connais pas suffisament le fonctionnement des Winforms mais étant prévoyant je préfére douter.

Autre chose, l'information identity doit être récupérer avant d'exécuter le move sinon tu te recommencera sur l'ensemble des identités.

[edit]
La propriété est Interval pas Ticks.<br><br>Message édité par: Laurent Dardenne, à: 3/07/08 18:09

Tutoriels PowerShell

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

Plus d'informations
il y a 15 ans 9 mois #2546 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:progress bar
Laurent Dardenne écrit:

J'ai testée le script proposé dans le tuto par Arnaud mais sans résulat. Il manquer \&quot;qq chose\&quot;

Bon il ne manque rien c'est juste que l'exécution directement dans la console ne fonctionne pas on doit pas passer soit par un script soit insérer le code dans un script block :
[code:1]
$sb={
[void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')
[string[]]$lines= import-CSV \&quot;c:\movemb.csv\&quot; $linenumber=0
#
# Timer
$timer = new-object System.Windows.forms.timer
$timer.Interval = 150
#
# progressBar1
#
$progressBar1 = new-object System.Windows.Forms.ProgressBar
$progressBar1.Location = new-object System.Drawing.Point(58, 107)
$progressBar1.Name = 'progressBar1'
$progressBar1.Size = new-object System.Drawing.Size(164, 23)
$progressBar1.Value = 0
$progressbar1.style = 'continuous'
$progressbar1.step = 1
$progressBar1.maximum = $lines.count
#
# Label1
#
$label1 = new-object System.Windows.Forms.Label
$label1.Location = new-object System.Drawing.Point(70, 70)
$label1.Size = new-object System.Drawing.Size(139,13)
$label1.Text = 'Style continuous :'
#
$Form1 = new-object System.Windows.Forms.form
# Form1
#
$Form1.Controls.Add($label1)
$Form1.ClientSize = new-object System.Drawing.Size(284, 264)
$Form1.Controls.Add($progressBar1)
$Form1.Text = \&quot;Barre de progression - 1\&quot;
$timer.Add_Tick({
$progressBar1.PerformStep()
#traitement
write-host $lines[$linenumber++]
if ($linenumber -gt $progressBar1.Maximum)
{ $timer.Stop() }
})

$timer.Start()
$Form1.ShowDialog()
}
&amp;$sb
[/code:1]
Curieux comme comportement pour les Winforms déclarant des événements (enfin je suppose que c'est ça qui pose pb):S

Tutoriels PowerShell

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

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