
หากคุณเคยพยายามเรียกใช้สคริปต์ PowerShell และเห็นข้อความ: การเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้ คุณไม่ได้อยู่คนเดียว ต้องบอกว่านี่คือหนึ่งในข้อผิดพลาด PowerShell ที่พบบ่อยที่สุด โดยเฉพาะสำหรับนักพัฒนา ผู้ดูแลระบบไอที และผู้เริ่มต้นที่พยายามเรียกใช้สคริปต์การตั้งค่า งานอัตโนมัติ หรือเครื่องมือในเครื่อง
เมื่อเร็วๆ นี้ ฉันพยายามเรียกใช้สคริปต์ PowerShell บนพีซี Windows 11 ของฉัน และฉันพบข้อผิดพลาด: ไม่สามารถโหลดสคริปต์ PowerShell ได้เนื่องจากการเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้ สำหรับข้อมูลเพิ่มเติม โปรดดู about_Execution_Policies ที่ https://go.microsoft.com/fwlink/?LinkID=135170
ข้อผิดพลาด “ การเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้ ” เกิดขึ้นเนื่องจากนโยบายการดำเนินการ PowerShell ปัจจุบันของคอมพิวเตอร์ของคุณถูกตั้งค่าเป็น ' จำกัด ' ซึ่งจะป้องกันไม่ให้ไฟล์สคริปต์ทำงาน การปรับเปลี่ยนนโยบายการดำเนินการ PowerShell จากจำกัดเป็น RemoteSigned หรือ Bypass ช่วยให้คุณสามารถเรียกใช้สคริปต์ได้สำเร็จ คุณสามารถทำได้ด้วยตนเองหรือใช้นโยบาย Intune หรือกลุ่มเพื่อกำหนดค่านโยบายการดำเนินการ PS บนอุปกรณ์ Windows ที่มีการจัดการ
ติดตั้งและอัปเดตแอปพลิเคชันบุคคลที่สามด้วย Patch My PC
ไม่สามารถโหลดสคริปต์ PowerShell ได้เนื่องจากการเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้
เหตุใด PowerShell จึงบล็อกสคริปต์บน Windows
PowerShell คือเครื่องมืออัตโนมัติและการเขียนสคริปต์ที่ทรงพลังซึ่งมีอยู่ใน Windows PowerShell มีคุณลักษณะด้านความปลอดภัยที่เรียกว่า Execution Policy ซึ่งโดยทั่วไปจะควบคุมว่าสคริปต์สามารถทำงานได้บนคอมพิวเตอร์ของคุณหรือไม่
ต่อไปนี้คือสาเหตุที่ถูกต้องบางประการที่ทำให้สคริปต์ PowerShell ถูกบล็อกไม่ให้ทำงานตามค่าเริ่มต้น โดยเฉพาะในระบบ Windows ที่มีการจัดการหรือถูกล็อค
- ทำการเปลี่ยนแปลงระบบอัตโนมัติ เช่น การแก้ไขการตั้งค่า ค่าต่างๆ เป็นต้น
- ติดตั้งซอฟต์แวร์หรือแอพพลิเคชั่น
- แก้ไขไฟล์และการตั้งค่ารีจิสทรี
- โต้ตอบกับเครือข่ายและบริการ
เคล็ดลับความปลอดภัยก่อนเรียกใช้สคริปต์ PowerShell
นโยบายการดำเนินการไม่ใช่ระบบรักษาความปลอดภัยที่จำกัดการกระทำของผู้ใช้ ช่วยลดความเสี่ยงจากอุบัติเหตุ และ Microsoft เองก็ถือว่ามันเป็นคุณลักษณะด้านความปลอดภัยมากกว่าการควบคุมความปลอดภัยที่เข้มงวด ต้องบอกว่าก่อนที่คุณจะเรียกใช้สคริปต์ PowerShell โปรดพิจารณาประเด็นเหล่านี้
- อย่าเรียกใช้สคริปต์จากแหล่งที่ไม่รู้จัก
- ตรวจสอบสคริปต์ก่อนดำเนินการ เปิดใน Notepad หรือ PS ISE แล้วทดสอบอย่างละเอียด
- ต้องการ RemoteSigned มากกว่า Unrestricted เมื่อเป็นไปได้
- ใช้นโยบายการดำเนินการบายพาสเมื่อจำเป็นเท่านั้น
แก้ไขสคริปต์การรันถูกปิดใช้งานบนระบบนี้
หากต้องการแก้ไขข้อผิดพลาด “การเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้” บนคอมพิวเตอร์ Windows ของคุณ ให้ทำตามขั้นตอนเหล่านี้
ขั้นตอนที่ 1: ตรวจสอบนโยบายการดำเนินการ PowerShell ปัจจุบัน
ขั้นแรก ให้ตรวจสอบนโยบายการดำเนินการสำหรับเซสชัน PowerShell ปัจจุบันโดยใช้ Get-ExecutionPolicy cmdlet เรียกใช้คำสั่งต่อไปนี้ใน PowerShell เพื่อรับนโยบายการดำเนินการสคริปต์:
Get-ExecutionPolicy
คัดลอก
Get-ExecutionPolicy
หากต้องการรับนโยบายการดำเนินการที่ตั้งค่าไว้สำหรับผู้ใช้ปัจจุบัน ให้รันคำสั่งด้านล่างซึ่งใช้พารามิเตอร์ขอบเขตของ Get-ExecutionPolicy
Get-ExecutionPolicy -Scope CurrentUser
คัดลอก
Get-ExecutionPolicy
-
Scope CurrentUser
หลังจากรันคำสั่งข้างต้น เราจะเห็นว่านโยบายการดำเนินการปัจจุบันถูกตั้งค่าเป็นจำกัด มุ่งหน้าไปยังขั้นตอนถัดไปเพื่อแก้ไขนโยบายการดำเนินการ
ตรวจสอบนโยบายการดำเนินการ PowerShell ปัจจุบัน
ขั้นตอนที่ 2: ตั้งค่านโยบายการดำเนินการ PowerShell
หากต้องการเปลี่ยนนโยบายการดำเนินการ PowerShell บนคอมพิวเตอร์ Windows ของคุณ คุณสามารถใช้ Set-ExecutionPolicy cmdlet นโยบายการดำเนินการแต่ละนโยบายได้รับการออกแบบมาเพื่อวัตถุประสงค์เฉพาะ ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณเข้าใจจุดประสงค์ของนโยบายนั้นอย่างถ่องแท้ก่อนทำการแก้ไขใดๆ
ลงนามระยะไกลแล้ว
นี่เป็นนโยบายการดำเนินการที่แนะนำอย่างกว้างขวางที่สุดสำหรับนักพัฒนา โดยกำหนดให้สคริปต์ที่ดาวน์โหลดทั้งหมดต้องลงนามโดยผู้เผยแพร่ที่เชื่อถือได้ สิ่งนี้ช่วยให้คุณมีความยืดหยุ่นเพียงพอในการเรียกใช้สคริปต์ของคุณในขณะที่ยังคงป้องกันไฟล์ที่ดาวน์โหลดบางไฟล์ที่ไม่ปลอดภัย
เรียกใช้คำสั่งด้านล่างเพื่อตั้งค่านโยบายการดำเนินการเป็น RemoteSigned
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force
คัดลอก
Set-ExecutionPolicy
-
ExecutionPolicy RemoteSigned
-
Force
สำหรับผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบภายในอุปกรณ์ Windows คุณสามารถเปลี่ยนนโยบายการดำเนินการสำหรับผู้ใช้ปัจจุบันได้โดยใช้คำสั่งด้านล่าง
Set-ExecutionPolicy -ExecutionPolicy -Scope CurrentUser RemoteSigned -Force
คัดลอก
Set-ExecutionPolicy
-
ExecutionPolicy
-
Scope CurrentUser RemoteSigned
-
Force
ในภาพด้านล่าง เราจะเห็นว่านโยบายการดำเนินการถูกตั้งค่าเป็น RemoteSigned ตอนนี้ควรอนุญาตให้ผู้ใช้สามารถเรียกใช้สคริปต์และแก้ไขข้อผิดพลาด“ การเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้” อย่างถาวร
ตั้งค่านโยบายการดำเนินการ PowerShell เป็น RemoteSigned
บายพาส
โดยทั่วไปนโยบายการดำเนินการบายพาสจะใช้สำหรับงานอัตโนมัติชั่วคราวและการเรียกใช้สคริปต์การติดตั้งแบบครั้งเดียว อนุญาตให้คุณเรียกใช้สคริปต์เดียวโดยไม่ต้องเปลี่ยนการตั้งค่าทั้งระบบหรือต้องการสิทธิ์ของผู้ดูแลระบบ การเรียกใช้สคริปต์ของคุณด้วยนโยบายการดำเนินการบายพาสสามารถแก้ไขข้อผิดพลาด “ การเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้ ” ได้อย่างปลอดภัย
เปิดใช้ PowerShell และเรียกใช้คำสั่งด้านล่างเพื่อรันสคริปต์ด้วยนโยบายการดำเนินการบายพาส ตรวจสอบให้แน่ใจว่าคุณป้อนเส้นทางที่ถูกต้องของไฟล์สคริปต์ก่อนที่จะรันคำสั่ง
powershell.exe -ExecutionPolicy Bypass -File "C:\Script_Path\yourscript.ps1"
คัดลอก
powershell.exe
-
ExecutionPolicy Bypass
-
File
"C:\Script_Path\yourscript.ps1"
คุณยังสามารถตั้งค่าโหมดบายพาสสำหรับเซสชัน PowerShell ปัจจุบันได้โดยใช้คำสั่งด้านล่างเท่านั้น การเปลี่ยนแปลงนี้จะหายไปเมื่อคุณปิดหน้าต่าง PowerShell
Set-ExecutionPolicy Bypass -Scope Process
คัดลอก
Set-ExecutionPolicy
Bypass
-
Scope
Process
ตั้งค่านโยบายการดำเนินการ PowerShell เป็นบายพาส
ไม่จำกัด
นี่เป็นนโยบายการดำเนินการเริ่มต้นสำหรับคอมพิวเตอร์ที่ไม่ใช่ Windows และไม่สามารถเปลี่ยนแปลงได้ มีการใช้กันน้อยกว่าเนื่องจากไม่ปลอดภัย อนุญาตให้สคริปต์ที่ไม่ได้ลงนามดำเนินการได้ เพิ่มความเสี่ยงในการเรียกใช้สคริปต์ที่เป็นอันตราย
เรียกใช้คำสั่งด้านล่างเพื่อตั้งค่านโยบายการดำเนินการเป็นไม่จำกัด เมื่อถูกถามว่า " คุณต้องการเปลี่ยนนโยบายการดำเนินการหรือไม่ ให้พิมพ์ A (ใช่เป็นทั้งหมด) แล้วกดปุ่ม Enter เพื่อแก้ไขนโยบายการดำเนินการได้สำเร็จ
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
คัดลอก
Set-ExecutionPolicy
-
ExecutionPolicy Unrestricted
ในภาพด้านล่าง เราจะเห็นว่านโยบายการดำเนินการถูกตั้งค่าเป็นไม่จำกัด ตอนนี้ควรอนุญาตให้ผู้ใช้สามารถรันสคริปต์และแก้ไขข้อผิดพลาด การเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้
ตั้งค่านโยบายการดำเนินการ PowerShell เป็นไม่จำกัด
ตรวจสอบนโยบายการดำเนินการ PowerShell ในรีจิสทรี
คุณสามารถตรวจสอบการกำหนดค่านโยบายการดำเนินการ PowerShell ผ่าน Windows Registry ได้โดยใช้ขั้นตอนต่อไปนี้:
-
บนพีซี Windows ของคุณ คลิกขวาที่ Start เลือก Run พิมพ์ regedit แล้วกดปุ่ม Enter เพื่อเปิดตัวแก้ไขรีจิสทรี
-
ไปที่เส้นทางรีจิสทรีด้านล่างและค้นหาค่าคีย์ ExecutionPolicy เพื่อกำหนดนโยบายการดำเนินการปัจจุบัน
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
คัดลอก
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\
1
\ShellIds\Microsoft.PowerShell
ตรวจสอบนโยบายการดำเนินการ PowerShell ใน Windows Registry
ความคิดสุดท้าย
ข้อความข้อผิดพลาด “PowerShell: การเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้” อาจดูน่ากลัว แต่ในกรณีส่วนใหญ่ PowerShell จะทำงานเพื่อเป็นการป้องกันไว้ก่อนเท่านั้น การแก้ไขมักจะตรงไปตรงมา: ตรวจสอบนโยบายการดำเนินการของคุณก่อน และตั้งค่าเป็น RemoteSigned สำหรับการใช้งานในแต่ละวัน ใช้บายพาสเมื่อเหมาะสมเท่านั้น เมื่อคุณเข้าใจวิธีการทำงานของนโยบายการดำเนินการแล้ว ข้อผิดพลาดนี้จะจัดการได้ง่ายขึ้นมาก
นั่นคือทั้งหมดสำหรับคำแนะนำนี้ แบ่งปันคำถามหรือข้อเสนอแนะในความคิดเห็นด้านล่างได้เลย!
ฉันต้องการการสนับสนุนจากคุณ
เฮ้ นี่ ปราจวัล ฉันหวังว่าคุณจะพบว่าไซต์นี้มีประโยชน์ ในฐานะบล็อกเกอร์อิสระ เนื้อหาที่ฉันเผยแพร่ต้องใช้ความพยายามและความทุ่มเทอย่างมาก 💻 การเพิ่มขึ้นของตัวบล็อกโฆษณาและ AI #️⃣ ส่งผลให้ผู้เผยแพร่โฆษณาออนไลน์สูญเสียรายได้อย่างมากในช่วงทศวรรษที่ผ่านมา ⏰ หากคุณเห็นคุณค่าของงานอิสระเช่นนี้ โปรดพิจารณามีส่วนร่วมเพื่อช่วยให้ฉันทำสิ่งที่ฉันรักต่อไป ขอบคุณค่ะ ❤️🙌
สนับสนุน💖
ยังต้องการความช่วยเหลือใช่ไหม
หากคุณต้องการความช่วยเหลือเพิ่มเติมในบทความข้างต้น หรือต้องการหารือเกี่ยวกับปัญหาทางเทคนิคอื่นๆ โปรดดูตัวเลือกบางส่วนเหล่านี้
ฟอรั่ม
โทรเลข
ติดต่อฉัน
*️⃣ ลิงค์ที่มา:
เรียกใช้สคริปต์ PowerShell, Intune หรือนโยบายกลุ่มเพื่อกำหนดค่านโยบายการดำเนินการ PS,
,
Execution Policy ,
สนับสนุน💖
,
ฟอรั่ม
, โทรเลข ,
ติดต่อฉัน
,