วิธีแก้ไขปัญหา “การเรียกใช้สคริปต์ถูกปิดใช้งานในระบบนี้” ใน PowerShell บน Windows 10

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

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

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

1. ตรวจสอบว่านโยบายการดำเนินการใดที่กำลังบล็อกสคริปต์อยู่

ในแอปพลิเคชัน PowerShell เดียวกันกับที่คุณเห็นข้อผิดพลาด ให้รันคำสั่งต่อไปนี้:

Get-ExecutionPolicy -List

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

Windows PowerShell แสดงผล Get-ExecutionPolicy -List และนโยบายแบบจำกัดสำหรับผู้ใช้ปัจจุบัน
ตรวจสอบขอบเขตที่ระบุไว้ก่อนทำการเปลี่ยนแปลงนโยบาย

นโยบายการเรียกใช้งาน (Execution Policy) เป็นคุณสมบัติด้านความปลอดภัยที่ช่วยป้องกันไม่ให้สคริปต์ทำงานโดยไม่ตั้งใจ แต่ Microsoft อธิบายว่าเป็นระบบป้องกันหลายชั้นมากกว่าจะเป็นขอบเขตความปลอดภัย สคริปต์ยังคงอาจเป็นอันตรายได้ ดังนั้นควรตรวจสอบโค้ดและตรวจสอบแหล่งที่มาของสคริปต์ก่อนอนุญาตให้ทำงาน ดูคู่มือการใช้งานนโยบายการเรียกใช้งานของ Windows PowerShell 5.1 จาก Microsoft

2. อนุญาตให้ใช้งานสคริปต์ในเครื่องสำหรับบัญชีของคุณ

สำหรับสคริปต์ที่คุณสร้างหรือไว้วางใจ ให้ตั้งค่านโยบายระดับผู้ใช้เป็นRemoteSigned:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

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

ข้อความยืนยันจาก PowerShell สำหรับการตั้งค่า RemoteSigned ในขอบเขต CurrentUser
ยืนยันการเปลี่ยนแปลง RemoteSigned เฉพาะบัญชีเมื่อได้รับแจ้ง

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

3. เรียกใช้สคริปต์จากโฟลเดอร์ของมัน

ย้ายไปยังโฟลเดอร์ที่มี.ps1ไฟล์นั้น จากนั้นใส่เครื่องหมาย./(หรือเครื่องหมาย `<br>` แบบ Windows .\) นำหน้าชื่อไฟล์ ตัวอย่างเช่น:

Set-Location 'C:\Scripts'
.\MyScript.ps1

PowerShell จะไม่เรียกใช้ไฟล์จากไดเร็กทอรีปัจจุบันโดยอัตโนมัติเมื่อคุณพิมพ์เฉพาะชื่อไฟล์ หากเส้นทางมีช่องว่างหรือคุณกำลังเรียกใช้จากโฟลเดอร์อื่น ให้ใช้ตัวดำเนินการเรียกใช้ (call operator) และใส่เครื่องหมายอัญประกาศครอบเส้นทางแบบเต็ม:

& 'C:\Scripts\My Script.ps1'
PowerShell จะตรวจสอบ RemoteSigned และเรียกใช้สคริปต์ภายในเครื่องด้วยคำสั่ง .\\myscript.ps1
ตรวจสอบนโยบายที่มีผลบังคับใช้ จากนั้นเรียกใช้สคริปต์โดยใช้พาธของสคริปต์นั้น

4. หากสคริปต์ที่ดาวน์โหลดมายังคงถูกบล็อกอยู่

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

Unblock-File -LiteralPath '.\MyScript.ps1'
.\MyScript.ps1

ใช้เส้นทางที่ถูกต้องหากไฟล์อยู่ที่อื่นUnblock-Fileคำสั่งนี้จะลบเครื่องหมายการดาวน์โหลดจากอินเทอร์เน็ตของไฟล์ออก แต่จะไม่ตรวจสอบโค้ดหรือทำให้สคริปต์ที่ไม่ปลอดภัยปลอดภัยขึ้น Microsoft ได้บันทึกพฤติกรรมนี้ไว้ใน เอกสารอ้างอิง Windows PowerShell 5.1 Unblock -File

