- ในการเปลี่ยนนโยบายการเรียกใช้งาน PowerShell ให้เปิดPowerShell (ในโหมดผู้ดูแลระบบ)แล้วเรียกใช้ คำสั่ง “Set-ExecutionPolicy RemoteSigned”เพื่อตั้งค่าให้สามารถเรียกใช้สคริปต์ได้ คำ สั่ง “Set-ExecutionPolicy AllSigned”จะอนุญาตสคริปต์จากผู้เผยแพร่ที่เชื่อถือได้ หรือ คำสั่ง “Set-ExecutionPolicy Unrestricted”จะอนุญาตสคริปต์โดยไม่มีข้อจำกัดใดๆ
- นอกจากนี้ คุณยังสามารถใช้คำสั่ง“Set-ExecutionPolicy Restricted”เพื่อยกเลิกการเปลี่ยนแปลงและป้องกันไม่ให้สคริปต์ทำงานได้
- สุดท้ายนี้ คุณสามารถอนุญาตสคริปต์ PowerShell ได้โดยการเปลี่ยนนโยบายจากแอปการตั้งค่าของ Windows 11 และ 10
ในWindows 11 (หรือ 10) โดยค่าเริ่มต้น เมื่อคุณพยายามเรียกใช้สคริปต์ใน PowerShell มันจะล้มเหลวพร้อม ข้อความแสดงข้อผิดพลาด “ไม่สามารถโหลดได้เนื่องจากการเรียกใช้สคริปต์ถูกปิดใช้งานในระบบนี้”ทั้งนี้เนื่องจาก PowerShell มีคุณสมบัติความปลอดภัย “นโยบายการดำเนินการ” ที่ควบคุมวิธีการโหลดไฟล์การกำหนดค่าและเรียกใช้สคริปต์เพื่อป้องกันไม่ให้โค้ดที่เป็นอันตรายทำงานบนระบบ
หากคุณจำเป็นต้องเรียกใช้สคริปต์บน Windows 11 (หรือ 10) คุณสามารถเปลี่ยนนโยบายการเรียกใช้สำหรับคอมพิวเตอร์เครื่องนั้น ผู้ใช้ปัจจุบัน หรือเซสชันได้
เมื่อคุณตั้งค่านโยบายการเรียกใช้ PowerShell สำหรับคอมพิวเตอร์เครื่องโลคอลและผู้ใช้ปัจจุบัน ข้อมูลจะถูกจัดเก็บไว้ในรีจิสทรี หากคุณกำหนดค่านโยบายสำหรับเซสชันใดเซสชันหนึ่งโดยเฉพาะ ข้อมูลนั้นจะถูกเก็บไว้ในหน่วยความจำและจะหายไปเมื่อคุณปิดเซสชันนั้น
ตามข้อมูลจากMicrosoftนโยบายการดำเนินการไม่ได้จำกัดการกระทำใดๆ คุณสามารถข้ามผ่านนโยบายได้โดยการพิมพ์สคริปต์ในอินเทอร์เฟซบรรทัดคำสั่ง (CLI) นโยบายนี้ถูกออกแบบมาเพื่อช่วยผู้ใช้ป้องกันการเรียกใช้สคริปต์ที่เป็นอันตราย
ในคู่มือ นี้ ผมจะสอนวิธีการเปลี่ยนนโยบายการดำเนินการเพื่อให้สามารถรันสคริปต์ใน PowerShell บน Windows 11 หรือ 10 ได้สำเร็จ
เปลี่ยนนโยบายการดำเนินการบน Windows 11 จาก PowerShell
หากต้องการเปลี่ยนนโยบายการเรียกใช้งาน PowerShell บน Windows 11 (หรือ 10) ให้ทำตามขั้นตอนต่อไปนี้:
-
เปิดเมนู Startบน Windows 11
-
ค้นหาPowerShellคลิกขวาที่ผลการค้นหาอันดับแรก แล้วเลือกตัวเลือก " เรียกใช้ในฐานะผู้ดูแลระบบ "
-
พิมพ์คำสั่งต่อไปนี้เพื่อยืนยันนโยบายการดำเนินการปัจจุบัน แล้วกดEnter :
รับนโยบายการดำเนินการ
-
(ไม่บังคับ) พิมพ์คำสั่งต่อไปนี้เพื่อดูนโยบายการดำเนินการ PowerShell ที่มีผลบังคับใช้ แล้วกดEnter :
รับนโยบายการดำเนินการ - รายการ
-
พิมพ์คำสั่งต่อไปนี้เพื่อเปลี่ยนนโยบายการเรียกใช้ PowerShell เพื่ออนุญาตให้สคริปต์ทำงานบน Windows 11 แล้วกดEnter :
ตั้งค่านโยบายการดำเนินการที่ลงนามระยะไกล
-
(ไม่บังคับ) พิมพ์คำสั่งต่อไปนี้เพื่อเปลี่ยนนโยบายการเรียกใช้งานเพื่อป้องกันไม่ให้สคริปต์ทำงาน แล้วกดEnter :
ตั้งค่านโยบายการดำเนินการแบบจำกัด

