En nettforespørsel som fungerer interaktivt på server B, kan få 407 når den samme kommandoen kjøres der via PowerShell remoting. Innlogging fra A til B delegerer ikke automatisk den identiteten for Bs neste autentiseringsutveksling.

A → remoting session on B → HTTP proxy → website

En støttet løsning er å oppgi proxykontoen eksplisitt for den utgående forespørselen. Med en eksisterende PSSession og et riktig anskaffet PSCredential-objekt:

Invoke-Command -Session $session -ArgumentList $proxyCredential -ScriptBlock {
    param([pscredential]$outboundProxyCredential)

    $requestOptions = @{
        Uri = 'https://api.example/'
        Proxy = 'http://proxy.example:8080'
        ProxyCredential = $outboundProxyCredential
    }
    Invoke-WebRequest @requestOptions
}

Legitimasjonsobjektet er for proxyens tiltenkte konto. Økten bruker fortsatt sin vanlige remoting-autentisering, og enhver innlogging på et nettsted forblir en del av forespørselen til det nettstedet.

Dette unngår å stole på automatisk delegering av den første innloggingen. Det krever imidlertid at fjernverten håndterer det oppgitte kontomaterialet som en del av det tiltenkte administrasjonsdesignet. Andre arkitekturer, som et administrert RunAs-endepunkt eller begrenset tjenestetilgang, har egne konfigurasjonskrav.

Hvis standard proxy-legitimasjon var den feilaktige antakelsen, registrer kontoen som fjernkommandoen kjører under, og autentiseringen proxyen ber om. En lengre tidsavbrudd for nettforespørselen kan ikke skaffe manglende legitimasjon.

Proxyvalgene på New-PSSessionOption gjelder selve remoting-tilkoblingen. Konfigurer Invoke-WebRequest inne i den eksterne skriptblokken når det er Bs utgående nettilkobling som trenger proxyen.

Relaterte artikler