PowerShell จะเรียกใช้คำสั่ง Unblock-File สำหรับไฟล์สคริปต์ที่ได้รับการตรวจสอบหนึ่งไฟล์
ปลดบล็อกเฉพาะไฟล์ที่ตรวจสอบแล้วและแหล่งที่มาที่คุณเชื่อถือได้เท่านั้น

ใช้นโยบายชั่วคราวสำหรับหนึ่งเซสชัน

หากคุณไม่ต้องการให้การตั้งค่าต่อผู้ใช้คงอยู่ถาวร ให้ปิดหน้าต่าง PowerShell ปัจจุบันแล้วเปิดหน้าต่างใหม่ จากนั้นเรียกใช้คำสั่งนี้ก่อนสคริปต์:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

ขอบเขตProcessการใช้งานจะมีผลเฉพาะกับเซสชัน PowerShell นั้นและกระบวนการย่อยของมันเท่านั้น การปิดหน้าต่างจะล้างขอบเขตการใช้งานนั้น อย่างไรก็ตาม ยังคงต้องปฏิบัติตามRemoteSignedกฎอยู่ ดังนั้นไฟล์ที่ดาวน์โหลดมาโดยไม่มีลายเซ็นอาจต้องได้รับการตรวจสอบและปลดบล็อกทีละไฟล์เอกสารอ้างอิง Set-ExecutionPolicyจะอธิบายขอบเขตการใช้งานและค่าของนโยบายที่มีอยู่

หากข้อผิดพลาดยังคงอยู่

  • เรียกใช้คำสั่งGet-ExecutionPolicyเพื่อดูนโยบายที่มีผลบังคับใช้ และGet-ExecutionPolicy -Listตรวจสอบว่าอะไรเป็นตัวควบคุม หาก มีการตั้งค่า MachinePolicyหรือUserPolicyไว้ นโยบายกลุ่มขององค์กรจะเป็นตัวควบคุมการเรียกใช้สคริปต์ อย่าพยายามเขียนทับนโยบายนี้ โปรดติดต่อผู้ดูแลระบบของคุณ
  • ตรวจสอบให้แน่ใจว่าคุณได้เปลี่ยนนโยบายใน PowerShell เวอร์ชันเดียวกับที่คุณใช้รันสคริปต์ Windows PowerShell 5.1 ( powershell.exe) และ PowerShell 7 ( pwsh.exe) จะจัดเก็บการตั้งค่านโยบายแยกกัน
  • หากคุณต้องการลบการเปลี่ยนแปลงต่อผู้ใช้ในภายหลัง ให้เรียกใช้คำสั่ง นี้ คำสั่ง Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUserนี้จะล้างเฉพาะ การตั้งค่าเท่านั้น CurrentUserนโยบายที่มีผลบังคับใช้จะกลับไปใช้ขอบเขตที่กำหนดค่าไว้ก่อนหน้านี้ หรือหากไม่มีขอบเขตใด ๆ ใน Windows 10 ก็จะกลับไปใช้ขอบเขตเริ่มRestrictedต้น

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

ฝากความเห็น

วิธีพิมพ์ข้อความบน iPhone จากคอมพิวเตอร์ Windows 10

วิธีพิมพ์ข้อความบน iPhone จากคอมพิวเตอร์ Windows 10

ใช้การตั้งค่าการจับคู่เบราว์เซอร์ของ AirType เพื่อพิมพ์บน iPhone จากพีซี Windows 10 พร้อมขั้นตอนการตั้งค่าปัจจุบัน การแก้ไขปัญหา และข้อจำกัดด้านความเป็นส่วนตัว

วิธีตั้งค่าระดับการปรับขนาดที่แตกต่างกันสำหรับจอภาพหลายจอใน Windows 10

วิธีตั้งค่าระดับการปรับขนาดที่แตกต่างกันสำหรับจอภาพหลายจอใน Windows 10

ปรับขนาดจอภาพแต่ละจอใน Windows 10 ได้อย่างอิสระด้วยการปรับขนาดต่อจอ ช่วยให้ข้อความอ่านได้ชัดเจน และแก้ไขปัญหาการปรับขนาดแบบกำหนดเองหรือแอปที่แสดงผลเบลอ

วิธีซ่อนเคอร์เซอร์เมาส์ในแอปพลิเคชัน Windows 10

วิธีซ่อนเคอร์เซอร์เมาส์ในแอปพลิเคชัน Windows 10

