คำขอเว็บที่ทำงานแบบโต้ตอบบนเซิร์ฟเวอร์ B อาจได้รับ 407 เมื่อคำสั่งเดียวกันทำงานที่นั่นผ่าน PowerShell remoting การลงชื่อเข้าใช้จาก A ไปยัง B ไม่ได้มอบหมายข้อมูลระบุตัวตนนั้นโดยอัตโนมัติสำหรับการแลกเปลี่ยนการรับรองความถูกต้องครั้งถัดไปของ B

A → remoting session on B → HTTP proxy → website

แนวทางที่รองรับแนวทางหนึ่งคือ ระบุบัญชีพร็อกซี่อย่างชัดเจน สำหรับคำขอขาออก ด้วย PSSession ที่มีอยู่และออบเจ็กต์ 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
}

ออบเจ็กต์ข้อมูลรับรองมีไว้สำหรับบัญชีที่ต้องการของพร็อกซี่ เซสชันยังคงใช้การรับรองความถูกต้องแบบ remoting ตามปกติ และการลงชื่อเข้าใช้เว็บไซต์ใด ๆ ยังคงเป็นส่วนหนึ่งของคำขอไปยังเว็บไซต์นั้น

วิธีนี้หลีกเลี่ยงการพึ่งพาการมอบหมายอัตโนมัติของการลงชื่อเข้าใช้ครั้งแรก แต่ต้องให้โฮสต์ระยะไกลจัดการวัสดุบัญชีที่ให้มาเป็นส่วนหนึ่งของการออกแบบการดูแลระบบที่ต้องการ สถาปัตยกรรมอื่น เช่น ปลายทาง RunAs ที่มีการจัดการหรือการเข้าถึงบริการแบบจำกัด มีข้อกำหนดการกำหนดค่าของตัวเอง

หากข้อมูลรับรองพร็อกซี่เริ่มต้นเป็นสมมติฐานที่ผิด ให้บันทึกบัญชีที่คำสั่งระยะไกลทำงานอยู่และการรับรองความถูกต้องที่พร็อกซี่ร้องขอ การหมดเวลาคำขอเว็บที่นานขึ้นไม่สามารถให้ข้อมูลรับรองที่ขาดหายไปได้

ตัวเลือกพร็อกซี่บน New-PSSessionOption เกี่ยวข้องกับการเชื่อมต่อ remoting เอง กำหนดค่า Invoke-WebRequest ภายในบล็อกสคริปต์ระยะไกลเมื่อการเชื่อมต่อเว็บขาออกของ B เป็นสิ่งที่ต้องการพร็อกซี่

บทความที่เกี่ยวข้อง