Isolér en PowerShell 5.1-proxyanmodning med Start-Job
Brug et almindeligt baggrundsjob til at isolere en webanmodning i Windows PowerShell 5.1 fra tidligere netværksændringer i processen.
I en Windows PowerShell 5.1-session kan en tidligere komponent ændre processens lokale .NET-netværkstilstand. Et almindeligt Start-Job-baggrundsjob giver en separat PowerShell-proces til en senere weboperation.
$job = Start-Job -ArgumentList $uri, $proxyUri -ScriptBlock {
param($destination, $intermediary)
$response = Invoke-WebRequest -Uri $destination `
-Proxy $intermediary -UseBasicParsing -TimeoutSec 30
$response.Content
}
try {
Receive-Job -Job $job -Wait -ErrorAction Stop
}
finally {
Remove-Job -Job $job
}
uri og proxyUri er værdier, som programmet leverer. Til en offentlig HTTP-test leverer listen over HTTP-proxyer kandidat-mellemadresser; hold det valgte endepunkt fast, når du sammenligner processer. Angiv også eventuelle nødvendige proxy-legitimationsoplysninger via de tilsigtede jobinput og anmodningsparametre. Et levende websessionsobjekt fra forælderen genbruges ikke automatisk.
Jobbet har sin egen sessionstilstand; indlæs de nødvendige funktioner eller moduler der. Dets output krydser en procesgrænse, så det er enklere bevidst at returnere indholdet end at antage, at et deserialiseret svar opfører sig som det oprindelige levende objekt.
Start-ThreadJob bruger en anden udførelsesmodel og giver ikke den samme procesisolering. En separat proces reparerer heller ikke et ugyldigt proxyendepunkt eller en netværksomspændende politik. Brug denne grænse, når delt procestilstand er den relevante forskel.