วิธีแก้ไข "การรันสคริปต์ถูกปิดใช้งานบนระบบนี้" ใน PowerShell บน Windows 10
หากคุณรู้วิธีเขียนสคริปต์ PowerShell หรือ Batch แบบง่ายๆ คุณสามารถดำเนินการบางอย่างบน Windows 10 ได้โดยอัตโนมัติ ที่จริงแล้ว แม้ว่าคุณจะต้องใช้เวลาเพียงเล็กน้อยในการเขียนสคริปต์ที่สมบูรณ์แบบสำหรับบางสิ่งบางอย่าง แต่ประหยัดเวลาได้เมื่อพร้อมแล้ว จะคุ้มค่ากับเวลาที่คุณใช้เขียนมัน ที่กล่าวว่าสคริปต์อาจเป็นอันตรายได้ ซึ่งเมื่อคุณพยายามเรียกใช้สคริปต์ใน PowerShell คุณจะได้รับข้อความแสดงข้อผิดพลาดที่ค่อนข้างยาวซึ่งแจ้งให้คุณทราบโดยพื้นฐานว่า “การเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้”
นี่เป็นมาตรการรักษาความปลอดภัยใน PowerShell เพื่อป้องกันไม่ให้สคริปต์ที่เป็นอันตรายทำงานและอาจเป็นอันตรายต่อระบบ แน่นอนว่าสคริปต์ที่คุณเขียนเองจะไม่เป็นอันตรายและควรจะสามารถทำงานได้ เมื่อต้องการแก้ไขปัญหานี้ คุณต้องเปลี่ยนนโยบายการดำเนินการใน PowerShell นี่คือวิธีการ
แก้ไขสคริปต์ที่ทำงานอยู่ถูกปิดใช้งานบนระบบนี้
เปิด PowerShell ด้วยสิทธิ์ของผู้ดูแลระบบ และเรียกใช้คำสั่งต่อไปนี้
Get-ExecutionPolicy -Listนี่จะแสดงนโยบายการดำเนินการที่กำหนดไว้สำหรับผู้ใช้ของคุณและสำหรับเครื่องของคุณ มีแนวโน้มว่าทั้งสองอย่างหรืออย่างน้อยที่สุดนโยบาย CurrentUser จะถูกตั้งค่าเป็นจำกัด
หากต้องการแก้ไขข้อผิดพลาด "การเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้" คุณต้องเปลี่ยนนโยบายสำหรับ CurrentUser โดยเรียกใช้คำสั่งต่อไปนี้
Set-ExecutionPolicy RemoteSigned -Scope CurrentUserยืนยันว่าคุณต้องการทำการเปลี่ยนแปลง และคุณจะสามารถเรียกใช้สคริปต์ได้
ซึ่งจะทำให้คุณสามารถเรียกใช้สคริปต์ส่วนใหญ่ได้ แต่ถ้าคุณยังคงได้รับข้อผิดพลาดเดิม คุณอาจต้องเปลี่ยนนโยบายการดำเนินการสำหรับเครื่อง คุณสามารถแก้ไขคำสั่งก่อนหน้าได้ แต่คุณจะต้องมีสิทธิ์ของผู้ดูแลระบบในการดำเนินการนี้
รันคำสั่งนี้
Set-ExecutionPolicy RemoteSigned -Scope LocalMachineยืนยันว่าคุณต้องการทำการเปลี่ยนแปลง จากนั้นลองเรียกใช้สคริปต์
สิ่งนี้น่าจะได้ผลหากคุณเขียนสคริปต์ด้วยตัวเอง แต่ถ้าคุณดาวน์โหลดสคริปต์ออนไลน์และไม่ได้ลงนาม คุณจะต้องเปลี่ยนนโยบายการดำเนินการเป็นไม่จำกัด ในการทำเช่นนั้น ให้แทนที่ “RemoteSigned” ในคำสั่งข้างต้นทั้งหมดด้วย “Unrestricted” ระวังให้มากว่าสคริปต์ใดที่คุณใช้งานหากคุณกำลังดาวน์โหลด พวกมันอาจเป็นอันตรายได้
ตั้งค่า ExecutionPolicy
นี่เป็นคำสั่งที่ค่อนข้างง่ายสำหรับการตั้งค่านโยบายการดำเนินการบน PowerShell คำสั่งนี้สามารถมีพารามิเตอร์หรือสถานะที่แตกต่างกันได้สี่แบบ: จำกัด, AllSigned, RemoteSigned และ Unrestricted
สวิตช์ -Scope กำหนดว่าการเปลี่ยนแปลงนโยบายจะนำไปใช้กับอะไร เมื่อคุณป้อน “CurrentUser” จะมีผลกับผู้ใช้ปัจจุบันเท่านั้น และเมื่อคุณป้อน “LocalMachine” จะมีผลกับทั้งระบบ


