Aislar una solicitud de proxy de PowerShell 5.1 con Start-Job
Use un trabajo en segundo plano normal para aislar una solicitud web de Windows PowerShell 5.1 de cambios de red anteriores en el proceso.
En una sesión de Windows PowerShell 5.1, un componente anterior puede cambiar el estado de red local del proceso en .NET. Un trabajo en segundo plano Start-Job normal proporciona un proceso de PowerShell aparte para una operación web posterior.
$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 y proxyUri son valores que proporciona la aplicación. Para una prueba HTTP pública, la lista de proxies HTTP ofrece direcciones intermedias candidatas; mantenga estable el extremo elegido al comparar procesos. Proporcione también las credenciales de proxy necesarias mediante las entradas del trabajo y los parámetros de la solicitud. Un objeto de sesión web activo del proceso principal no se reutiliza automáticamente.
El trabajo tiene su propio estado de sesión; cargue allí las funciones o módulos necesarios. Su salida cruza un límite de proceso, así que devolver el contenido deliberadamente es más sencillo que suponer que una respuesta deserializada se comporta como el objeto activo original.
Start-ThreadJob usa otro modelo de ejecución y no ofrece el mismo aislamiento de proceso. Un proceso aparte tampoco repara un extremo de proxy no válido ni una política de red. Use este límite cuando el estado de proceso compartido sea la diferencia relevante.