Powershell เป็นกรอบงานอัตโนมัติและการจัดการที่ได้รับการพัฒนาและเผยแพร่โดย Microsoft ประกอบด้วยเชลล์บรรทัดคำสั่งและภาษาที่เกี่ยวข้อง ผู้ใช้สามารถเรียกใช้ cmdlet จำนวนมากในโปรแกรม อย่างไรก็ตามเมื่อไม่นานมานี้มีรายงานจำนวนมากเข้ามาโดยที่ผู้ใช้ไม่สามารถเรียกใช้สคริปต์และ ' การรันสคริปต์ถูกปิดใช้งานบนระบบนี้ ” หรือ“ การเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้ ” แสดงข้อผิดพลาดใน Powershell
ข้อผิดพลาด“ การเรียกใช้สคริปต์ถูกปิดใช้งานบนคอมพิวเตอร์เครื่องนี้”
ในบทความนี้เราจะพูดถึงสาเหตุที่ทำให้ข้อผิดพลาดนี้อาจเกิดขึ้นและวิธีแก้ไขปัญหาที่สามารถแก้ไขได้อย่างถาวร อย่าลืมทำตามขั้นตอนอย่างระมัดระวังและถูกต้องเพื่อหลีกเลี่ยงความขัดแย้ง
อะไรเป็นสาเหตุของข้อผิดพลาด“ การรันสคริปต์ถูกปิดใช้งานบนระบบนี้”
หลังจากได้รับรายงานจำนวนมากจากผู้ใช้หลายรายเราตัดสินใจที่จะตรวจสอบเรื่องนี้และการวิจัยของเราชี้ให้เห็นว่าข้อผิดพลาดเกิดจากปัญหาต่อไปนี้
- สคริปต์ที่ปิดใช้งาน: สคริปต์ทุกตัวที่คุณเรียกใช้บน Powershell จะต้องมีการตรวจสอบระดับหนึ่งจากแหล่งที่มาที่เชื่อถือได้เพื่อให้สคริปต์ทำงานได้ อย่างไรก็ตามในบางกรณีแม้ว่าสคริปต์จะมีการตรวจสอบ แต่ก็ยังหยุดการทำงานเนื่องจากการเข้าถึงที่ จำกัด สิ่งนี้ก็คือ Windows มี“ นโยบายการดำเนินการ” ที่สคริปต์ต้องข้ามเพื่อให้สามารถดำเนินการได้ หากนโยบายการดำเนินการถูกตั้งค่าเป็น“ จำกัด ” จะไม่มีสคริปต์ใดสามารถเรียกใช้บนคอมพิวเตอร์ได้
เมื่อคุณมีความเข้าใจพื้นฐานเกี่ยวกับลักษณะของปัญหาแล้วเราจะดำเนินการแก้ไขต่อไป
โซลูชันที่ 1: การเพิ่มรหัส
หากคุณต้องการเรียกใช้สคริปต์เฉพาะบนคอมพิวเตอร์ของคุณโดยไม่ต้องยุ่งยากกับการเปลี่ยนนโยบายการดำเนินการคุณสามารถเพิ่มโค้ดลงในคำสั่งได้ตลอดเวลาซึ่งจะให้สิทธิ์การเข้าถึงสคริปต์ผ่านนโยบาย สำหรับการที่:
- กด“ Windows '+' ร ” เพื่อเปิดพรอมต์เรียกใช้
- พิมพ์“ Powershell ” แล้วกด“ กะ '+' Ctrl '+' ป้อน ” พร้อมกันเพื่อให้สิทธิ์การเข้าถึงระดับผู้ดูแลระบบ
พิมพ์ใน“ Powershell” แล้วกด“ Shift” +“ Alt” +“ Enter”
- พิมพ์คำสั่งเพื่อเรียกใช้สคริปต์เฉพาะเช่นคำสั่งต่อไปนี้
c: > powershell -ExecutionPolicy ByPass -File script.ps1
- กด“ ป้อน ” และ ตรวจสอบ เพื่อดูว่าปัญหายังคงมีอยู่หรือไม่
โซลูชันที่ 2: การเปลี่ยนนโยบายการดำเนินการ
เนื่องจากนโยบายการดำเนินการให้การเข้าถึง Powershell เพื่อเรียกใช้สคริปต์เฉพาะหากถูกตั้งค่าเป็นแบบ จำกัด ก็จะบล็อกสคริปต์ทั้งหมดไม่ให้เรียกใช้งาน มีโหมดต่างๆที่คุณสามารถตั้งค่านโยบายได้โดยขึ้นอยู่กับสถานการณ์ของคุณ โหมดเหล่านี้คือ:
- ถูก จำกัด: โหมดนี้ไม่อนุญาตให้เรียกใช้สคริปต์ใด ๆ บนคอมพิวเตอร์
- AllSigned: การเลือกโหมดนี้จะทำให้สามารถเรียกใช้เฉพาะนโยบายที่ลงนามโดยผู้เผยแพร่ที่เชื่อถือได้บนคอมพิวเตอร์
- RemoteSigned: สคริปต์ที่ดาวน์โหลดทั้งหมดต้องลงนามโดยผู้เผยแพร่ที่เชื่อถือได้
- ไม่ จำกัด : ไม่มีข้อ จำกัด เกี่ยวกับสคริปต์ใด ๆ เลย
เมื่อคุณทราบระดับที่สามารถตั้งค่านโยบายการดำเนินการได้แล้วคุณสามารถเลือกระดับที่ดีที่สุดสำหรับคุณได้อย่างง่ายดายโดยขึ้นอยู่กับความต้องการของคุณ ในการเปลี่ยนนโยบายการดำเนินการ:
- กด“ Windows '+' ร ” เพื่อเปิดพรอมต์เรียกใช้
- พิมพ์“ Powershell” แล้วกด“ กะ '+' Ctrl '+' ป้อน ” พร้อมกันเพื่อให้สิทธิ์การเข้าถึงระดับผู้ดูแลระบบ
พิมพ์ใน“ Powershell” แล้วกด“ Shift” +“ Alt” +“ Enter”
- พิมพ์คำสั่งต่อไปนี้แล้วกด“ Enter” เพื่อดำเนินการ
Set-ExecutionPolicy Remotesigned
บันทึก: คำ ' RemoteSigned ” จะถูกแทนที่ด้วยระดับความปลอดภัยที่คุณต้องการตามที่ระบุไว้ข้างต้น
- กด“ และ ” เพื่อระบุว่าใช่และจะเปลี่ยนนโยบายกลุ่มเป็นระดับที่ต้องการ
การเปลี่ยนนโยบายกลุ่ม
- ตรวจสอบ เพื่อดูว่าปัญหายังคงมีอยู่หรือไม่