Webový požadavek, který na serveru B funguje interaktivně, může dostat 407, když se stejný příkaz spustí tam přes PowerShell remoting. Přihlášení z A na B automaticky nedeleguje tuto identitu pro další ověřovací výměnu na B.

A → remoting session on B → HTTP proxy → website

Jedno podporované řešení je předat proxy účet explicitně pro odchozí požadavek. S existující PSSession a vhodně získaným objektem PSCredential:

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
}

Objekt přihlašovacích údajů je určen pro zamýšlený účet proxy. Relace nadále používá běžné ověřování remoting a jakékoli přihlášení na web zůstává součástí požadavku na tento web.

Tím se vyhnete spoléhání na automatické delegování prvního přihlášení. Vyžaduje však, aby vzdálený hostitel nakládal s předaným materiálem účtu jako součástí zamýšleného administračního návrhu. Jiné architektury, například spravovaný koncový bod RunAs nebo omezený přístup ke službě, mají vlastní požadavky na konfiguraci.

Pokud byly chybným předpokladem výchozí přihlašovací údaje proxy, zaznamenejte účet, pod kterým se vzdálený příkaz spouští, a ověřování, které proxy požaduje. Delší časový limit webového požadavku chybějící údaje nedodá.

Možnosti proxy v New-PSSessionOption se týkají samotného připojení remoting. Nakonfigurujte Invoke-WebRequest uvnitř vzdáleného bloku skriptu, když je to odchozí webové připojení B, které proxy potřebuje.

Související články