วิธีเรียกใช้สคริปต์ PowerShell - อธิบายตัวเลือกทั้งหมดแล้ว
สคริปต์ PowerShell เป็นวิธีที่ยอดเยี่ยมในการทำงานอัตโนมัติ รวบรวมข้อมูล หรือแก้ไขคุณสมบัติเป็นกลุ่ม คำสั่ง PowerShell ส่วนใหญ่เป็นเพียงบรรทัดเดียวที่คุณสามารถคัดลอกและวางลงใน PowerShell ได้ แต่คุณจะรันสคริปต์ PowerShell ที่สมบูรณ์ได้อย่างไร
มีสองตัวเลือกในการเรียกใช้สคริปต์ PowerShell เพียงแค่จาก cmd โดยใช้ PowerShell ISE หรือแม้แต่งานที่กำหนดเวลาไว้
ในบทความนี้ ฉันจะอธิบายตัวเลือกต่างๆ ในการเรียกใช้สคริปต์ PowerShell นอกจากนี้ ฉันจะช่วยคุณเกี่ยวกับข้อผิดพลาดทั่วไป เช่น “สคริปต์ที่รันอยู่ถูกปิดใช้งานบนระบบนี้”
Fix Running Scripts ถูกปิดใช้งานบนระบบนี้
เราจะเริ่มต้นด้วยข้อผิดพลาดทั่วไปที่ป้องกันไม่ให้ผู้ใช้ส่วนใหญ่เรียกใช้สคริปต์ PowerShell ข้อผิดพลาด “การเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้” ข้อผิดพลาดนี้มีสาเหตุจากนโยบายการดำเนินการของ PowerShell
ตามค่าเริ่มต้น นโยบายการดำเนินการของ PowerShell จะถูกตั้งค่าเป็น จำกัด ซึ่งหมายความว่าสคริปต์ PowerShell จะไม่ทำงานเลย
ดังนั้นในการเรียกใช้สคริปต์ PowerShell เราต้องเปลี่ยนนโยบายการดำเนินการก่อน สำหรับนโยบายนี้ เรามีทางเลือก 2-3 ทาง:
- Restricted
ตัวเลือกเริ่มต้น - ไม่อนุญาตให้เรียกใช้สคริปต์ PowerShell ใด ๆ
- Unrestricted
สามารถเรียกใช้สคริปต์ใดก็ได้ แสดงคำเตือนสำหรับสคริปต์ที่ดาวน์โหลด
- RemoteSigned
ต้องมีลายเซ็นดิจิทัลสำหรับสคริปต์ที่ดาวน์โหลด คุณสามารถ
เรียกใช้สคริปต์ที่เขียนในเครื่องได้ คุณสามารถปลดบล็อกสคริปต์ที่ดาวน์โหลด
เพื่อเรียกใช้โดยไม่มีลายเซ็น- ByPass
คุณสามารถเรียกใช้สคริปต์ทั้งหมดได้และไม่มีคำเตือนแสดงขึ้น
- AllSigned
คุณสามารถเรียกใช้สคริปต์ที่ลงนามจากผู้เผยแพร่ที่เชื่อถือได้เท่านั้น
นโยบายการดำเนินการไม่ได้ได้รับการออกแบบให้เป็นโมเดลความปลอดภัย แต่มีวัตถุประสงค์มากกว่าเพื่อป้องกันการดำเนินการสคริปต์ PowerShell โดยไม่ได้ตั้งใจ ทางเลือกที่ดีที่สุดคือการใช้นโยบาย RemoteSigned ซึ่งจะทำให้คุณไม่สามารถเรียกใช้สคริปต์ที่ดาวน์โหลดมาโดยไม่ได้ตั้งใจได้ (คุณจะต้องยกเลิกการบล็อกก่อน) อ่านเพิ่มเติมเกี่ยวกับนโยบายการดำเนินการในบทความนี้
คำแนะนำ
เรียนรู้เพิ่มเติมเกี่ยวกับการเขียนสคริปต์ PowerShell ของคุณเองในคู่มือฉบับสมบูรณ์นี้
หากต้องการเปลี่ยนนโยบายการดำเนินการใน PowerShell (และแก้ไข "การเรียกใช้สคริปต์ถูกปิดใช้งานบนระบบนี้) เราจำเป็นต้องเริ่ม PowerShell ด้วยสิทธิ์ของผู้ดูแลระบบ:
- กด ปุ่ม Windows + X (หรือคลิกขวาที่เมนูเริ่ม)
- เลือก Windows PowerShell (ผู้ดูแลระบบ)
- เรียกใช้คำสั่งด้านล่าง:
Set-ExecutionPolicy RemoteSigned
ตอนนี้คุณควรจะสามารถเรียกใช้สคริปต์ PowerShell ได้แล้ว
เรียกใช้สคริปต์ PowerShell
มีสองตัวเลือกในการเรียกใช้สคริปต์ PowerShell วิธีที่สะดวกที่สุดคือเพียงคลิกขวาที่ไฟล์แล้วเลือก เรียกใช้ด้วย PowerShell
แต่วิธีนี้มาพร้อมกับข้อเสีย ตามค่าเริ่มต้น สคริปต์ PowerShell ส่วนใหญ่จะปิดหน้าต่าง PowerShell โดยอัตโนมัติเมื่อสคริปต์เสร็จสิ้น ดังนั้นสคริปต์จึงถูกดำเนินการ แต่คุณจะไม่สามารถอ่านข้อผิดพลาดหรือเอาต์พุตใดๆ ได้
คุณสามารถแก้ไขได้โดยเพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของสคริปต์ PowerShell แต่นั่นไม่ใช่ตัวเลือกที่สะดวกเสมอไป:
Read-Host -Prompt "Press Enter to exit"ใช้ Windows PowerShell
โดยส่วนตัวแล้วฉันชอบสคริปต์ PowerShell เริ่มต้นจากบรรทัดคำสั่งใน Windows PowerShell เอง มีสองวิธีในการดำเนินการนี้ ขั้นแรกคุณสามารถเริ่ม PowerShell และนำทางไปยังสคริปต์หรือเปิด PowerShell ในตำแหน่งที่ถูกต้องจาก explorer
เราเริ่มต้นด้วยอย่างหลังโดยเปิด PowerShell ในตำแหน่งที่ถูกต้องจาก explorer ใน explorer ให้ค้นหาสคริปต์ที่คุณต้องการเรียกใช้ ในกรณีนี้คือ c:\temp\powershell
- คลิกขวาบนพื้นที่ว่างใน Explorer (ไม่ใช่ในไฟล์ PowerShell)
- เลือก เปิดหน้าต่าง PowerShell ที่นี่
(ใน Windows 11 คุณจะต้องเลือกเปิดใน Windows Terminal)
อย่างที่คุณเห็น PowerShell เริ่มต้นในโฟลเดอร์ c:\temp\PowerShell ตอนนี้เราสามารถเรียกใช้สคริปต์ได้โดยเพียงแค่พิมพ์ชื่อไฟล์ (พิมพ์ตัวอักษรสองสามตัวแรกแล้วกด Tab เพื่อเติมข้อความอัตโนมัติ)
คุณยังสามารถเริ่ม Windows PowerShell ก่อนได้:
- คลิกขวาที่เมนูเริ่มต้น (หรือกด ปุ่ม Windows + X)
- เลือก Windows PowerShell
- นำทาง ไปยังโฟลเดอร์ที่มีสคริปต์อยู่
cd c:\path\to\script - เรียกใช้ สคริปต์ PowerShell
.\PowerShellExampleScript.ps1
เรียกใช้สคริปต์ PowerShell จาก CMD
หากคุณได้ลองเรียกใช้ PowerShell จาก cmd คุณอาจสังเกตเห็นว่ามันจะเปิดสคริปต์ในแผ่นจดบันทึก ไม่ใช่ผลลัพธ์ที่เรากำลังมองหาจริงๆ
ในการเรียกใช้สคริปต์ PowerShell เราต้องบอกพรอมต์คำสั่งให้เปิดสคริปต์ด้วย PowerShell เราสามารถใช้ cmd ต่อไปนี้สำหรับสิ่งนี้:
PowerShell c:\path\to\script\PowerShellScript.ps1โปรดทราบว่าคุณจะต้องระบุเส้นทางแบบเต็มไปยังสคริปต์ PowerShell ผลลัพธ์ของสคริปต์จะแสดงในพร้อมท์คำสั่ง
หากคุณต้องการให้เซสชัน PowerShell เปิดอยู่ คุณสามารถเพิ่มพารามิเตอร์ -noexit ลงในคำสั่ง:
PowerShell -noexit c:\temp\PowerShell\PowerShellExampleScript.ps1การใช้ PowerShell ISE
เมื่อคุณดาวน์โหลดสคริปต์จากอินเทอร์เน็ต คุณควรตรวจสอบสคริปต์ก่อนเรียกใช้งานเสมอ วิธีง่ายๆ ในการตรวจสอบและเรียกใช้สคริปต์ PowerShell คือการใช้ PowerShell ISE
หากต้องการเปิดไฟล์ PowerShell ในตัวแก้ไข เพียงคลิกขวาที่ไฟล์แล้วเลือก แก้ไข
เมื่อคุณใช้ตัวแก้ไขเป็นครั้งแรก คุณอาจต้องขยายบานหน้าต่างสคริปต์ก่อนเพื่อดูเนื้อหาของสคริปต์ PowerShell:
หากต้องการเรียกใช้สคริปต์ใน PowerShell ISE เพียงคลิกที่ปุ่มเล่นสีเขียวในแถบเครื่องมือ ผลลัพธ์ของสคริปต์จะแสดงในคอนโซล:
เรียกใช้สคริปต์ PowerShell ในฐานะผู้ดูแลระบบ
สคริปต์ PowerShell บางตัวต้องการสิทธิ์ผู้ดูแลระบบเพื่อให้ทำงานได้อย่างถูกต้อง พวกเขาอาจต้องการเข้าถึงโฟลเดอร์ทั้งหมดในไดรฟ์ระบบของคุณ หรือจำเป็นต้องโต้ตอบกับคอมพิวเตอร์โดเมนหรือเซิร์ฟเวอร์อื่นๆ
วิธีที่ง่ายที่สุดในการเรียกใช้สคริปต์ PowerShell ในฐานะผู้ดูแลระบบคือการเริ่ม Windows PowerShell ในฐานะผู้ดูแลระบบ
- กด ปุ่ม Windows + X (หรือคลิกขวาที่เมนูเริ่ม)
- เลือก Windows PowerShell (ผู้ดูแลระบบ)
- คลิก ใช่ บนข้อความแจ้งเตือนการรักษาความปลอดภัยของบัญชีผู้ใช้
ตอนนี้คุณสามารถเรียกใช้คำสั่งหรือสคริปต์ PowerShell ด้วยสิทธิ์ของผู้ดูแลระบบได้แล้ว เพียงนำทางไปยังสคริปต์ (หรือแม้แต่ลากและวางสคริปต์) เพื่อเรียกใช้
คุณยังสามารถเรียกใช้สคริปต์ PowerShell ในฐานะผู้ดูแลระบบได้จากบรรทัดคำสั่ง เมื่อคุณเปิด PowerShell เราสามารถเริ่มกระบวนการ PowerShell ใหม่และเรียกใช้ในฐานะผู้ดูแลระบบได้ นอกจากนี้ เรายังระบุไฟล์ที่เราต้องการเรียกใช้ได้อีกด้วย:
# Open a new PowerShell windows with Administrator Privilege
Start-Process PowerShell -Verb runAs
# Run PowerShell script with Administrator Privilege
Start-Process PowerShell -Verb runAs -ArgumentList "-file c:\temp\powershell\powershellexamplescript.ps1"ห่อขึ้น
ฉันหวังว่าคุณจะสามารถเรียกใช้สคริปต์ PowerShell ได้ตามขั้นตอนข้างต้น ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่านโยบายการดำเนินการอย่างถูกต้องก่อนที่คุณจะเรียกใช้สคริปต์ PowerShell คุณยังสามารถกำหนดเวลาสคริปต์ PowerShell ได้โดยใช้ Task Scheduler
หากคุณมีคำถามใด ๆ เพียงแค่แสดงความคิดเห็นด้านล่าง ตรวจสอบให้แน่ใจว่าคุณอ่านเพิ่มเติมเกี่ยวกับการตั้งค่าโปรไฟล์ PowerShell ของคุณ








