URL พร็อกซีทำงานเมื่อกำหนดค่าโดยตรง แต่การตรวจสอบสิทธิ์ล้มเหลวหลังจากย้ายค่าเดียวกันไปยังไฟล์แบตช์ของ Windows ตรวจสอบว่าตัวแยกวิเคราะห์แบตช์เปลี่ยนเครื่องหมายเปอร์เซ็นต์ก่อนที่ไคลเอนต์ HTTP จะได้รับ URL หรือไม่

มีการแสดงสองแบบแยกกัน การเข้ารหัส URL สามารถแสดงเครื่องหมายแบ็กสแลชเป็น %5C และเครื่องหมายคำถามเป็น %3F เครื่องหมายเปอร์เซ็นต์ตามตัวอักษรในคำสั่งไฟล์แบตช์ต้อง escape เป็น %%

สำหรับบัญชีตัวอย่าง domain\user ที่มีรหัสผ่านตัวแทน pass? ไฟล์ .bat อาจมี:

set "https_proxy=http://domain%%5Cuser:pass%%[email protected]:8080"

โปรเซสที่เริ่มภายหลังควรได้รับ URL ที่มี domain%5Cuser:pass%3F เครื่องหมายเปอร์เซ็นต์คู่เป็นของต้นฉบับแบตช์ ไม่ใช่ของ URL พร็อกซีที่ไคลเอนต์เก็บไว้

อย่าคัดลอกการสะกดแบบแบตช์นั้นไปยังไฟล์ .npmrc หรือช่องพร็อกซีของแอปพลิเคชัน: อินพุตเหล่านั้นไม่ผ่านขั้นตอนการแยกวิเคราะห์แบตช์เดียวกัน ในทำนองเดียวกัน ตัวอย่างนี้ไม่ใช่ไวยากรณ์ของ PowerShell ตัวห่ออื่น เช่น CALL หรือคำสั่งที่สร้างสำหรับเชลล์ที่สอง อาจเพิ่มรอบการแยกวิเคราะห์อีกรอบและต้องตรวจสอบแยกต่างหาก

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

เมื่อตรวจสอบผลลัพธ์ ให้เปรียบเทียบการเข้ารหัสที่คาดหวังกับการแสดงที่ถูกปกปิด แทนการพิมพ์ URL ที่มีรหัสผ่านลงในบันทึกที่แชร์ การแก้ไขการ escape ของเชลล์รักษาข้อมูลรับรองไว้ แต่ไม่ได้เลือกวิธีตรวจสอบสิทธิ์ที่ไคลเอนต์ยังไม่รองรับ

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