Voortgang van Invoke-WebRequest verbergen

Hoe kan ik de voortgangsweergave van Invoke-WebRequestverbergen? Ik doe veel opeenvolgende verzoeken en heb mijn eigen Write-Progress-scherm dat ik gebruik, dus ik hoef niet de ingebouwde er elke keer onder te laten verschijnen.

Ik gebruik de mshtml-resultaten (het IE COM-object) die automatisch zijn gemaakt op basis van het resultaat van Invoke-WebRequest, dus ik kan niet overschakelen naar een WebClientof zoiets, tenzij iemand instructies geeft over hoe je een mshtml-object van een WebClient-verzoek kunt krijgen.


Antwoord 1, autoriteit 100%

Gebruik de $progressPreference-variabele. Het zou standaard de waarde ‘Doorgaan’ moeten hebben, tenzij je het ergens anders hebt bewerkt, wat Powershell vertelt om de voortgangsbalk weer te geven. Omdat je zei dat je je eigen aangepaste voortgangsweergaven hebt, zou ik deze onmiddellijk resetten nadat de cmdlet is uitgevoerd. Bijvoorbeeld:

$ProgressPreference = 'SilentlyContinue'    # Subsequent calls do not display UI.
Invoke-WebRequest ...
$ProgressPreference = 'Continue'            # Subsequent calls do display UI.
Write-Progress ...

Meer informatie over voorkeursvariabelen op about_preference_variables. Hier is de invoer voor $ProgressPreference:

$ProgressPreference
-------------------
Determines how Windows PowerShell responds to progress updates 
        generated by a script, cmdlet or provider, such as the progress bars
        generated by the Write-Progress cmdlet. The Write-Progress cmdlet 
        creates progress bars that depict the status of a command.
        Valid values:
          Stop:               Does not display the progress bar. Instead,
                                it displays an error message and stops executing.
          Inquire:            Does not display the progress bar. Prompts
                                for permission to continue. If you reply
                                with Y or A, it displays the progress bar.
          Continue:           Displays the progress bar and continues with
          (Default)             execution.
          SilentlyContinue:   Executes the command, but does not display
                                the progress bar.

Other episodes