Proxyautentiseringsuppgifter på det andra PowerShell-hoppet
Ange det avsedda proxykontot till Invoke-WebRequest på fjärrservern i stället för att anta att remoting-inloggningen delegeras.
En webbförfrågan som fungerar interaktivt på server B kan få 407 när samma kommando körs där via PowerShell remoting. Inloggning från A till B delegerar inte automatiskt den identiteten för B:s nästa autentiseringsutbyte.
A → remoting session on B → HTTP proxy → website
En stödd design är att ange proxykontot explicit för den utgående förfrågan. Med en befintlig PSSession och ett korrekt anskaffat 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
}
Autentiseringsuppgiftsobjektet är för proxyns avsedda konto. Sessionen använder fortfarande sin vanliga remoting-autentisering, och all inloggning på en webbplats förblir en del av förfrågan till den webbplatsen.
Detta undviker att förlita sig på automatisk delegering av den första inloggningen. Det kräver dock att fjärrvärden hanterar det angivna kontomaterialet som en del av den avsedda administrationsdesignen. Andra arkitekturer, som en hanterad RunAs-slutpunkt eller begränsad tjänsteåtkomst, har sina egna konfigurationskrav.
Om standardproxyuppgifterna var det felaktiga antagandet, registrera kontot som fjärrkommandot körs under och den autentisering som proxyn begär. En längre tidsgräns för webbförfrågan kan inte tillhandahålla saknade autentiseringsuppgifter.
Proxyalternativen på New-PSSessionOption gäller själva remoting-anslutningen. Konfigurera Invoke-WebRequest inne i fjärrskriptblocket när det är B:s utgående webbanslutning som behöver proxyn.