การแก้ไขปัญหา PowerShell: ทำไมสคริปต์ของคุณไม่สามารถรันได้และจะแก้ไขอย่างไร

หากคุณเคยพยายามรันสคริปต์ PowerShell แต่ต้องเผชิญกับข้อความที่น่าผิดหวังที่บอกว่า “ไม่สามารถโหลดได้เพราะการดำเนินการของสคริปต์ถูกปิดใช้งานในระบบนี้” คุณไม่ได้อยู่คนเดียว ปัญหานี้สามารถทำให้ผู้ใช้หลายคนตกใจโดยเฉพาะผู้ที่กำลังเริ่มปรับตัวกับการเขียนสคริปต์ใน PowerShell ในโพสต์บล็อกนี้ เราจะสำรวจสาเหตุที่อยู่เบื้องหลังข้อผิดพลาดนี้และให้ขั้นตอนที่จำเป็นในการแก้ไขปัญหานี้เพื่อให้คุณสามารถรันสคริปต์ของคุณได้อย่างง่ายดาย

เข้าใจปัญหา

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

ข้อผิดพลาดเฉพาะที่คุณได้รับเน้นย้ำว่าความปลอดภัยในการดำเนินการถูกตั้งค่าให้ไม่อนุญาตให้รันสคริปต์ ซึ่งเป็นอุปสรรคเมื่อคุณพยายามรันสคริปต์ PowerShell ของคุณ

วิธีแก้ไข: การเปลี่ยนนโยบายการดำเนินการ

เพื่อแก้ไขปัญหานี้ คุณสามารถเปลี่ยนนโยบายการดำเนินการเพื่ออนุญาตให้รันสคริปต์ที่ไม่ได้รับการเซ็นชื่อซึ่งอยู่ในเครื่องของคุณในท้องถิ่น ทำตามขั้นตอนง่าย ๆ ด้านล่างเพื่ออัปเดตการตั้งค่า PowerShell ของคุณ

ขั้นตอนที่ 1: เปิด PowerShell ในฐานะผู้ดูแลระบบ

ก่อนที่คุณจะเปลี่ยนแปลงใด ๆ คุณต้องเปิด PowerShell ด้วยสิทธิ์ของผู้ดูแลระบบ โดยทำตามขั้นตอนนี้:

  1. ค้นหา PowerShell ในเมนูเริ่มของ Windows
  2. คลิกขวาที่ “Windows PowerShell” และเลือก “รันในฐานะผู้ดูแลระบบ”

ขั้นตอนที่ 2: ตรวจสอบนโยบายการดำเนินการปัจจุบัน

น่าจะดีเสมอที่จะรู้ว่านโยบายการดำเนินการปัจจุบันของคุณคืออะไร คุณสามารถตรวจสอบโดยการพิมพ์คำสั่งต่อไปนี้ในหน้าต่าง PowerShell ที่มีระดับสูง:

Get-ExecutionPolicy

คำสั่งนี้จะแสดงนโยบายปัจจุบันที่ตั้งไว้สำหรับสภาพแวดล้อม PowerShell ของคุณ

ขั้นตอนที่ 3: อัปเดตนโยบายการดำเนินการ

เพื่ออนุญาตให้รันสคริปต์ที่ไม่ได้รับการเซ็นชื่อในเครื่องของคุณ คุณสามารถเปลี่ยนนโยบายการดำเนินการเป็น RemoteSigned การตั้งค่านี้จะอนุญาตให้สคริปต์ที่สร้างขึ้นในท้องถิ่นสามารถรันได้โดยไม่ต้องมีลายเซ็น เพื่อทำเช่นนี้ ให้พิมพ์คำสั่งต่อไปนี้:

Set-ExecutionPolicy RemoteSigned

หลังจากที่คุณได้ดำเนินการตามคำสั่งนี้ PowerShell อาจขอให้คุณยืนยันการเปลี่ยนแปลง พิมพ์ Y เพื่อยืนยัน และกด Enter

ขั้นตอนที่ 4: รันสคริปต์ของคุณอีกครั้ง

ตอนนี้คุณได้ปรับนโยบายการดำเนินการแล้ว ลองรันสคริปต์ PowerShell ของคุณอีกครั้ง สคริปต์ของคุณควรจะรันได้โดยไม่มีข้อผิดพลาดก่อนหน้า

ข้อควรพิจารณาที่สำคัญ

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

ตัวอย่าง:

Set-ExecutionPolicy RemoteSigned -Scope Process

ด้วยวิธีนี้ การเปลี่ยนแปลงจะไม่ส่งผลกระทบต่อผู้ใช้หรือเซสชันคนอื่นในระบบ

สรุป

การรันสคริปต์ PowerShell สามารถเพิ่มประสิทธิภาพการทำงานของคุณได้อย่างมาก แต่การนำทางผ่านการตั้งค่าความปลอดภัยบางครั้งอาจเป็นเรื่องท้าทาย โดยการเข้าใจนโยบายการดำเนินการและรู้วิธีปรับเปลี่ยนมัน คุณสามารถเอาชนะอุปสรรคทั่วไปนี้ได้ อย่าลืมที่จะมีความระมัดระวังเมื่อรันสคริปต์และคำนึงถึงความปลอดภัยของระบบของคุณเสมอ

ด้วยขั้นตอนง่าย ๆ เหล่านี้ คุณจะพร้อมที่จะแก้ไขข้อผิดพลาด “การดำเนินการของสคริปต์ถูกปิดใช้งาน” และกลับไปยังการทำงานอัตโนมัติของงานของคุณได้อย่างมีประสิทธิภาพ ขอให้คุณสนุกกับการเขียนสคริปต์!