Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

วิธีแก้ไขข้อผิดพลาด "Running Scripts is Disabled on this System" ใน PowerShell

PowerShell เป็นเฟรมเวิร์กสำหรับอัตโนมัติและจัดการงานที่พัฒนาโดย Microsoft ประกอบด้วย command-line shell และภาษาสคริปต์ ผู้ใช้สามารถรัน cmdlets ได้มากมาย แต่เมื่อเรานี้มีรายงานว่ารันสคริปต์ไม่ได้ แสดงข้อผิดพลาด Running Script is Disabled on this System หรือ execution of scripts is disabled on this system

วิธีแก้ไขข้อผิดพลาด  Running Scripts is Disabled on this System  ใน PowerShell

บทความนี้จะอธิบายสาเหตุและวิธีแก้ไขอย่างถาวร โปรดทำตามขั้นตอนอย่างระมัดระวัง

สาเหตุของข้อผิดพลาด "Running Scripts is Disabled on this System"

จากการสำรวจพบว่าสาเหตุหลักคือ:

  • สคริปต์ถูกปิดใช้งาน: ทุกสคริปต์ต้องผ่านการตรวจสอบจากแหล่งที่เชื่อถือได้ แต่ในบางกรณีแม้จะมีการตรวจสอบแล้ว ก็ยังถูกบล็อกเนื่องจากนโยบายการรัน (Execution Policy) ถูกตั้งค่าเป็น Restricted ทำให้ไม่มีสคริปต์ใดรันได้

เข้าใจสาเหตุแล้ว มาดูวิธีแก้ไขกัน

วิธีแก้ไข 1: เพิ่มโค้ดเพื่อข้ามนโยบาย

หากต้องการรันสคริปต์เฉพาะตัวโดยไม่เปลี่ยนนโยบายการรัน ให้เพิ่มพารามิเตอร์ในคำสั่ง

  1. กด Windows + R เปิด Run prompt
  2. พิมพ์ PowerShell แล้วกด Shift + Ctrl + Enter เพื่อเปิดด้วยสิทธิ์แอดมินวิธีแก้ไขข้อผิดพลาด  Running Scripts is Disabled on this System  ใน PowerShell
  3. พิมพ์คำสั่งรันสคริปต์พร้อมพารามิเตอร์ bypass:
    c:\> powershell -ExecutionPolicy ByPass -File script.ps1
  4. กด Enter และตรวจสอบว่าปัญหาแก้ไขหรือยัง

วิธีแก้ไข 2: เปลี่ยนนโยบายการรัน (Execution Policy)

นโยบายการรันควบคุมว่าสคริปต์ใดได้รับอนุญาตให้รัน มีระดับดังนี้:

  • Restricted: ห้ามรันสคริปต์ทั้งหมด (ค่าเริ่มต้น)
  • AllSigned: รันได้เฉพาะสคริปต์ที่ลงนามโดยผู้เผยแพร่ที่เชื่อถือได้
  • RemoteSigned: สคริปต์ที่ดาวน์โหลดต้องมีลายเซ็นจากผู้เผยแพร่ที่เชื่อถือได้
  • Unrestricted: ไม่มีข้อจำกัด ใส่สคริปต์ได้ทั้งหมด

เลือกระดับที่เหมาะสม แล้วเปลี่ยนนโยบาย:

  1. กด Windows + R เปิด Run prompt
  2. พิมพ์ PowerShell กด Shift + Ctrl + Enter เพื่อสิทธิ์แอดมินวิธีแก้ไขข้อผิดพลาด  Running Scripts is Disabled on this System  ใน PowerShell
  3. พิมพ์คำสั่งและกด Enter:
    Set-ExecutionPolicy RemoteSigned

    หมายเหตุ: แทนคำว่า RemoteSigned ด้วยระดับที่ต้องการ (AllSigned, Unrestricted, ฯลฯ)

  4. กด Y เพื่อยืนยัน จะเปลี่ยน Group Policy เป็นระดับที่เลือกวิธีแก้ไขข้อผิดพลาด  Running Scripts is Disabled on this System  ใน PowerShell
  5. ตรวจสอบ ว่าปัญหาแก้ไขหรือยัง