วิธีแก้ไขข้อผิดพลาด 'การเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้' บน Powershell



ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

Powershell เป็นกรอบงานอัตโนมัติและการจัดการที่ได้รับการพัฒนาและเผยแพร่โดย Microsoft ประกอบด้วยเชลล์บรรทัดคำสั่งและภาษาที่เกี่ยวข้อง ผู้ใช้สามารถเรียกใช้ cmdlet จำนวนมากในโปรแกรม อย่างไรก็ตามเมื่อไม่นานมานี้มีรายงานจำนวนมากเข้ามาโดยที่ผู้ใช้ไม่สามารถเรียกใช้สคริปต์และ ' การรันสคริปต์ถูกปิดใช้งานบนระบบนี้ ” หรือ“ การเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้ ” แสดงข้อผิดพลาดใน Powershell



ข้อผิดพลาด“ การเรียกใช้สคริปต์ถูกปิดใช้งานบนคอมพิวเตอร์เครื่องนี้”



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



อะไรเป็นสาเหตุของข้อผิดพลาด“ การรันสคริปต์ถูกปิดใช้งานบนระบบนี้”

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

  • สคริปต์ที่ปิดใช้งาน: สคริปต์ทุกตัวที่คุณเรียกใช้บน Powershell จะต้องมีการตรวจสอบระดับหนึ่งจากแหล่งที่มาที่เชื่อถือได้เพื่อให้สคริปต์ทำงานได้ อย่างไรก็ตามในบางกรณีแม้ว่าสคริปต์จะมีการตรวจสอบ แต่ก็ยังหยุดการทำงานเนื่องจากการเข้าถึงที่ จำกัด สิ่งนี้ก็คือ Windows มี“ นโยบายการดำเนินการ” ที่สคริปต์ต้องข้ามเพื่อให้สามารถดำเนินการได้ หากนโยบายการดำเนินการถูกตั้งค่าเป็น“ จำกัด ” จะไม่มีสคริปต์ใดสามารถเรียกใช้บนคอมพิวเตอร์ได้

เมื่อคุณมีความเข้าใจพื้นฐานเกี่ยวกับลักษณะของปัญหาแล้วเราจะดำเนินการแก้ไขต่อไป

โซลูชันที่ 1: การเพิ่มรหัส

หากคุณต้องการเรียกใช้สคริปต์เฉพาะบนคอมพิวเตอร์ของคุณโดยไม่ต้องยุ่งยากกับการเปลี่ยนนโยบายการดำเนินการคุณสามารถเพิ่มโค้ดลงในคำสั่งได้ตลอดเวลาซึ่งจะให้สิทธิ์การเข้าถึงสคริปต์ผ่านนโยบาย สำหรับการที่:



  1. กด“ Windows '+' ” เพื่อเปิดพรอมต์เรียกใช้
  2. พิมพ์“ Powershell ” แล้วกด“ กะ '+' Ctrl '+' ป้อน ” พร้อมกันเพื่อให้สิทธิ์การเข้าถึงระดับผู้ดูแลระบบ

    พิมพ์ใน“ Powershell” แล้วกด“ Shift” +“ Alt” +“ Enter”

  3. พิมพ์คำสั่งเพื่อเรียกใช้สคริปต์เฉพาะเช่นคำสั่งต่อไปนี้
    c: > powershell -ExecutionPolicy ByPass -File script.ps1 
  4. กด“ ป้อน ” และ ตรวจสอบ เพื่อดูว่าปัญหายังคงมีอยู่หรือไม่

โซลูชันที่ 2: การเปลี่ยนนโยบายการดำเนินการ

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

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

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

  1. กด“ Windows '+' ” เพื่อเปิดพรอมต์เรียกใช้
  2. พิมพ์“ Powershell” แล้วกด“ กะ '+' Ctrl '+' ป้อน ” พร้อมกันเพื่อให้สิทธิ์การเข้าถึงระดับผู้ดูแลระบบ

    พิมพ์ใน“ Powershell” แล้วกด“ Shift” +“ Alt” +“ Enter”

  3. พิมพ์คำสั่งต่อไปนี้แล้วกด“ Enter” เพื่อดำเนินการ
    Set-ExecutionPolicy Remotesigned

    บันทึก: คำ ' RemoteSigned ” จะถูกแทนที่ด้วยระดับความปลอดภัยที่คุณต้องการตามที่ระบุไว้ข้างต้น

  4. กด“ และ ” เพื่อระบุว่าใช่และจะเปลี่ยนนโยบายกลุ่มเป็นระดับที่ต้องการ

    การเปลี่ยนนโยบายกลุ่ม

  5. ตรวจสอบ เพื่อดูว่าปัญหายังคงมีอยู่หรือไม่
อ่าน 2 นาที