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

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

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

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

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

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

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

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

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

  1. กด“ Windows ” +“ R ” เพื่อเปิดพร้อมท์เรียกใช้
  2. พิมพ์“ Powershell ” แล้วกด“ Shift ” +“ Ctrl ” +“ Enter ” พร้อมกันเพื่อให้สิทธิ์การเข้าถึงระดับผู้ดูแลระบบ
  3. พิมพ์คำสั่งเพื่อเรียกใช้สคริปต์เฉพาะเช่นคำสั่งต่อไปนี้
    c: \> powershell -ExecutionPolicy ByPass -File script.ps1
  4. กด“ Enter ” และตรวจสอบว่าปัญหายังคงมีอยู่หรือไม่

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

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

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

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

  1. กด“ Windows ” +“ R ” เพื่อเปิดพร้อมท์เรียกใช้
  2. พิมพ์“ Powershell” แล้วกด“ Shift ” +“ Ctrl ” +“ Enter ” พร้อมกันเพื่อให้สิทธิ์การเข้าถึงระดับผู้ดูแลระบบ
  3. พิมพ์คำสั่งต่อไปนี้แล้วกด“ Enter” เพื่อดำเนินการ
    Set-ExecutionPolicy Remotesigned

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

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