ซ่อนตัวชี้เมาส์ในวิดีโอ เกม และแอปพลิเคชันอื่นๆ ใน Windows 10 ด้วยปุ่มควบคุมการพิมพ์ในตัว หรือตัวจับเวลาการไม่ใช้งานที่ปรับได้ของ PowerToys CursorHide

วิธีเปิดแผงควบคุม > ตัวเลือกพลังงาน บนเดสก์ท็อป Windows 10

วิธีเปิดแผงควบคุม > ตัวเลือกพลังงาน บนเดสก์ท็อป Windows 10

บนเดสก์ท็อป Windows 10 ให้ไปที่แผงควบคุม > ตัวเลือกพลังงาน > เปิดหน้านั้นด้วยคำสั่ง Run แล้วปรับแผนการใช้พลังงาน เวลาหมดเวลาการแสดงผล โหมดพักเครื่อง และพฤติกรรมของปุ่มต่างๆ

วิธีป้องกันไม่ให้ไฟล์ถูกกู้คืนใน Windows 10

วิธีป้องกันไม่ให้ไฟล์ถูกกู้คืนใน Windows 10

เรียนรู้ว่าการลบไฟล์ใน Windows 10 จะทิ้งอะไรไว้บ้าง วิธีใช้ SDelete กับฮาร์ดดิสก์ และเหตุใด SSD และการสำรองข้อมูลบนคลาวด์จึงต้องได้รับการจัดการที่แตกต่างกัน

วิธีเข้าถึงการตั้งค่าขั้นสูงสำหรับเว็บแคมในตัวใน Windows 10

วิธีเข้าถึงการตั้งค่าขั้นสูงสำหรับเว็บแคมในตัวใน Windows 10

ใช้เครื่องมือ DirectShow ของ FFmpeg เพื่อเปิดคุณสมบัติไดรเวอร์ของเว็บแคมในตัวใน Windows 10 ค้นหาอุปกรณ์ที่ถูกต้อง และแก้ไขปัญหาการควบคุมที่หายไป

วิธีระบุการกดปุ่มบน Windows 10

วิธีระบุการกดปุ่มบน Windows 10

ระบุการกดปุ่มใน Windows 10 ด้วยเครื่องมือทดสอบเหตุการณ์ในเบราว์เซอร์หรือ SharpKeys จากนั้นแยกปัญหาที่เกิดจากเค้าโครง การทำงานของซอฟต์แวร์ และฮาร์ดแวร์ของแป้นพิมพ์

วิธีป้อนเส้นทางไฟล์หรือโฟลเดอร์ที่มีช่องว่างใน Command Prompt ของ Windows 10

วิธีป้อนเส้นทางไฟล์หรือโฟลเดอร์ที่มีช่องว่างใน Command Prompt ของ Windows 10

ใช้เครื่องหมายอัญประกาศคู่คร่อมเส้นทางแบบเต็มที่มีช่องว่างใน Command Prompt เรียนรู้วิธีการแสดงรายการ เปลี่ยนแปลง คัดลอก และแก้ไขปัญหาไฟล์และโฟลเดอร์ใน Windows 10

วิธีปิดการขยายเมนูเริ่มต้นอัตโนมัติบน Windows 10

วิธีปิดการขยายเมนูเริ่มต้นอัตโนมัติบน Windows 10

ปิดใช้งานฟังก์ชันขยายเมนูเมื่อวางเมาส์เหนือเมนู Start ของ Windows 10 ด้วยคำสั่ง Mach2 แบบเก่า ตรวจสอบข้อจำกัดในการสร้าง และดูทางเลือกอื่นคือรายการแอปในตัว

วิธีแก้ไขข้อผิดพลาด “ไม่สามารถอ่านไฟล์ iTunes Library.itl ได้” ใน Windows 10

วิธีแก้ไขข้อผิดพลาด “ไม่สามารถอ่านไฟล์ iTunes Library.itl ได้” ใน Windows 10

แก้ไขข้อผิดพลาดในการอ่านไฟล์ iTunes Library.itl บน Windows 10 โดยการอัปเดต iTunes, กู้คืนข้อมูลสำรองที่เข้ากันได้ หรือสร้างไลบรารีใหม่โดยไม่ลบไฟล์มีเดียอย่างปลอดภัย