Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

ProgressBar in einer Foreach-Schleife befüllen

$
0
0

Hallo zusammen,

ich bin relativ neu in der PowerShell Programmierung und arbeite derzeit an einem Support-Tool mit GUI, das verschiedene Abfragen in das Firmennetzwerk bereitstellen soll. Dafür stehen diverse Buttons, eine Eingabe und eine Ausgabe Textbox zur Verfügung. Bei einigen Suchabfragen müssen mehrere Server angesprochen werden, was die Antwortzeit der entsprechenden Abfrage ordentlich hinauszögern kann.

  • Für mein Problem nutze ich die Abfrage, ob und auf welchem Scope ein Gerät eine DHCPv4 Reservierung hat. (Da es für dieses Gerät mehrere Reservierungen geben kann, müssen alle Scopes abgefragt werden. Also kein Abbruch, sobald es ein Ergebnis gab!)
  • Die Progressbar soll nach jedem durchsuchten Scope aktualisiert werden, aktuell ~300 Stück.
  • Mein Fehler bei dem ich nicht weiterkomme: Die ProgressBar aktualisiert sich erst beim Abschluss der Schleife. Wie kann Sie nach jeder Schleife aktualisiert werden?
  • (Nebenproblem: wie setze ich diese zurück und kann ich das zusammen mit dem Säubern der Ausgabe-Textbox in eine eigene Funktion packen, die dann von allen Button-Clicks ausgeführt wird?)

Unten stehender Code gehört zu meinen Events:

$btnWorkstation.Add_Click{
    $i =0
    $counter =0
    $txbOutput.Clear()
    $feed = $txbInput.Text
    $scopes =Get-DhcpServerv4Scope-ComputerName $dhcpserverForeach($scope in $scopes){
        $counter = $counter +1
        $reservation =Get-DhcpServerv4Reservation-ComputerName $dhcpserver -ScopeId $scope.scopeId |whereName-like $feed*-EA SilentlyContinueif($reservation){
            $i =1
            $txbOutput.Text+=("Name : $($reservation.Name)`r","IP : $($reservation.IPAddress)`r",)}
        $a = $counter/$scopes.Count*100Write-Host"$a of all Scopes"
        $ProgressBar.Dispatcher.Invoke([action]{
            $ProgressBar.Value= $a},"Normal")**}if($i -eq 0){
        $txbOutput.Text+=("Couldn't find DHCP Reservation for $feed.")}}

Viewing all articles
Browse latest Browse all 2314