In una sessione di Windows PowerShell 5.1, un componente precedente può modificare lo stato di rete .NET locale al processo. Un normale processo in background Start-Job fornisce un processo PowerShell separato per un'operazione web successiva.

$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 e proxyUri sono valori forniti dall'applicazione. Per un test HTTP pubblico, il elenco di proxy HTTP fornisce indirizzi intermedi candidati; mantenere stabile l'endpoint scelto quando si confrontano i processi. Fornire anche le credenziali proxy necessarie tramite gli input del processo e i parametri della richiesta previsti. Un oggetto di sessione web attivo del processo padre non viene riutilizzato automaticamente.

Il processo ha un proprio stato di sessione; caricare lì le funzioni o i moduli necessari. Il suo output attraversa un confine di processo, quindi restituire deliberatamente il contenuto è più semplice che presumere che una risposta deserializzata si comporti come l'oggetto attivo originale.

Start-ThreadJob usa un altro modello di esecuzione e non offre lo stesso isolamento di processo. Un processo separato inoltre non ripara un endpoint proxy non valido né un criterio a livello di rete. Usare questo confine quando lo stato di processo condiviso è la differenza rilevante.

Articoli correlati