none
Progressbar bei get-service abfrage

    Frage

  • Hallo zusammen

    Ich bin noch kein Profi mit Powershell deshalb suche ich Hilfe:

    Ich möchte das mein Progressbar solange die ForEach Schleife läuft im Loop immer läuft bis ich aus der Schleife bin, also es sollte immer von Anfang bis ans Ende hin und her im Loop Laufen könnt Ihr mir da helfen?

    Hier ist mein Skript:

    function checkinfo {

    $outputBox.Clear()
    $outputBox.Refresh()
    $Progressbar.Clear()
    $Progressbar.Referesh()

    $servers = $objListBox.text;

    write host $servers

    $OFS = “`r`n”
    $Progressbar.Maximum = $servers.Count
    $Progressbar.Step = 1
    $Progressbar.Value = 0

    ForEach ($server in $servers) {
    $objservices = Get-service -ComputerName $server -Name IBM*;
    $ProgressBar.Value = $ProgressBar.Value + 1
    $Progressbar.PerformStep()
    $textboxentry = “”

    ForEach ($objservice in $objservices) {
    $textboxentry = $textboxentry + $objservice.DisplayName + “:” + ‘ ‘ + $objservice.Status + $OFS

    }

    }

    $Check=$textboxentry
    $outputBox.text=$Check

    }

    Dienstag, 10. Oktober 2017 11:54

Alle Antworten

  • Moin,

    1. Bitte nutze den Codeblock im Editor, wenn Du Code postest! Dann werden nämlich auch die Einzüge, die Du hoffentlich gemacht hast, ordentlich wiedergegeben.

    2. Es ist nicht ersichtlich, wie die Variablen definiert sind. Ich nehme an, das sind irgendwelche

    3. Was erlebst Du denn jetzt, wenn Du die Funktion aufrufst?


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> http://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    Mittwoch, 11. Oktober 2017 10:35
  • Hallo, bitte lies zuerst mal hier.

    Ansonsten fällt mir spontan folgendes auf:
    Das:

    $ProgressBar.Value = $ProgressBar.Value + 1
    $Progressbar.PerformStep()

    ist doppeltgemoppelt und nicht gut.

    Ersetze die beiden Zeilen mal durch:

    $Progressbar.PerformStep()
    $Progressbar.Update()
     

    Da ich mal annehme das dein Problem ist, das die Progessbar nicht den Fortschritt anzeigt.
    Das Problem ist oft, das Code den GUI-Thread blockiert. Hier kann man versuchen, noch nach dem $Progressbar.Update()

    ein:

    $meinFormName.Update()   

    hinzuzufügen. Wenn das nicht nutzt, wird komplizierter, aber probier das erstmal.
    Grüße, Denniver



    Blog: http://bytecookie.wordpress.com

    Kostenloser Powershell Code Manager v5: Link
    (u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.

    Donnerstag, 12. Oktober 2017 08:12
    Moderator