Isoleer 'n PowerShell 5.1-proksieversoek met Start-Job
Gebruik 'n gewone agtergrondtaak om 'n webversoek in Windows PowerShell 5.1 te isoleer van vroeere netwerkveranderinge in die proses.
In 'n Windows PowerShell 5.1-sessie kan 'n vroeere komponent die proses-lokale .NET-netwerktoestand verander. 'n Gewone Start-Job-agtergrondtaak verskaf 'n aparte PowerShell-proses vir 'n latere weboperasie.
$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 en proxyUri is waardes wat die toepassing verskaf. Vir 'n openbare HTTP-toets verskaf die HTTP-proksielys kandidaat-tussenadresse; hou die gekose eindpunt stabiel wanneer jy prosesse vergelyk. Voorsien ook enige nodige proksi-aanmeldgegewens deur die bedoelde taakinvoer en versoekparameters. 'n Lewende websessie-voorwerp van die ouer word nie outomaties hergebruik nie.
Die taak het sy eie sessietoestand; laai die nodige funksies of modules daar. Sy uitset kruis 'n prosesgrens, so om die inhoud doelbewus terug te gee is eenvoudiger as om te aanvaar dat 'n gedeserialiseerde respons soos die oorspronklike lewende voorwerp optree.
Start-ThreadJob gebruik 'n ander uitvoeringsmodel en bied nie dieselfde prosesisolasie nie. 'n Aparte proses herstel ook nie 'n ongeldige proksi-eindpunt of 'n netwerkwyse beleid nie. Gebruik hierdie grens wanneer gedeelde prosestoestand die relevante verskil is.