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 -Scope

เพื่อลบนโยบายการดำเนินการ

เพื่อลบนโยบายการดำเนินการที่กำหนดไว้สำหรับขอบเขตเฉพาะ คุณสามารถใช้ cmdlet Set-ExecutionPolicy กับพารามิเตอร์ -Scope และระบุ Undefined เป็นนโยบายการดำเนินการ การดำเนินการนี้จะลบนโยบายการดำเนินการใดๆ ที่ตั้งไว้สำหรับขอบเขตที่ระบุ

เช่น หากต้องการลบนโยบายการดำเนินการสำหรับผู้ใช้คอมพิวเตอร์ในระบบทั้งหมด ให้พิมพ์คำสั่งดังนี้:

Set-ExecutionPolicy-ExecutionPolicy Undefined-Scope LocalMachine

โปรดทราบว่าเมื่อคุณเปลี่ยนนโยบายการดำเนินการสำหรับขอบเขต LocalMachine หรือ CurrentUser การเปลี่ยนแปลงยังคงเก็บไว้ในรีจิสทรีและมีผลจนกว่าคุณจะเปลี่ยนแปลงอีกครั้ง อย่างไรก็ตาม หากคุณตั้งค่านโยบายการดำเนินการสำหรับขอบเขตกระบวนการ ดังนั้นจึงยังไม่ได้บันทึกในรีจิสทรีและจะอยู่จนกว่ากระบวนการปัจจุบันและกระบวนการย่อยจะปิด

อ่าน-วิธีเปิดหรือปิดการเปลี่ยนพื้นหลังเดสก์ท็อปใน Windows 11

By Maisy Hall

ฉันทำงานเป็นนักเขียนอิสระ ฉันยังเป็นวีแก้นและนักอนุรักษ์สิ่งแวดล้อมด้วย พอมีเวลาก็ตั้งใจทำสมาธิ