เมื่อคุณทำตามขั้นตอนเสร็จแล้ว คุณสามารถเรียกใช้สคริปต์อีกครั้ง และคราวนี้มันควรจะทำงานได้สำเร็จบน Windows 11 หากคุณไม่ต้องการอนุญาตให้สคริปต์ทำงานบนคอมพิวเตอร์ของคุณอีกต่อไป คุณสามารถเรียกใช้คำสั่งเสริมที่กล่าวถึงในขั้นตอนต่างๆ ได้
หากคุณต้องการเปลี่ยนนโยบายการเรียกใช้สคริปต์เพื่อเรียกใช้สำหรับผู้ใช้ปัจจุบันหรือคอมพิวเตอร์เครื่องโลคอล คุณต้องใช้ตัวเลือก "ขอบเขต" ดังนี้: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserหรือSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
ใน Windows 11 คุณสามารถเลือกนโยบายการเรียกใช้งานที่แตกต่างกันได้สี่แบบ เพื่ออนุญาตหรือปฏิเสธสคริปต์:
- จำกัดการทำงาน —จะบล็อกไม่ให้ไฟล์สคริปต์ใดๆ ทำงานได้
- RemoteSigned —อนุญาตให้สร้างสคริปต์บนคอมพิวเตอร์ได้ อย่างไรก็ตาม สคริปต์ที่สร้างบนอุปกรณ์อื่นจะไม่สามารถทำงานได้หากไม่มีลายเซ็นที่เชื่อถือได้
- AllSigned —อนุญาตให้เรียกใช้สคริปต์ทั้งหมดได้ แต่เฉพาะในกรณีที่ผู้เผยแพร่ที่เชื่อถือได้ได้ใส่ลายเซ็นไว้ด้วยเท่านั้น
- ไม่จำกัด —สามารถเรียกใช้สคริปต์ใดก็ได้โดยไม่มีข้อจำกัด
คุณไม่จำเป็นต้องเปลี่ยนนโยบายการดำเนินการหากคุณต้องการเรียกใช้สคริปต์ที่ไม่มีพารามิเตอร์ที่จำเป็นและไม่ส่งคืนผลลัพธ์ใดๆ แต่คุณสามารถใช้PowerShell.exe -File "FILENAME" -ExecutionPolicy Bypassคำสั่งเพื่อข้ามข้อจำกัดเหล่านั้นได้
เปลี่ยนนโยบายการดำเนินการบน Windows 11 จากเมนูการตั้งค่า
ใน Windows 11 และ 10 คุณยังสามารถอนุญาตให้สคริปต์ทำงานใน PowerShell ได้โดยการเปลี่ยนการตั้งค่าของคอนโซลคำสั่งจากแอปการตั้งค่า
จาก Windows 11
หากต้องการเปลี่ยนนโยบายการเรียกใช้ PowerShell จากแอปการตั้งค่า ให้ทำตามขั้นตอนต่อไปนี้:
-
เปิดการตั้งค่า
-
คลิกที่ระบบ
-
คลิกที่หน้า " สำหรับนักพัฒนา "
-
คลิกที่การตั้งค่าPowerShell
-
เปิดใช้งานสวิตช์“เปลี่ยนนโยบายการดำเนินการเพื่ออนุญาตสคริปต์ PowerShell ในเครื่อง […]”

