วิธีเปลี่ยนนโยบายการดำเนินการของ PowerShell ใน Windows 10
ตามค่าเริ่มต้น PowerShell จะจำกัดการเรียกใช้สคริปต์บนพีซีของผู้ใช้ปลายทาง การตั้งค่านี้ดีจากมุมมองด้านความปลอดภัย อย่างไรก็ตาม หากคุณใช้สคริปต์จำนวนมากที่คุณดาวน์โหลดหรือเขียนโค้ดด้วยตัวเอง อาจเป็นเรื่องที่น่ารำคาญมาก ในบทความนี้ เราจะทบทวนวิธีการเปลี่ยนนโยบายการดำเนินการเริ่มต้นสำหรับสคริปต์ PowerShell ใน Windows 10
Windows PowerShell มีนโยบายการดำเนินการที่แตกต่างกันสี่แบบ:
- จำกัด - ไม่สามารถเรียกใช้สคริปต์ได้ Windows PowerShell สามารถใช้ได้ในโหมดโต้ตอบเท่านั้น
- AllSigned - เฉพาะสคริปต์ที่ลงนามโดยผู้เผยแพร่ที่เชื่อถือได้เท่านั้นที่สามารถเรียกใช้ได้
- RemoteSigned - สคริปต์ที่ดาวน์โหลดต้องลงนามโดยผู้เผยแพร่ที่เชื่อถือได้ก่อนจึงจะสามารถเรียกใช้ได้
- ไม่ จำกัด - ไม่มีข้อ จำกัด; สคริปต์ Windows PowerShell ทั้งหมดสามารถเรียกใช้ได้
- ไม่ได้กำหนด - ไม่ได้กำหนดนโยบายการดำเนินการ
หากไม่ได้ตั้งค่านโยบายการดำเนินการและไม่ได้กำหนดค่า จะแสดงเป็น "ไม่ได้กำหนด" นี่คือวิธีที่คุณสามารถดูค่าปัจจุบันได้
วิธีดูนโยบายการดำเนินการของ PowerShell
- เปิด PowerShell.
- พิมพ์หรือคัดลอกและวางคำสั่งต่อไปนี้แล้วกดปุ่ม Enter:
รับการดำเนินการนโยบาย -List
คำสั่งจะแสดงนโยบายการดำเนินการทั้งหมด อย่างที่คุณเห็น มีขอบเขตจำนวนหนึ่งที่สามารถกำหนดนโยบายการดำเนินการได้ สามารถตั้งค่าได้ทั่วโลกสำหรับผู้ใช้ทั้งหมด สำหรับผู้ใช้ปัจจุบันเท่านั้น หรือสำหรับกระบวนการปัจจุบัน นโยบายกระบวนการปัจจุบันมีความสำคัญเหนือการตั้งค่าของผู้ใช้ปัจจุบัน นโยบายผู้ใช้ปัจจุบันจะแทนที่ตัวเลือกส่วนกลาง เก็บไว้ในใจ ตอนนี้ มาดูวิธีการเปลี่ยนนโยบายการเรียกใช้สคริปต์สำหรับ PowerShell
เปลี่ยนนโยบายการดำเนินการของ PowerShell สำหรับกระบวนการ
- เปิด พร้อมรับคำสั่ง หรือ PowerShell
- เปิดไฟล์ powershell.exe ด้วยอาร์กิวเมนต์ -ExecutionPolicy Unrestricted ตัวอย่างเช่น,
Powershell.exe -ExecutionPolicy Unrestricted -ไฟล์ c:\data\test.ps1
สิ่งนี้จะเริ่มต้นสคริปต์ของคุณโดยใช้นโยบายการดำเนินการที่ไม่จำกัด แทนที่จะใช้สคริปต์ คุณสามารถเริ่ม cmdlet หรือสิ่งที่คุณต้องการได้ คุณสามารถใช้นโยบายอื่นใดที่กล่าวถึงข้างต้นแทน "ไม่จำกัด"
เคล็ดลับ: สำหรับคอนโซล PowerShell ที่เปิดอยู่ คุณสามารถเปลี่ยนนโยบายการดำเนินการได้โดยใช้คำสั่ง:
Set-ExecutionPolicy ไม่ จำกัด - กระบวนการขอบเขต
จะยังคงใช้งานได้จนกว่าคุณจะปิดหน้าต่าง PowerShell ปัจจุบัน
เปลี่ยนนโยบายการดำเนินการ PowerShell สำหรับผู้ใช้ปัจจุบัน
- เปิด PowerShell
- พิมพ์หรือคัดลอกและวางคำสั่งต่อไปนี้แล้วกดปุ่ม Enter:
Set-ExecutionPolicy ไม่ จำกัด - ขอบเขต CurrentUser
Set-ExecutionPolicy ไม่ จำกัด -Scope CurrentUser -Force
เมื่อกำหนดนโยบายการดำเนินการสำหรับผู้ใช้ปัจจุบัน จะแทนที่ขอบเขต "LocalMachine" อีกครั้งสำหรับกระบวนการ คุณสามารถแทนที่ได้สำหรับอินสแตนซ์ PowerShell ปัจจุบันตามที่อธิบายไว้ข้างต้น
เปลี่ยนนโยบายการดำเนินการ PowerShell ส่วนกลาง
นโยบายการดำเนินการนี้ใช้กับคอมพิวเตอร์ ซึ่งหมายความว่ามีผลกับบัญชีผู้ใช้ที่ไม่มีนโยบายการดำเนินการเป็นรายบุคคล ด้วยการตั้งค่าเริ่มต้น จะมีผลกับบัญชีผู้ใช้ทั้งหมด
เมื่อต้องการเปลี่ยนนโยบายการดำเนินการของ PowerShell ใน Windows 10ให้ทำดังต่อไปนี้
- เปิด PowerShell ในฐานะผู้ดูแลระบบ.
- ดำเนินการคำสั่งต่อไปนี้:
Set-ExecutionPolicy ไม่ จำกัด - ขอบเขต LocalMachine
คุณทำเสร็จแล้ว
เปลี่ยนนโยบายการดำเนินการของ PowerShell ด้วยการปรับแต่งรีจิสทรี
เป็นไปได้ที่จะเปลี่ยนนโยบายการดำเนินการด้วยการปรับแต่ง Registry สำหรับทั้งผู้ใช้ปัจจุบันและคอมพิวเตอร์ นี่คือวิธีที่สามารถทำได้
- เปิด ตัวแก้ไขรีจิสทรี.
- หากต้องการเปลี่ยนนโยบายการดำเนินการสำหรับผู้ใช้ปัจจุบัน ให้ไปที่
HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft PowerShell
- ตั้งค่าสตริง ExecutionPolicy เป็นค่าใดค่าหนึ่งต่อไปนี้: Restricted, AllSigned, RemoteSigned, Unrestricted, Undefined
- หากต้องการเปลี่ยนนโยบายการดำเนินการสำหรับขอบเขต LocalMachine ให้ไปที่
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft. PowerShell
- ตั้งค่าสตริง ExecutionPolicy เป็นค่าใดค่าหนึ่งต่อไปนี้: Restricted, AllSigned, RemoteSigned, Unrestricted, Undefined
เคล็ดลับ: ดูวิธีไปที่คีย์รีจิสทรี ด้วยคลิกเดียว. นอกจากนี้คุณยังสามารถ สลับระหว่าง HKCU และ HKLM ใน Registry Editor ของ Windows 10 ได้อย่างรวดเร็ว.
แค่นั้นแหละ.