ข้อผิดพลาดนี้เกิดขึ้นเมื่อผู้ใช้พยายามรันสคริปต์หรือคำสั่งเฉพาะใน PowerShell ส่วนหนึ่งของงานของพวกเขาหรือเพื่อแก้ไขปัญหาที่รบกวนพวกเขาบน PC การรันสคริปต์มักจะถูกปิดใช้งานโดยค่าเริ่มต้นบนระบบของผู้ใช้ และตัวเลือกนี้ต้องการการปรับแต่งเพื่ออนุญาตให้ทำได้
มีสาเหตุอื่นของปัญหานี้ด้วย และ đóคือเหตุผลที่เราจึงจัดทำบทความนี้ซึ่งควรช่วยคุณแก้ไขปัญหานี้หากคุณทำตามวิธีการอย่างระมัดระวัง โชคดีนะ!
สาเหตุของข้อผิดพลาด "Execution of scripts is disabled on this system"
ไม่มีสาเหตุที่หลากหลายมากสำหรับปัญหานี้ และมันมักแตกต่างกันจากระบบหนึ่งไปยังอีกระบบหนึ่ง แต่มันสามารถแสดงรายการได้ง่าย และคุณควรดูว่าปัญหาของคุณสามารถจัดอยู่ในตัวเลือกด้านล่างได้หรือไม่:
- บางครั้งการรันสคริปต์ถูกปิดใช้งานโดยค่าเริ่มต้นบนระบบของผู้ใช้ และต้องเปิดใช้งานด้วยตนเองโดยใช้วิธีต่างๆ เช่น การรันคำสั่งใน PowerShell หรือการปรับแต่ง Registry
- หากการรันถูกปิดใช้งานในขอบเขตที่สูงกว่า คุณอาจต้องเปิดใช้งานโดยใช้ Local Group Policy Editor (GPEdit) มีตัวเลือกในการทำเช่นนั้นใน Windows 10 Settings ด้วย
- คุณอาจต้องการให้สิทธิ์ผู้ดูแลระบบ (administrator) กับ PowerShell เมื่อรันคำสั่ง
วิธีแก้ไขที่ 1: รัน PowerShell เป็น Administrator และรันคำสั่ง
มีคำสั่งใน PowerShell ที่จัดการกับปัญหานี้อย่างตรงไปตรงมา และสามารถแก้ไขได้ในไม่กี่นาที นี่รวมถึงการเปลี่ยนนโยบายการรันสคริปต์ (script execution policy) จากภายในหน้าต่าง PowerShell ลองทำดูสิ!
- เปิดยูทิลิตี้ PowerShell โดยคลิกขวาที่ปุ่ม Start menu และคลิกที่ตัวเลือก Windows PowerShell (Admin) ในเมนูบริบท ผู้ใช้ Windows 7 สามารถค้นหาได้
- หากคุณเห็น Command Prompt แทน PowerShell ที่ตำแหน่งนั้น คุณก็สามารถค้นหาใน Start menu หรือแถบค้นหาข้างๆ ได้ ในครั้งนี้ ต้องแน่ใจว่าคลิกขวาที่ผลลัพธ์แรกและเลือก Run as administrator
- ในคอนโซล PowerShell ให้พิมพ์คำสั่งที่แสดงด้านล่างและแน่ใจว่าคุณกด Enter หลังจากนั้น:
Set-ExecutionPolicy RemoteSigned
- ปล่อยให้คำสั่งนี้ทำงาน และตรวจสอบว่ามีข้อความปรากฏขึ้นบ่งชี้ว่ากระบวนการสำเร็จจริงหรือไม่ วิธีนี้สามารถนำไปใช้กับระบบปฏิบัติการ Windows ทั้งหมด รวมถึง Windows 10
วิธีแก้ไขที่ 2: แก้ไข Group Policies
หากวิธีด้านบนล้มเหลวในการให้ผลสำเร็จ ซึ่งมักเกิดขึ้นบน Windows เวอร์ชันใหม่กว่า เช่น Windows 10 คุณอาจต้องเปลี่ยนนโยบายในขอบเขตที่สูงกว่า นี่คือข้อความผิดพลาดทั่วไปที่ปรากฏหลังจากรันคำสั่งจากวิธีแก้ไขที่ 1:
Set-ExecutionPolicy: Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope. Due to the override, your shell will retain its current effective execution policy of...
เพื่อแก้ไขปัญหา คุณควรไปที่ Group Policy editor และเปลี่ยนการตั้งค่าจากที่นั่นทันที
- ใช้การผสมผสานปุ่ม Windows Key + R (กดพร้อมกัน) เพื่อเปิดกล่องโต้ตอบ Run ป้อน "gpedit.msc" ในกล่องโต้ตอบ Run และกดปุ่ม OK เพื่อเปิดเครื่องมือ Local Group Policy Editor บน Windows 10 คุณสามารถพิมพ์ Group Policy Editor ใน Start menu และคลิกผลลัพธ์อันดับหนึ่งได้
- บนบานหน้าต่างนำทางด้านซ้ายของ Local Group Policy Editor ภายใต้ Computer Configuration ให้ดับเบิลคลิกที่ Administrative Templates และนำทางไปที่ Windows Components >> Windows Powershell
- เลือกโฟลเดอร์ Windows Powershell โดยดับเบิลคลิกที่มัน และดูส่วนด้านขวา
- ดับเบิลคลิกที่นโยบาย "Turn on Script Execution" ติ๊กปุ่ม radio ถัดจากตัวเลือก "Enabled" ภายใต้เมนู Execution policy ให้เลือก Allow all scripts ใช้การเปลี่ยนแปลงที่คุณทำก่อนออกจากโปรแกรม การเปลี่ยนแปลงจะไม่ถูกนำไปใช้จนกว่าคุณจะรีสตาร์ท
- สุดท้าย ให้รีบูทคอมพิวเตอร์เพื่อบันทึกการเปลี่ยนแปลง และตรวจสอบว่าคุณยังถูกเป้าหมายด้วยข้อผิดพลาดหรือไม่
วิธีแก้ไขที่ 3: เปลี่ยนใน Windows 10 Settings
ผู้ใช้ Windows 10 ยังสามารถเปลี่ยนการตั้งค่าสคริปต์ในแอป Windows 10 Settings ของพวกเขา ภายใต้ส่วน For developers โดยทั่วไป นี่คือสถานที่ที่คุณควรไปหากขั้นตอนด้านบนล้มเหลวในการให้ผลลัพธ์ที่ดีในการแก้ไขปัญหา โปรดทราบว่านี้สามารถนำไปใช้กับผู้ใช้ที่รัน Windows 10 เท่านั้น
- ใช้การผสมผสานปุ่ม Windows Key + I เพื่อเปิด Settings บน PC Windows 10 ของคุณ หรือคุณสามารถค้นหา "Settings" โดยใช้แถบค้นหาที่ตั้งอยู่ที่แถบงาน หรือคุณสามารถคลิกไอคอนฟันเฟืองขวาบนปุ่ม Start menu หลังจากมันเปิด
- ค้นหาและเปิด sub-entry "Update & security" ในแอป Settings โดยคลิกที่มันครั้งเดียว
- นำทางไปที่แท็บ For developers และตรวจสอบภายใต้ส่วน Powershell สำหรับตัวเลือกที่เรียกว่า "Change execution policy to allow local PowerShell scripts to run without signing. Require signing for remote scripts"
- คลิกกล่องถัดจากมันเพื่อเปิดใช้งาน และคลิกปุ่ม Apply ด้านล่าง
- รีสตาร์ทคอมพิวเตอร์ของคุณทันที และลองรันสคริปต์ใน PowerShell เพื่อดูว่าข้อผิดพลาด "Execution of scripts is disabled on this system" ยังปรากฏหรือไม่
วิธีแก้ไขที่ 4: แก้ไขปัญหาโดยใช้ Registry
หากวิธีด้านบนล้มเหลวในการแก้ไขปัญหาของคุณ สิ่งที่เหลือคือไปที่ Registry และเปลี่ยนการตั้งค่าด้วยตนเองในขอบเขตสูงสุดที่เป็นไปได้ วิธีนี้ค่อนข้างตรงไปตรงมา แต่คุณควรระมัดระวังเมื่อแก้ไข Registry เพื่อให้แน่ใจว่าไม่มีอะไรผิดพลาด
- เปิดหน้าต่าง Registry Editor โดยพิมพ์ "regedit" ในแถบค้นหา Start menu หรือกล่องโต้ตอบ Run ซึ่งสามารถเข้าถึงได้ด้วยการผสมผสานปุ่ม Windows Key + R นำทางไปยังคีย์ต่อไปนี้ใน Registry ของคุณโดยการนำทางที่บานหน้าต่างด้านซ้าย:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
- คลิกที่คีย์นี้และพยายามค้นหา string entry ที่เรียกว่า ExecutionPolicy ที่ด้านขวาของหน้าต่าง หากมีตัวเลือกนี้ ให้คลิกขวาที่มัน และเลือกตัวเลือก Modify จากเมนูบริบท
- ในหน้าต่าง Edit ภายใต้ส่วน Value data ให้เปลี่ยนค่าเป็น Unrestricted หรือ RemoteSigned และใช้การเปลี่ยนแปลงที่คุณทำ ยืนยันกล่องโต้ตอบด้านความปลอดภัยใดๆ ที่อาจปรากฏในระหว่างกระบวนการนี้

- คุณสามารถรีสตาร์ทคอมพิวเตอร์ด้วยตนเองได้โดยคลิก Start menu >> Power button >> Restart และตรวจสอบว่าปัญหาหายไปหรือไม่