ค้นหาเว็บไซต์

ไม่สามารถดาวน์โหลดจาก URI ข้อผิดพลาดการติดตั้งโมดูล PowerShell


ในคอมพิวเตอร์ Windows 11 หรือ Windows 10 คุณอาจได้รับ ไม่สามารถดาวน์โหลดจาก URI, ข้อผิดพลาดการติดตั้งโมดูล PowerShell เมื่อคุณพยายามเชื่อมต่อกับที่เก็บ PowerShell หรือเรียกใช้ cmdlet โมดูลการติดตั้งเพื่อติดตั้ง แพ็คเกจบนอุปกรณ์ของคุณ โพสต์นี้ให้วิธีแก้ปัญหาที่เหมาะสมที่สุดสำหรับปัญหานี้

เมื่อเกิดข้อผิดพลาดนี้ คุณจะได้รับผลลัพธ์ตามบรรทัดที่คล้ายกันต่อไปนี้



ปัญหานี้มีแนวโน้มที่จะเกิดขึ้นเนื่องจากในขณะที่ Azure และ Office 365 ได้ย้ายไปที่ TLS 1.2 ส่วนประกอบเก่าอื่นๆ ตามค่าเริ่มต้นโดยทั่วไปจะไม่ใช้ TLS 1.2 นี่เป็นหนึ่งในกรณีที่ PowerShell ใช้การกำหนดค่า TLS ที่ไม่ถูกต้อง

ไม่สามารถดาวน์โหลดจาก URI ข้อผิดพลาดการติดตั้งโมดูล PowerShell

ปัญหานี้เกิดขึ้นเมื่อ PowerShell พยายามเชื่อมต่อกับที่เก็บ NuGet โดยใช้โปรโตคอล TLS/SSL เดิมแทน TLS 1.2 ปัจจุบันหรือ TLS 1.3 ที่ใหม่กว่า ดังนั้น หากคุณประสบกับข้อผิดพลาดการติดตั้งโมดูล PowerShell ไม่สามารถดาวน์โหลดจาก URI คุณสามารถลองทำตามคำแนะนำด้านล่างเพื่อแก้ไขปัญหาในระบบของคุณ

  1. ตรวจสอบและอัปเดตเวอร์ชัน PowerShell

  2. ตั้งค่า PowerShell เพื่อใช้ TLS 1.2

มาดูคำแนะนำโดยละเอียดกัน

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

1. ตรวจสอบและอัปเดตเวอร์ชันของ PowerShell

หากต้องการแก้ไขไม่สามารถดาวน์โหลดจาก URI, ข้อผิดพลาดการติดตั้งโมดูลของ PowerShell บนระบบ Windows 11/10 ของคุณได้อย่างง่ายดายและรวดเร็ว ขั้นแรกให้ตรวจสอบและอัปเดตเวอร์ชัน PowerShell ที่ติดตั้งบนคอมพิวเตอร์ของคุณ หากเวอร์ชัน PowerShell ของคุณคือ 5.1.14xx หรือก่อนหน้า ให้อัปเดต PowerShell

ตามค่าเริ่มต้น PowerShell รุ่นก่อนหน้าจะใช้ SSL 3.0 และ TLS 1.0 เพื่อสร้างการเชื่อมต่อ HTTPS ที่ปลอดภัยไปยังที่เก็บ เมื่อคุณอัปเดต PowerShell แล้ว และคุณเรียกใช้ Install-Module cmdlet เพื่อติดตั้งแพ็คเกจบนอุปกรณ์ของคุณ แต่ข้อผิดพลาดในมุมมองเกิดขึ้นซ้ำ คุณสามารถดำเนินการตามคำแนะนำถัดไปได้

2. ตั้งค่า PowerShell เพื่อใช้ TLS 1.2

ตอนนี้คุณได้อัปเดต PowerShell ในระบบของคุณแล้วแต่ยังคงได้รับข้อผิดพลาด คุณสามารถตรวจสอบและตรวจสอบให้แน่ใจว่าตั้งค่า PowerShell ให้ใช้ TLS 1.2 หรือใหม่กว่า ทำดังต่อไปนี้:

  • กด แป้น Windows + X เพื่อเปิด Power User Menu

  • แตะ A บนแป้นพิมพ์เพื่อเปิดใช้ PowerShell (Windows Terminal) ในโหมดผู้ดูแลระบบ/ยกระดับ

  • ในคอนโซล PowerShell ให้พิมพ์หรือคัดลอกและวางในคำสั่งด้านล่าง แล้วกด Enter เพื่อแสดงรายการโปรโตคอลที่ใช้สำหรับการเชื่อมต่อ:

