I en Windows PowerShell 5.1-session kan en tidigare komponent ändra processens lokala .NET-nätverkstillstånd. Ett vanligt Start-Job-bakgrundsjobb ger en separat PowerShell-process för en senare webboperation.

$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 och proxyUri är värden som programmet tillhandahåller. För ett offentligt HTTP-test tillhandahåller listan över HTTP-proxyer kandidat-mellanadresser; håll den valda slutpunkten stabil när du jämför processer. Ange även eventuella nödvändiga proxyuppgifter via de avsedda jobbparametrarna och förfrågningsparametrarna. Ett levande webbsessionsobjekt från föräldern återanvänds inte automatiskt.

Jobbet har sitt eget sessionstillstånd; ladda nödvändiga funktioner eller moduler där. Dess utdata korsar en processgräns, så det är enklare att medvetet returnera innehållet än att anta att ett deserialiserat svar beter sig som det ursprungliga levande objektet.

Start-ThreadJob använder en annan exekveringsmodell och ger inte samma processisolering. En separat process reparerar inte heller en ogiltig proxyslutpunkt eller en nätverksövergripande policy. Använd denna gräns när delat processtillstånd är den relevanta skillnaden.

Relaterade artiklar