Izolace proxy požadavku v PowerShell 5.1 pomocí Start-Job
Použijte běžnou úlohu na pozadí k izolaci webového požadavku Windows PowerShell 5.1 od dřívějších síťových změn v procesu.
V relaci Windows PowerShell 5.1 může dřívější komponenta změnit síťový stav .NET v rámci procesu. Běžná úloha na pozadí Start-Job poskytuje pro pozdější webovou operaci samostatný proces PowerShellu.
$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 a proxyUri jsou hodnoty dodávané aplikací. Pro veřejný HTTP test nabízí seznam HTTP proxy kandidátní zprostředkující adresy; při porovnávání procesů držte zvolený koncový bod neměnný. Předejte také případné potřebné přihlašovací údaje k proxy přes zamýšlené vstupy úlohy a parametry požadavku. Živý objekt webové relace z rodiče se automaticky znovu nepoužívá.
Úloha má vlastní stav relace; načítejte tam potřebné funkce nebo moduly. Její výstup přechází přes hranici procesu, takže záměrné vrácení obsahu je jednodušší než předpokládat, že deserializovaná odpověď se chová jako původní živý objekt.
Start-ThreadJob používá jiný model spouštění a neposkytuje stejnou izolaci procesu. Samostatný proces také neopraví neplatný koncový bod proxy ani síťovou zásadu. Tuto hranici použijte, když je sdílený stav procesu podstatným rozdílem.