[Net.ServicePointManager]::SecurityProtocol

ตามที่กล่าวมาแล้ว พื้นที่เก็บข้อมูล Microsoft ต้องการ TLS 1.2 หรือ TLS 1.3 จากเครื่องไคลเอนต์ Windows 11/10; ดังนั้นหากผลลัพธ์แสดงว่า PowerShell ใช้ SSL 3.0, TLS 1.0 หรือ TLS 1.1 รุ่นเก่า ตอนนี้คุณสามารถเรียกใช้คำสั่งด้านล่างเพื่อตั้งค่า PowerShell ให้ใช้ TLS1.2 หรือใหม่กว่า:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

เมื่อเสร็จแล้ว คุณสามารถติดตั้งโมดูล PowerShell โดยใช้โมดูลการติดตั้งโดยไม่มีปัญหา

อย่างไรก็ตาม cmdlet ข้างต้นเป็นวิธีแก้ปัญหาชั่วคราวสำหรับเซสชัน PowerShell นั้น ดังนั้น เพื่อให้การตั้งค่านี้เป็นแบบถาวรเพื่อไม่ให้เวอร์ชันโปรโตคอลการเชื่อมต่อ HTTPS เปลี่ยนแปลงด้วยตนเองในแต่ละครั้ง คุณสามารถตั้งค่า TLS 1.2 เป็นโปรโตคอลการเชื่อมต่อเริ่มต้นใน .NET Framework 4.5 และใหม่กว่าได้โดยการเรียกใช้คำสั่งต่อไปนี้เพื่อแก้ไขรีจิสทรี (ตรวจสอบให้แน่ใจว่า เพื่อสำรองข้อมูลรีจิสทรีหรือสร้างจุดคืนค่าระบบ):

สำหรับ 64 บิต .NET Framework เวอร์ชัน 4 ขึ้นไป

Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord

สำหรับ 32 บิต .NET Framework เวอร์ชัน 4 ขึ้นไป

Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord

เมื่อเสร็จแล้ว ให้รีสตาร์ท PowerShell และตรวจหาโปรโตคอลที่รองรับ ตอนนี้ TLS 1.2 จะถูกใช้สำหรับการเชื่อมต่อ PowerShell เสมอ และคุณสามารถติดตั้งโมดูลใดก็ได้ด้วย NuGet

หวังว่าคุณจะพบว่าโพสต์นี้ให้ข้อมูลและเป็นประโยชน์เพียงพอ!

เซิร์ฟเวอร์ของฉันใช้ TLS เวอร์ชันใด

ป้อน URL ที่คุณต้องการตรวจสอบในเบราว์เซอร์ คลิกขวาที่หน้าหรือเลือกเมนูแบบเลื่อนลงของหน้า แล้วเลือก คุณสมบัติ ในหน้าต่างใหม่ ให้มองหาส่วนการเชื่อมต่อ ซึ่งจะอธิบายเวอร์ชันของ TLS หรือ SSL ที่ใช้

ฉันจะเปิดใช้งาน TLS 1.1 และ TLS 1.2 บน Mac ได้อย่างไร

กด Ctrl+F12 (หรือ Command+F12 บน Mac) หรือคลิกเมนู Opera แล้วไปที่ Settings → Preferences คลิกแท็บขั้นสูง จากนั้นคลิกความปลอดภัยในแถบด้านข้างซ้าย จากนั้นคลิกปุ่มโปรโตคอลความปลอดภัย ตรวจสอบให้แน่ใจว่าได้เลือกเปิดใช้งาน TLS 1.2 เท่านั้น

TLS 1.2 มีช่องโหว่หรือไม่

มีช่องโหว่ใน TLS 1.2 แม้ว่านักวิจัยจะบอกว่ามัน “ยากที่จะใช้ประโยชน์” และผู้ค้ารายใหญ่ก็ได้ออกแพตช์ความปลอดภัยสำหรับมันแล้ว TLS 1.3 เป็นเวอร์ชันล่าสุดของโปรโตคอลความปลอดภัยที่มีการใช้งานมากที่สุดของอินเทอร์เน็ต ซึ่งจะเข้ารหัสข้อมูลเพื่อให้มีช่องทางการสื่อสารที่ปลอดภัยระหว่างจุดสิ้นสุดสองจุด

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