PowerShell มีนโยบายการดำเนินการที่ทำหน้าที่เป็นมาตรการความปลอดภัยในการควบคุมเงื่อนไขสำหรับการโหลดไฟล์การกำหนดค่าและการเรียกใช้สคริปต์ ซึ่งจะช่วยป้องกันไม่ให้สคริปต์ที่เป็นอันตรายทำงาน นโยบายการดำเนินการกำหนดว่าคุณสามารถโหลดไฟล์การกำหนดค่า เช่น โปรไฟล์ PowerShell ของคุณได้หรือไม่ และถ้าสคริปต์จำเป็นต้องเซ็นชื่อแบบดิจิทัลก่อนที่จะทำงาน คุณสามารถกำหนดนโยบายการดำเนินการสำหรับระบบคอมพิวเตอร์เฉพาะที่ ผู้ใช้ปัจจุบัน หรือเซสชันเฉพาะบนพีซีที่ใช้ Windows ได้
สารบัญ
ดังนั้น จะเกิดอะไรขึ้นเมื่อคุณพยายามเรียกใช้ สคริปต์บน PowerShell หรือไม่
เมื่อคุณพยายามเรียกใช้สคริปต์บน PowerShell นโยบายการดำเนินการที่ยังคงตั้งค่าไว้ในปัจจุบันจะกำหนดว่าสคริปต์สามารถทำงานได้หรือไม่ หากสคริปต์ตรงตามข้อกำหนดของนโยบายการดำเนินการปัจจุบัน สคริปต์จะดำเนินการ หากไม่เป็นไปตามความต้องการของนโยบายการดำเนินการปัจจุบัน ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้นโดยระบุว่าสคริปต์การเรียกใช้ถูกปิดใช้งานในระบบนี้
ตัวอย่างเช่น หากนโยบายการดำเนินการปัจจุบันของคุณอนุญาตให้เรียกใช้สคริปต์ที่ลงนามเท่านั้น และคุณ พยายามเรียกใช้สคริปต์ที่ไม่ได้ลงชื่อ คุณจะได้รับข้อความแสดงข้อผิดพลาดที่ระบุว่าสคริปต์ที่เรียกใช้ยังคง”ปิดใช้งาน”ในระบบนี้
ดังนั้น หากคุณต้องการเรียกใช้สคริปต์บน Windows 11 คุณต้องตั้งค่านโยบายการดำเนินการอื่น มีนโยบายการดำเนินการหลายอย่างที่คุณสามารถตั้งค่าให้เรียกใช้สคริปต์ได้ มาเรียนรู้เพิ่มเติมเกี่ยวกับนโยบายการดำเนินการเพื่อให้คุณเข้าใจว่าควรเปลี่ยนเป็นนโยบายใด
อ่าน-ขั้นตอนสำหรับการสำรองและกู้คืนการตั้งค่าด่วนใน Windows 11
การดำเนินการคืออะไร นโยบายและจำนวนนโยบายที่มีอยู่
นโยบายการดำเนินการใน PowerShell เป็นตัวกำหนดว่าคุณสามารถโหลดไฟล์การกำหนดค่าหรือเรียกใช้สคริปต์หรือไม่ และสคริปต์ต้องได้รับการเซ็นชื่อแบบดิจิทัลก่อนที่จะเรียกใช้หรือไม่ ขอบเขตเริ่มต้นสำหรับ Set-ExecutionPolicy cmdlet คือ LocalMachine ซึ่งมีผลกับทุกคนที่ใช้คอมพิวเตอร์
สิ่งสำคัญคือต้องทราบว่านโยบายการดำเนินการไม่ใช่มาตรการรักษาความปลอดภัย สามารถข้ามได้อย่างง่ายดายและมีไว้เพื่อเป็นกฎหลักเพื่อป้องกันคุณจากการละเมิดนโยบายโดยไม่ได้ตั้งใจ กล่าวอีกนัยหนึ่งคือ มีนโยบายการดำเนินการเพื่อช่วยให้คุณหลีกเลี่ยงการเรียกใช้สคริปต์หรือการกำหนดค่าที่อาจเป็นอันตรายต่อระบบของคุณโดยไม่รู้ตัว
สมมติว่าคุณมีสคริปต์ชื่อ “myscript.ps1” ที่คุณต้องการเรียกใช้ บนคอมพิวเตอร์ของคุณ หากนโยบายการดำเนินการกำหนดเป็นแบบจำกัด (ค่าเริ่มต้น) คุณจะไม่สามารถเรียกใช้สคริปต์ได้เลย
หากนโยบายการดำเนินการของคุณระบุเป็น AllSigned คุณจะเรียกใช้สคริปต์ได้เพียงอย่างเดียว หากลงนามโดยผู้เผยแพร่ที่เชื่อถือได้
อ่าน-วิธีดูวินาทีสำหรับนาฬิกา Windows 11 ด้วย
มีนโยบายการดำเนินการของ PowerShell อยู่ 6 นโยบาย เรามาหารือกันในแต่ละนโยบายเพื่อให้คุณได้รับ เข้าใจแต่ละประเภทได้ดีขึ้น
1. นโยบายแบบจำกัด
พีซีที่ใช้ Windows 11 ทุกเครื่องโดยทั่วไปจะกำหนดนโยบายแบบจำกัด ซึ่งเป็นนโยบายที่เข้มงวดที่สุด ไม่อนุญาตให้เรียกใช้สคริปต์ PowerShell ไฟล์การกำหนดค่า หรือไฟล์สคริปต์โมดูล ดังนั้นจึงสามารถดำเนินการได้เฉพาะคำสั่งแต่ละคำสั่งเท่านั้น
2. นโยบายไม่จำกัด
สคริปต์ที่ไม่ได้ลงชื่อสามารถเรียกใช้ตามค่าเริ่มต้นในคอมพิวเตอร์ที่ไม่ใช่ Windows และไม่สามารถแก้ไขนโยบายนี้ได้ มีโอกาสที่สคริปต์อันตรายจะทำงานเป็นผล ก่อนเรียกใช้สคริปต์และไฟล์กำหนดค่าที่ไม่ได้อยู่ในโซนเครือข่ายท้องถิ่น ผู้ใช้จะได้รับการเตือนล่วงหน้า
อ่าน-วิธีดูรายการจุดคืนค่าที่มีใน Windows 11
3. นโยบาย AllSigned
เฉพาะสคริปต์ PowerShell ที่ลงนามแล้วเท่านั้นที่สามารถดำเนินการภายใต้นโยบายการดำเนินการที่ลงนามทั้งหมด ซึ่งรวมถึงสคริปต์เฉพาะที่คุณสร้างขึ้น คุณจะมีตัวเลือกให้เลือกว่าจะเชื่อถือหรือไม่ไว้วางใจผู้เผยแพร่สคริปต์หากไม่ได้จัดประเภทไว้
4. นโยบายการลงนามระยะไกล
สคริปต์สามารถทำงานบนระบบเซิร์ฟเวอร์ Windows ได้ด้วยนโยบายการดำเนินการเริ่มต้น สคริปต์และไฟล์การกำหนดค่าที่ได้รับผ่านทางเว็บจำเป็นต้องมีลายเซ็นดิจิทัลของผู้เผยแพร่ที่น่าเชื่อถือ ลายเซ็นดิจิทัลไม่จำเป็นสำหรับสคริปต์ที่สร้างขึ้นในเครื่องซึ่งไม่ได้ดาวน์โหลดจากอินเทอร์เน็ต หากเลิกบล็อกด้วย “Unblock-File cmdlet” สคริปต์ที่ได้รับจากอินเทอร์เน็ตแต่ยังไม่ได้ลงชื่อยังคงสามารถดำเนินการได้ การเรียกใช้สคริปต์ที่ลงชื่อและไม่ได้ลงนามที่เป็นอันตรายจากแหล่งอื่นที่ไม่ใช่อินเทอร์เน็ตถือเป็นความเสี่ยงที่เกี่ยวข้องกับนโยบายนี้
อ่านเพิ่มเติม-ขณะนี้คุณสามารถเรียกใช้ Windows 11 บน Apple Silicon Mac ได้
5 นโยบายที่ไม่ได้กำหนด
หากขอบเขตปัจจุบันไม่ได้ระบุนโยบายการดำเนินการ และนโยบายการดำเนินการในทุกขอบเขตนั้นไม่ได้กำหนด จากนั้นนโยบายการดำเนินการที่มีผลบังคับใช้จะจำกัดสำหรับไคลเอนต์ Windows และ RemoteSigned สำหรับ Windows Server ซึ่งหมายความว่าหากไม่มีการตั้งค่านโยบายการดำเนินการเฉพาะ ไคลเอนต์ Windows จะใช้นโยบายที่มีข้อจำกัดมากที่สุดโดยค่าเริ่มต้น ในขณะที่ Windows Server จะใช้ค่าเริ่มต้นเป็นนโยบายที่มีข้อจำกัดน้อยกว่า ซึ่งยังคงกำหนดให้สคริปต์ที่ดาวน์โหลดจากอินเทอร์เน็ตต้องลงนามโดยผู้เผยแพร่ที่เชื่อถือได้
6. นโยบายบายพาส
อนุญาตให้สคริปต์ทั้งหมดทำงานโดยไม่มีคำเตือนหรือข้อความแจ้งใดๆ นโยบายประเภทนี้ตั้งใจที่จะได้รับประโยชน์ในสถานการณ์เฉพาะที่สคริปต์เป็นส่วนหนึ่งของแอปพลิเคชันขนาดใหญ่ หรือในกรณีที่ PowerShell ใช้เป็นรากฐานสำหรับโปรแกรมพร้อมกับมาตรการรักษาความปลอดภัยที่มีอยู่
ยิ่งไปกว่านั้น เพื่อควบคุมสคริปต์ที่อนุญาตให้ทำงานบนระบบของคุณ นโยบายการดำเนินการสามารถกำหนดได้ในขอบเขตต่างๆ MachinePolicy, UserPolicy, Process, CurrentUser และ LocalMachine เป็นขอบเขตที่มีอยู่
MachinePolicy: ขอบเขตนี้กำหนดโดย Group Policy สำหรับผู้ใช้คอมพิวเตอร์ทั้งหมดUserPolicy: ขอบเขตนี้อธิบายนโยบายกลุ่มสำหรับผู้ใช้ปัจจุบันของพีซีกระบวนการ: ขอบเขตนี้มีผลกับกระบวนการ PowerShell ปัจจุบันเท่านั้นผู้ใช้ปัจจุบัน: ขอบเขตนี้มีผลเฉพาะผู้ใช้ปัจจุบันของ คอมพิวเตอร์LocalMachine: ขอบเขตนี้มีผลกับผู้ใช้คอมพิวเตอร์ทั้งหมด (ตั้งค่าเป็นค่าเริ่มต้นเมื่อกำหนดนโยบายการดำเนินการ)
คุณสามารถระบุขอบเขตเมื่อตั้งค่านโยบายการดำเนินการโดยใช้พารามิเตอร์-Scope ด้วย Set-ExecutionPolicy cmdlet ตัวอย่างเช่น หากต้องการตั้งค่านโยบายการดำเนินการสำหรับผู้ใช้ปัจจุบันเท่านั้น คุณจะต้องใช้:
Set-ExecutionPolicy-Scope CurrentUser-ExecutionPolicy RemoteSigned
ตอนนี้ รู้ทั้งหมดเกี่ยวกับนโยบายการดำเนินการและขอบเขตเฉพาะ มาดูวิธีเปลี่ยนนโยบายการดำเนินการสคริปต์ PowerShell ใน Windows 11
อ่านวิธีดาวน์โหลดแบบอักษรสำหรับทุกภาษาใน Windows 11
เปลี่ยนนโยบายการดำเนินการสคริปต์ PowerShell ใน Windows 11
ทำตามขั้นตอนด้านล่างเพื่อเปลี่ยนนโยบายการดำเนินการ:
หมายเหตุ: หากคุณมี Windows Vista หรือเวอร์ชันใหม่เพิ่มเติม ให้เริ่ม PowerShell ด้วย เรียกใช้ในฐานะผู้ดูแลระบบตัวเลือกสำหรับสิทธิ์ของผู้ดูแลระบบในการเรียกใช้คำสั่ง
Windows PowerShell-เรียกใช้ในฐานะผู้ดูแลระบบ
ขั้นตอนที่ 1: ตรวจสอบนโยบายการดำเนินการปัจจุบันของคุณ
โดยจดคำสั่งต่อไปนี้แล้วกด ป้อน
รับนโยบายการดำเนินการ
ตั้งค่านโยบายการดำเนินการ
ขั้นตอนที่ 2: เปลี่ยนนโยบายการดำเนินการ
หากต้องการเปลี่ยนนโยบาย ให้จดคำสั่งต่อไปนี้ จากนั้นกด Enter
Set-Executi onPolicy RemoteSigned
นโยบาย RemoteSigned
ดังที่คุณเห็นในภาพประกอบด้านบน คุณจะได้รับ การดำเนินการ ประกาศการเปลี่ยนแปลงนโยบายเมื่อคุณกด Enter
ตอนนี้คุณได้ทำตามขั้นตอนเรียบร้อยแล้ว ทำซ้ำสคริปต์อีกครั้งและสคริปต์จะเริ่มทำงานบน windows 11 ของคุณ
สำหรับขอบเขตเฉพาะ:
ในกรณีที่คุณต้องการตั้งค่าสำหรับ คุณสามารถใช้คำสั่งต่อไปนี้และกด Enter:
Set-ExecutionPolicy-ExecutionPolicy
เพื่อลบนโยบายการดำเนินการ
เพื่อลบนโยบายการดำเนินการที่กำหนดไว้สำหรับขอบเขตเฉพาะ คุณสามารถใช้ cmdlet Set-ExecutionPolicy กับพารามิเตอร์ -Scope และระบุ Undefined เป็นนโยบายการดำเนินการ การดำเนินการนี้จะลบนโยบายการดำเนินการใดๆ ที่ตั้งไว้สำหรับขอบเขตที่ระบุ
เช่น หากต้องการลบนโยบายการดำเนินการสำหรับผู้ใช้คอมพิวเตอร์ในระบบทั้งหมด ให้พิมพ์คำสั่งดังนี้:
Set-ExecutionPolicy-ExecutionPolicy Undefined-Scope LocalMachine
โปรดทราบว่าเมื่อคุณเปลี่ยนนโยบายการดำเนินการสำหรับขอบเขต LocalMachine หรือ CurrentUser การเปลี่ยนแปลงยังคงเก็บไว้ในรีจิสทรีและมีผลจนกว่าคุณจะเปลี่ยนแปลงอีกครั้ง อย่างไรก็ตาม หากคุณตั้งค่านโยบายการดำเนินการสำหรับขอบเขตกระบวนการ ดังนั้นจึงยังไม่ได้บันทึกในรีจิสทรีและจะอยู่จนกว่ากระบวนการปัจจุบันและกระบวนการย่อยจะปิด
อ่าน-วิธีเปิดหรือปิดการเปลี่ยนพื้นหลังเดสก์ท็อปใน Windows 11