Izolarea unei cereri proxy PowerShell 5.1 cu Start-Job
Folosiți o sarcină de fundal obișnuită pentru a izola o cerere web Windows PowerShell 5.1 de modificările de rețea anterioare din proces.
Într-o sesiune Windows PowerShell 5.1, o componentă anterioară poate modifica starea de rețea .NET locală procesului. O sarcină de fundal Start-Job obișnuită oferă un proces PowerShell separat pentru o operație web ulterioară.
$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 și proxyUri sunt valori furnizate de aplicație. Pentru un test HTTP public, lista de proxy HTTP oferă adrese intermediare candidate; păstrați stabil punctul final ales la compararea proceselor. Furnizați și credențialele de proxy necesare prin intrările sarcinii și parametrii cererii. Un obiect de sesiune web activ din procesul părinte nu este reutilizat automat.
Sarcina are propriul stat de sesiune; încărcați acolo funcțiile sau modulele necesare. Ieșirea ei traversează o graniță de proces, așa că returnarea deliberată a conținutului este mai simplă decât presupunerea că un răspuns deserializat se comportă ca obiectul activ original.
Start-ThreadJob folosește alt model de execuție și nu oferă aceeași izolare a procesului. Un proces separat nu repară nici un punct final de proxy invalid sau o politică la nivel de rețea. Folosiți această graniță când starea de proces partajată este diferența relevantă.