การแก้ไขปัญหา PowerShell: ทำไมสคริปต์ของคุณไม่สามารถรันได้และจะแก้ไขอย่างไร
หากคุณเคยพยายามรันสคริปต์ PowerShell แต่ต้องเผชิญกับข้อความที่น่าผิดหวังที่บอกว่า “ไม่สามารถโหลดได้เพราะการดำเนินการของสคริปต์ถูกปิดใช้งานในระบบนี้” คุณไม่ได้อยู่คนเดียว ปัญหานี้สามารถทำให้ผู้ใช้หลายคนตกใจโดยเฉพาะผู้ที่กำลังเริ่มปรับตัวกับการเขียนสคริปต์ใน PowerShell ในโพสต์บล็อกนี้ เราจะสำรวจสาเหตุที่อยู่เบื้องหลังข้อผิดพลาดนี้และให้ขั้นตอนที่จำเป็นในการแก้ไขปัญหานี้เพื่อให้คุณสามารถรันสคริปต์ของคุณได้อย่างง่ายดาย
เข้าใจปัญหา
เมื่อคุณพบข้อความแสดงข้อผิดพลาดที่ระบุว่าการดำเนินการสคริปต์ถูกปิดใช้งาน มันมักจะเกิดจากการตั้งค่าความปลอดภัยใน PowerShell ที่มีอยู่ โดยค่าเริ่มต้น PowerShell จะถูกกำหนดให้ป้องกันการดำเนินการของสคริปต์ที่ไม่ได้รับการเซ็นชื่อจากผู้เผยแพร่ที่เชื่อถือได้ นี่เป็นมาตรการป้องกันเพื่อหลีกเลี่ยงการรันสคริปต์ที่อาจเป็นอันตรายซึ่งอาจทำให้ความปลอดภัยของระบบของคุณถูกคุกคาม
ข้อผิดพลาดเฉพาะที่คุณได้รับเน้นย้ำว่าความปลอดภัยในการดำเนินการถูกตั้งค่าให้ไม่อนุญาตให้รันสคริปต์ ซึ่งเป็นอุปสรรคเมื่อคุณพยายามรันสคริปต์ PowerShell ของคุณ
วิธีแก้ไข: การเปลี่ยนนโยบายการดำเนินการ
เพื่อแก้ไขปัญหานี้ คุณสามารถเปลี่ยนนโยบายการดำเนินการเพื่ออนุญาตให้รันสคริปต์ที่ไม่ได้รับการเซ็นชื่อซึ่งอยู่ในเครื่องของคุณในท้องถิ่น ทำตามขั้นตอนง่าย ๆ ด้านล่างเพื่ออัปเดตการตั้งค่า PowerShell ของคุณ
ขั้นตอนที่ 1: เปิด PowerShell ในฐานะผู้ดูแลระบบ
ก่อนที่คุณจะเปลี่ยนแปลงใด ๆ คุณต้องเปิด PowerShell ด้วยสิทธิ์ของผู้ดูแลระบบ โดยทำตามขั้นตอนนี้:
- ค้นหา PowerShell ในเมนูเริ่มของ Windows
- คลิกขวาที่ “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 สามารถเพิ่มประสิทธิภาพการทำงานของคุณได้อย่างมาก แต่การนำทางผ่านการตั้งค่าความปลอดภัยบางครั้งอาจเป็นเรื่องท้าทาย โดยการเข้าใจนโยบายการดำเนินการและรู้วิธีปรับเปลี่ยนมัน คุณสามารถเอาชนะอุปสรรคทั่วไปนี้ได้ อย่าลืมที่จะมีความระมัดระวังเมื่อรันสคริปต์และคำนึงถึงความปลอดภัยของระบบของคุณเสมอ
ด้วยขั้นตอนง่าย ๆ เหล่านี้ คุณจะพร้อมที่จะแก้ไขข้อผิดพลาด “การดำเนินการของสคริปต์ถูกปิดใช้งาน” และกลับไปยังการทำงานอัตโนมัติของงานของคุณได้อย่างมีประสิทธิภาพ ขอให้คุณสนุกกับการเขียนสคริปต์!