Kelayakan Proxy pada Lompatan PowerShell Kedua
Berikan akaun proksi yang dimaksudkan kepada Invoke-WebRequest pada pelayan jauh dan bukannya menganggap log masuk remoting diwakilkan.
Permintaan web yang berfungsi secara interaktif pada pelayan B boleh menerima 407 apabila arahan yang sama dijalankan di sana melalui PowerShell remoting. Log masuk dari A ke B tidak mewakilkan identiti itu secara automatik untuk pertukaran pengesahan B yang seterusnya.
A → remoting session on B → HTTP proxy → website
Satu reka bentuk yang disokong ialah memberikan akaun proksi secara eksplisit untuk permintaan keluar. Dengan PSSession sedia ada dan objek PSCredential yang diperoleh dengan betul:
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
}
Objek kelayakan itu adalah untuk akaun proksi yang dimaksudkan. Sesi masih menggunakan pengesahan remoting biasa, dan sebarang log masuk laman web kekal sebagai sebahagian daripada permintaan laman tersebut.
Ini mengelakkan pergantungan pada perwakilan automatik log masuk pertama. Namun ia memerlukan hos jauh mengendalikan bahan akaun yang dibekalkan sebagai sebahagian daripada reka bentuk pentadbiran yang dimaksudkan. Seni bina lain, seperti titik akhir RunAs terurus atau akses perkhidmatan terhad, mempunyai keperluan konfigurasi tersendiri.
Jika kelayakan proksi lalai ialah andaian yang salah, catat akaun yang menjalankan arahan jauh dan pengesahan yang diminta oleh proksi. Tempoh tamat permintaan web yang lebih panjang tidak boleh membekalkan kelayakan yang hilang.
Pilihan proksi pada New-PSSessionOption berkaitan sambungan remoting itu sendiri. Konfigurasikan Invoke-WebRequest di dalam blok skrip jauh apabila sambungan web keluar B yang memerlukan proksi.