หากคุณไม่ต้องการใช้คุณสมบัตินี้อีกต่อไป คุณสามารถบล็อกสคริปต์ได้โดยใช้ขั้นตอนเดียวกัน แต่ในขั้นตอนที่ 5ให้ปิดสวิตช์“เปลี่ยนนโยบายการดำเนินการเพื่ออนุญาตสคริปต์ PowerShell ในเครื่อง […]”
จาก Windows 10
หากต้องการเปลี่ยนนโยบายการเรียกใช้ PowerShell จากแอปการตั้งค่า ให้ทำตามขั้นตอนต่อไปนี้:
-
เปิดการตั้งค่า
-
คลิกที่การอัปเดตและความปลอดภัย
-
คลิกที่หน้า " สำหรับนักพัฒนา "
-
เลือก ตัวเลือก “เปลี่ยนนโยบายการดำเนินการเพื่ออนุญาตสคริปต์ PowerShell ในเครื่อง […]”สำหรับการตั้งค่า PowerShell

-
คลิก ปุ่ม " สมัคร "
หากคุณไม่ต้องการใช้ฟีเจอร์นี้อีกต่อไป คุณสามารถบล็อกสคริปต์ได้โดยใช้ขั้นตอนเดียวกัน แต่ในขั้นตอนที่ 4ให้ล้างตัว เลือก “เปลี่ยนนโยบายการดำเนินการเพื่ออนุญาตสคริปต์ PowerShell ในเครื่อง […]”แล้วจึงบันทึกการเปลี่ยนแปลง
หลังจากทำตามขั้นตอนเสร็จสิ้น การตั้งค่าจะกำหนดนโยบายการเรียกใช้งานสำหรับ PowerShell เป็น “RemoteSigned” นโยบายนี้จะอนุญาตให้คุณเรียกใช้สคริปต์โดยไม่ต้องลงชื่อ แต่จะต้องลงชื่อสำหรับสคริปต์ระยะไกล
เปลี่ยนนโยบายการดำเนินการเพื่อให้สามารถอนุญาตสคริปต์ที่ไม่ได้ลงลายเซ็นดิจิทัลได้
หากคุณมีสคริปต์ PowerShell ที่สร้างขึ้นบนคอมพิวเตอร์เครื่องอื่นหรือดาวน์โหลดมาจากอินเทอร์เน็ต หากคุณพยายามเรียกใช้สคริปต์ คุณอาจได้รับ ข้อความแสดงข้อผิดพลาด “ไม่สามารถโหลดไฟล์ […].ps1 ได้ ไฟล์ […].ps1 ไม่ได้ลงนามแบบดิจิทัล คุณไม่สามารถเรียกใช้สคริปต์นี้บนระบบปัจจุบันได้”หรือ“สคริปต์จะไม่ทำงานบนระบบ”อย่างไรก็ตาม ตราบใดที่คุณรู้ว่าสคริปต์นั้นปลอดภัยและคุณดาวน์โหลดมาจากแหล่งที่เชื่อถือได้ คุณสามารถเปลี่ยน นโยบายขอบเขต “กระบวนการ”เพื่อเรียกใช้สคริปต์ได้สำเร็จ

ข้อผิดพลาด "สคริปต์ PowerShell ไม่ได้ลงลายเซ็นดิจิทัล" / ภาพ: Mauro Huculak
หากต้องการเปลี่ยนนโยบายการเรียกใช้งาน PowerShell เพื่อเรียกใช้สคริปต์ “.ps1” ที่ไม่ได้ลงลายเซ็นดิจิทัล ให้ทำตามขั้นตอนต่อไปนี้:
-
เปิดStart
-
ค้นหาPowerShellคลิกขวาที่ผลการค้นหาอันดับแรก แล้วเลือกตัวเลือก " เรียกใช้ในฐานะผู้ดูแลระบบ "
-
พิมพ์คำสั่งต่อไปนี้เพื่อเปลี่ยนไปอนุญาตให้ใช้สคริปต์ PowerShell ที่มีลายเซ็นดิจิทัล แล้วกดEnter :
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

เมื่อคุณทำตามขั้นตอนเสร็จแล้ว คุณสามารถเรียกใช้ไฟล์สคริปต์โดยใช้.\Your-PowerShell-Script.ps1คำสั่งในระหว่างเซสชันปัจจุบันได้ หลังจากปิดเซสชัน PowerShell แล้ว นโยบายการเรียกใช้จะกลับไปเป็นค่าเดิมเพื่อป้องกันไม่ให้สคริปต์อื่นทำงาน
หากคุณต้องเรียกใช้ไฟล์สคริปต์อื่น คุณสามารถทำตามขั้นตอนที่ระบุไว้ข้างต้นซ้ำได้
อัปเดต 10 ตุลาคม 2567:คู่มือนี้ได้รับการปรับปรุงเพื่อให้มีความถูกต้องและสะท้อนถึงการเปลี่ยนแปลงในกระบวนการ