Välityspalvelimen tunnistetiedot toisella PowerShell-hypyllä
Anna aiottu välityspalvelintili etäpalvelimella toimivalle Invoke-WebRequestille sen sijaan, että olettaisit remoting-kirjautumisen välittyvän.
Web-pyyntö, joka toimii vuorovaikutteisesti palvelimella B, voi saada 407, kun sama komento suoritetaan siellä PowerShell remotingin kautta. Kirjautuminen A:sta B:hen ei välitä tätä identiteettiä automaattisesti B:n seuraavaa todennusvaihtoa varten.
A → remoting session on B → HTTP proxy → website
Yksi tuettu ratkaisu on antaa välityspalvelintili nimenomaisesti lähtevää pyyntöä varten. Olemassa olevalla PSSessionilla ja asianmukaisesti hankitulla PSCredential-objektilla:
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
}
Tunnistetieto-objekti on välityspalvelimen aiottua tiliä varten. Istunto käyttää edelleen tavanomaista remoting-todennustaan, ja mahdollinen verkkosivustokirjautuminen on edelleen osa kyseistä sivustopyyntöä.
Näin vältetään nojaamasta ensimmäisen kirjautumisen automaattiseen välittämiseen. Se kuitenkin edellyttää, että etäisäntä käsittelee annetun tiliaineiston osana aiottua hallintaratkaisua. Muilla arkkitehtuureilla, kuten hallitulla RunAs-päätepisteellä tai rajoitetulla palvelukäytöllä, on omat määritysvaatimuksensa.
Jos oletusarvoiset välityspalvelimen tunnistetiedot olivat väärä oletus, kirjaa ylös tili, jonka alla etäkomento suoritetaan, ja todennus, jota välityspalvelin pyytää. Pidempi web-pyynnön aikakatkaisu ei voi tarjota puuttuvia tunnistetietoja.
New-PSSessionOptionin välityspalvelinasetukset koskevat itse remoting-yhteyttä. Määritä Invoke-WebRequest etäskriptilohkon sisällä, kun juuri B:n ulospäin suuntautuva verkkoyhteys tarvitsee välityspalvelinta.