การเรียนรู้ PowerShell: คำแนะนำที่ครอบคลุมเกี่ยวกับวิธีการเรียกใช้ไฟล์แบตช์ได้อย่างง่ายดาย
7 ขั้นตอนในการเรียกใช้ไฟล์ PowerShell Batch ให้สำเร็จ: คู่มือที่ครอบคลุมสำหรับวิศวกรซอฟต์แวร์ผู้เชี่ยวชาญ
ในโลกที่ระบบอัตโนมัติเป็นสิ่งสำคัญ การรันไฟล์แบตช์หรือสคริปต์กลายเป็นงานสำคัญสำหรับวิศวกรซอฟต์แวร์ทุกคน กาลครั้งหนึ่ง John ซึ่งเป็นวิศวกรซอฟต์แวร์มากประสบการณ์ซึ่งใฝ่ฝันว่าจะทำให้งานประจำวันของเขาเป็นไปโดยอัตโนมัติ บังเอิญไปพบกับเครื่องมืออันทรงพลังชื่อ PowerShell คุณอยากรู้ไหมว่าเขาใช้ประโยชน์จากพลังของเครื่องมืออเนกประสงค์นี้เพื่อสร้างและรันไฟล์แบตช์ที่มีประสิทธิภาพ ซึ่งท้ายที่สุดแล้วจะช่วยเพิ่มประสิทธิภาพการทำงานของเขาได้อย่างไร อ่านต่อเพื่อเปิดเผยความลับเบื้องหลังความสำเร็จของ John และเรียนรู้วิธีเรียกใช้ไฟล์แบตช์ PowerShell อย่างมีประสิทธิภาพใน 7 ขั้นตอนง่ายๆ
โปรดทราบ: บทความนี้จะถือว่าผู้อ่านคุ้นเคยกับแนวคิดและคำศัพท์พื้นฐานของ PowerShell
ขั้นตอนที่ 1: สร้างไฟล์สคริปต์ PowerShell
John เริ่มต้นด้วยการสร้างเอกสารข้อความใหม่โดยใช้โปรแกรมแก้ไขข้อความมาตรฐาน (เช่น Notepad) จากนั้นเขาก็พิมพ์คำสั่ง PowerShell โดยแต่ละคำสั่งแยกบรรทัดกัน หลังจากตรวจสอบข้อผิดพลาดของสคริปต์อย่างละเอียดแล้ว John ได้บันทึกไฟล์ด้วยนามสกุล .ps1 ซึ่งระบุว่าเป็นไฟล์สคริปต์ PowerShell สิ่งสำคัญคือต้องจำไว้ว่าต้องตั้งค่านโยบายการดำเนินการสคริปต์อย่างถูกต้องเพื่อเรียกใช้สคริปต์ PowerShell เราจะมาหารือเรื่องนี้เพิ่มเติมในขั้นตอนถัดไป
ขั้นตอนที่ 2: กำหนดค่านโยบายการดำเนินการ
ก่อนที่จะรันสคริปต์ John จำเป็นต้องตรวจสอบให้แน่ใจว่านโยบายการดำเนินการได้รับการกำหนดค่าอย่างเหมาะสม ตามค่าเริ่มต้น PowerShell มีนโยบายการดำเนินการที่จำกัด ซึ่งป้องกันไม่ให้สคริปต์ถูกเรียกใช้งาน เพื่อข้ามข้อจำกัดนี้ John ตัดสินใจตั้งค่านโยบายการดำเนินการเป็น RemoteSigned หรือ Unrestricted โดยการเรียกใช้คำสั่งต่อไปนี้ในคอนโซล PowerShell การดูแลระบบ:
Set-ExecutionPolicy RemoteSigned
“`
_OR_
“`
Set-ExecutionPolicy Unrestricted_โปรดจำไว้ว่าการเรียกใช้สคริปต์จากแหล่งที่ไม่น่าเชื่อถืออาจเป็นอันตรายได้ ดังนั้นควรเลือกนโยบายการดำเนินการอย่างชาญฉลาด_
ขั้นตอนที่ 3: ทดสอบสคริปต์ในคอนโซล PowerShell
John เชื่อในปรัชญา measure two, cut one ดังนั้นเขาจึงทดสอบสคริปต์ของเขาอย่างละเอียดในคอนโซล PowerShell ก่อนที่จะดำเนินการต่อ เขาเปิดคอนโซล PowerShell ใหม่และนำทางไปยังโฟลเดอร์ที่มีสคริปต์ จากนั้นเขาพิมพ์คำสั่งต่อไปนี้เพื่อรันสคริปต์:
.script_name.ps1
การทดสอบทำให้ John สามารถระบุปัญหาทางไวยากรณ์หรือข้อผิดพลาดทางตรรกะภายในสคริปต์ของเขาได้ ทำให้เขาสามารถแก้ไขได้ก่อนที่จะเรียกใช้เป็นไฟล์แบตช์
ขั้นตอนที่ 4: สร้างไฟล์แบตช์เพื่อเรียกใช้สคริปต์ PowerShell
เมื่อสคริปต์ของเขาได้รับการทดสอบและปรับปรุงแล้ว จอห์นจึงดำเนินการสร้างแบตช์ไฟล์เพื่อเรียกใช้สคริปต์ เขาสร้างเอกสารข้อความใหม่โดยใช้โปรแกรมแก้ไขข้อความมาตรฐานและพิมพ์คำสั่งต่อไปนี้:
@echo off
PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command “& {Start-Process PowerShell.exe -ArgumentList ‘-NoProfile -ExecutionPolicy Bypass -File “”%~dpn0.ps1″”‘ -Verb RunAs}”คำสั่งนี้สั่งให้ระบบข้ามนโยบายการดำเนินการและเรียกใช้สคริปต์ PowerShell ด้วยสิทธิ์ระดับผู้ดูแลระบบ หลังจากพิมพ์คำสั่งนี้ John ได้บันทึกไฟล์ด้วยนามสกุล .bat เพื่อระบุว่าเป็นไฟล์แบตช์
ขั้นตอนที่ 5: ทดสอบไฟล์แบตช์
ลักษณะที่พิถีพิถันของ John ทำให้เขาทดสอบไฟล์แบตช์ที่สร้างขึ้นใหม่ก่อนที่จะกำหนดเวลาหรือทำให้เป็นอัตโนมัติ เขาคลิกสองครั้งที่ไฟล์แบตช์และสังเกตผลลัพธ์ เพื่อให้แน่ใจว่าได้รันสคริปต์ PowerShell ตามที่คาดไว้
ขั้นตอนที่ 6: กำหนดเวลางานผ่าน Task Scheduler (ไม่บังคับ)
เมื่อไฟล์แบตช์ได้รับการตรวจสอบแล้วว่าทำงานได้อย่างถูกต้อง John จึงตัดสินใจกำหนดเวลาให้งานทำงานโดยอัตโนมัติตามช่วงเวลาที่กำหนด เขาใช้ Windows Task Scheduler ในตัวเพื่อบรรลุเป้าหมายนี้ เขาเปิด Task Scheduler สร้างงานใหม่ และกำหนดค่างานให้เรียกใช้ไฟล์แบตช์ภายใต้แท็บ การทำงาน ใต้แท็บ ทริกเกอร์ เขาตั้งเวลาที่ต้องการสำหรับงานของเขา
ขั้นตอนที่ 7: ตรวจสอบการดำเนินการงาน (ไม่บังคับ)
หลังจากกำหนดเวลางานอัตโนมัติแล้ว John คอยจับตาดูประสิทธิภาพเพื่อให้แน่ใจว่างานทำงานได้อย่างราบรื่น เขาตรวจสอบแท็บ ประวัติงาน ของ Task Scheduler และตรวจสอบบันทึกเอาต์พุตเพื่อยืนยันว่าสคริปต์ PowerShell ของเขาทำงานตามที่คาดไว้ในช่วงเวลาที่ระบุ
ด้วยการทำตามขั้นตอนง่าย ๆ เจ็ดขั้นตอนนี้ John ได้ปลดล็อกศักยภาพที่แท้จริงของไฟล์แบตช์ PowerShell ทำให้เขาทำงานอัตโนมัติได้อย่างง่ายดาย ตอนนี้ถึงตาคุณแล้ว ใช้ขั้นตอนเหล่านี้กับขั้นตอนการทำงานของคุณและร่วมกับ John ในการควบคุมพลังของไฟล์แบตช์ PowerShell เพื่อปรับปรุงงานของคุณและปรับปรุงประสิทธิภาพการทำงานของคุณในฐานะวิศวกรซอฟต์แวร์
Windows Powershell กับ Command Prompt: อะไรคือความแตกต่าง?
ติดตั้งซอฟต์แวร์โดยใช้ Powershell ใน Windows 10
ฉันจะรันสคริปต์ PowerShell โดยใช้แบตช์ไฟล์ได้อย่างไร
ในการรันสคริปต์ PowerShell โดยใช้แบตช์ไฟล์ คุณสามารถทำตามขั้นตอนเหล่านี้:
1. สร้างสคริปต์ PowerShell (.ps1) ด้วยคำสั่งที่ต้องการ
2. เขียนแบตช์ไฟล์ (.bat) ด้วยคำสั่งที่จำเป็นเพื่อเรียกใช้ สคริปต์ PowerShell
ต่อไปนี้คือตัวอย่างวิธีรันสคริปต์ PowerShell ชื่อ MyScript.ps1 โดยใช้ไฟล์แบตช์ชื่อ RunScript.bat:
RunScript.bat:
@echo off
Powershell.exe -ExecutionPolicy Bypass -NoProfile -File “MyScript.ps1”คำสั่งในไฟล์แบตช์ทำดังต่อไปนี้:
- Powershell.exe: เปิดโปรแกรมปฏิบัติการ PowerShell
- -ExecutionPolicy Bypass: ตั้งค่าการดำเนินการ นโยบายที่จะเลี่ยงผ่าน ทำให้สคริปต์สามารถทำงานได้โดยไม่มีข้อจำกัดใดๆ
- -NoProfile: ข้ามการโหลดโปรไฟล์ของผู้ใช้ ทำให้การดำเนินการเร็วขึ้น
- -ไฟล์ “MyScript.ps1″: ระบุสคริปต์ PowerShell ที่จะดำเนินการ
หลังจากสร้างทั้งสคริปต์ PowerShell และแบตช์ไฟล์แล้ว เพียงดับเบิลคลิกที่ RunScript.bat หรือดำเนินการจากบรรทัดคำสั่งเพื่อเรียกใช้สคริปต์ PowerShell ของคุณ
ฉันจะรันสคริปต์ PowerShell จากไฟล์ได้อย่างไร
หากต้องการรันสคริปต์ PowerShell จากไฟล์ ให้ทำตามขั้นตอนเหล่านี้:
1. เปิดบรรทัดคำสั่ง PowerShell โดยค้นหาในเมนู Start หรือโดยการกด Win + X และเลือก Windows PowerShell
2. ก่อนที่จะรันสคริปต์ใดๆ คุณต้องอัปเดตนโยบายการดำเนินการสคริปต์โดยดำเนินการคำสั่งต่อไปนี้:
Set-ExecutionPolicy RemoteSignedซึ่งจะช่วยให้คุณสามารถเรียกใช้สคริปต์ที่ลงนามโดยผู้เผยแพร่ที่เชื่อถือได้ ซึ่งจำเป็นสำหรับสคริปต์ PowerShell ส่วนใหญ่
3. นำทางไปยังโฟลเดอร์ที่มีสคริปต์ PowerShell ของคุณโดยใช้คำสั่ง cd ตัวอย่างเช่น หากสคริปต์ของคุณอยู่ในโฟลเดอร์ Documents ให้ใช้:
cd C:UsersDocumentsแทนที่ “ ด้วยชื่อผู้ใช้ Windows ของคุณ
4. สุดท้ายรันสคริปต์โดยพิมพ์คำสั่งต่อไปนี้:
.YourScriptName.ps1แทนที่ YourScriptName.ps1 ด้วยชื่อจริงของสคริปต์ PowerShell ของคุณ
โปรดจำไว้ว่า นโยบายการดำเนินการ และ ชื่อสคริปต์ PowerShell เป็นส่วนสำคัญในการเรียกใช้สคริปต์ PowerShell จากไฟล์
คุณจะรันไฟล์แบตช์จากภายในสคริปต์ PowerShell ได้อย่างไร
หากต้องการเรียกใช้แบตช์ไฟล์จากภายในสคริปต์ PowerShell คุณสามารถใช้เมธอด Start-Process หรือ & (ตัวดำเนินการโทร) นี่คือสองตัวอย่าง:
1. การใช้กระบวนการเริ่มต้น:
Start-Process -FilePath “pathtoyourbatchfile.bat” -Wait -NoNewWindowในตัวอย่างนี้ คำสั่ง Start-Process ใช้เพื่อรันไฟล์แบตช์ พารามิเตอร์ -Wait ช่วยให้มั่นใจว่าสคริปต์ PowerShell รอให้การดำเนินการแบตช์ไฟล์เสร็จสิ้นก่อนดำเนินการต่อ พารามิเตอร์ -NoNewWindow ช่วยให้มั่นใจได้ว่าไฟล์แบตช์จะทำงานในหน้าต่างคอนโซลเดียวกัน
<แข็งแกร่ง>2. การใช้ & (ตัวดำเนินการโทร):
& “pathtoyourbatchfile.bat”ในตัวอย่างนี้ & (โอเปอเรเตอร์การโทร) ใช้เพื่อเรียกใช้งานไฟล์แบตช์ วิธีนี้ง่ายกว่าแต่ไม่ได้ให้การควบคุมในระดับเดียวกับวิธี Start-Process
อย่าลืมแทนที่ ”pathtoyourbatchfile.bat” ด้วยเส้นทางที่ถูกต้องไปยังไฟล์แบตช์ของคุณในทั้งสองตัวอย่าง
ฉันจะรัน PowerShell จากพรอมต์คำสั่งได้อย่างไร
หากต้องการดำเนินการ PowerShell จากพรอมต์คำสั่ง ให้ทำตามขั้นตอนเหล่านี้:
1. เปิด Command Prompt โดยค้นหา cmd ในเมนู Start หรือกด Win + R แล้วพิมพ์ cmd ในกล่องโต้ตอบ Run
2. เมื่อ Command Prompt เปิดขึ้น ให้พิมพ์คำสั่งต่อไปนี้แล้วกด Enter:
powershellการดำเนินการนี้จะเปิดอินเทอร์เฟซบรรทัดคำสั่งของ PowerShell ภายในหน้าต่างพร้อมรับคำสั่ง
3. ตอนนี้คุณสามารถรันคำสั่งหรือสคริปต์ PowerShell ได้โดยตรงจากบรรทัดคำสั่ง
โปรดทราบว่าหากคุณต้องการใช้ PowerShell โดยไม่ต้องเปลี่ยนจาก Command Prompt คุณสามารถนำหน้าคำสั่ง PowerShell ด้วย powershell.exe ตามด้วยคำสั่งที่อยู่ในเครื่องหมายคำพูดเดี่ยวหรือคู่ เช่นนี้
powershell.exe “Get-ChildItem”คำสั่งนี้จะดำเนินการ Get-ChildItem PowerShell cmdlet ภายในพร้อมท์คำสั่ง โดยไม่ต้องสลับไปใช้อินเทอร์เฟซ PowerShell
ฉันจะรันสคริปต์ PowerShell (*.ps1) ภายในแบตช์ไฟล์และส่งพารามิเตอร์ไปยังสคริปต์ได้อย่างไร
หากต้องการรันสคริปต์ PowerShell (*.ps1) ภายในแบตช์ไฟล์และส่งพารามิเตอร์ไปยังสคริปต์ ให้ทำตามขั้นตอนเหล่านี้:
1. สร้างไฟล์สคริปต์ PowerShell ของคุณ (เช่น script.ps1) และบันทึกลงในไดเรกทอรีเฉพาะ
2. สร้างไฟล์แบตช์ใหม่ (เช่น script.bat) และเปิดโดยใช้โปรแกรมแก้ไขข้อความ เช่น Notepad
3. ในแบตช์ไฟล์ ให้ป้อนคำสั่งต่อไปนี้:
powershell.exe -ExecutionPolicy Bypass -File “C:pathtoyourscript.ps1” -Param1 “parameter1” -Param2 “parameter2”แทนที่ และ parameter1 ด้วยพารามิเตอร์เฉพาะ คุณต้องการส่งต่อไปยังสคริปต์ ตรวจสอบให้แน่ใจว่าคุณอัปเดตเส้นทางให้ตรงกับตำแหน่งของไฟล์สคริปต์ PowerShell ของคุณparameter2
4. บันทึกไฟล์แบตช์และดับเบิลคลิกเพื่อรันสคริปต์ PowerShell ด้วยพารามิเตอร์ที่ระบุ
ธง -ExecutionPolicy Bypass ในคำสั่งอนุญาตให้เรียกใช้สคริปต์ได้โดยไม่ถูกบล็อกโดยนโยบายการดำเนินการของระบบ หากสคริปต์ PowerShell ของคุณยอมรับพารามิเตอร์ที่มีชื่อ ตรวจสอบให้แน่ใจว่าได้ระบุพารามิเตอร์เหล่านั้นด้วยชื่อพารามิเตอร์ที่เกี่ยวข้อง (เช่น -Param1, -Param2)
วิธีที่เหมาะสมในการรันคำสั่ง PowerShell หลายคำสั่งตามลำดับภายในไฟล์แบตช์เดียวคืออะไร
ในบริบทบรรทัดคำสั่งของ PowerShell วิธีที่เหมาะสมในการเรียกใช้คำสั่ง PowerShell หลายคำสั่งตามลำดับภายในไฟล์แบตช์เดียวคือการสร้างไฟล์สคริปต์ที่มีนามสกุล .ps1 และแสดงรายการคำสั่งของคุณตามลำดับที่คุณต้องการ พวกเขาจะดำเนินการ จากนั้น คุณสามารถรันสคริปต์จากบรรทัดคำสั่งหรือภายในสคริปต์อื่นโดยใช้คำสั่ง powershell.exe
ต่อไปนี้คือวิธีที่คุณสามารถสร้างและรันสคริปต์ด้วยคำสั่ง PowerShell หลายคำสั่ง:
1. สร้างไฟล์ข้อความใหม่และบันทึกด้วยนามสกุล .ps1 เช่น MyScript.ps1
2. เปิดไฟล์สคริปต์ในโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ เช่น Notepad หรือ Visual Studio Code
3. เขียนคำสั่ง PowerShell ของคุณ หนึ่งคำสั่งต่อบรรทัด ตามลำดับที่คุณต้องการให้ดำเนินการ ตัวอย่างเช่น:
Get-ChildItem
Get-Date4. บันทึกไฟล์สคริปต์
5. หากต้องการเรียกใช้สคริปต์จากบรรทัดคำสั่ง ให้เปิด คอนโซล PowerShell หรือ พร้อมรับคำสั่ง นำทางไปยังโฟลเดอร์ที่คุณบันทึกสคริปต์ และพิมพ์คำสั่งต่อไปนี้:
powershell.exe -ExecutionPolicy Bypass -File .MyScript.ps1คำสั่งนี้จะรันสคริปต์ PowerShell ของคุณด้วยคำสั่งหลายคำสั่งตามลำดับ โดยข้ามข้อจำกัดนโยบายการดำเนินการที่สามารถป้องกันไม่ให้สคริปต์ทำงาน
อย่าลืมแทนที่ MyScript.ps1 ด้วยชื่อจริงของไฟล์สคริปต์ของคุณ
ฉันจะตั้งค่านโยบายการดำเนินการ PowerShell เพื่ออนุญาตให้เรียกใช้สคริปต์ที่ลงนามและไม่ได้ลงนามภายในแบตช์ไฟล์ได้อย่างไร
ในบรรทัดคำสั่ง PowerShell คุณสามารถตั้งค่านโยบายการดำเนินการเพื่ออนุญาตให้เรียกใช้สคริปต์ทั้งที่ลงนามและไม่ได้ลงนามภายในแบตช์ไฟล์โดยใช้ Set-ExecutionPolicy cmdlet พร้อมด้วย Unrestricted พารามิเตอร์. การกำหนดค่านี้อนุญาตให้สคริปต์ทำงานโดยไม่คำนึงถึงสถานะการลงนาม
ทำตามขั้นตอนเหล่านี้เพื่อตั้งค่านโยบายการดำเนินการ:
1. เปิดคอนโซล PowerShell ด้วยสิทธิ์ผู้ดูแลระบบ เมื่อต้องการทำเช่นนี้ ให้ค้นหา PowerShell ในเมนู Start คลิกขวาที่ Windows PowerShell และเลือก Run as administrator
2. หากต้องการตั้งค่านโยบายการดำเนินการเป็นไม่จำกัด ให้รันคำสั่งต่อไปนี้:
Set-ExecutionPolicy Unrestricted3. คุณจะได้รับแจ้งให้ยืนยันการเปลี่ยนแปลง พิมพ์ Y (ใช่) หรือ A (ใช่ทั้งหมด) แล้วกด Enter
4. ตอนนี้คุณสามารถเรียกใช้สคริปต์ทั้งที่ลงนามและไม่ได้ลงนามภายในไฟล์แบตช์ของคุณ
โปรดทราบว่าการตั้งค่านโยบายการดำเนินการเป็นไม่จำกัดนั้นก่อให้เกิดความเสี่ยงด้านความปลอดภัย เนื่องจากจะทำให้สคริปต์ใดๆ ทำงานได้ แม้แต่สคริปต์ที่อาจเป็นอันตรายก็ตาม หากคุณต้องการตัวเลือกที่ปลอดภัยยิ่งขึ้น ให้พิจารณาใช้นโยบาย RemoteSigned แทน นโยบายนี้อนุญาตให้เรียกใช้สคริปต์ในเครื่องที่ไม่ได้ลงนาม แต่ต้องมีการลงนามสคริปต์ระยะไกล (เช่น ดาวน์โหลดจากอินเทอร์เน็ต) โดยผู้เผยแพร่ที่เชื่อถือได้
หากต้องการตั้งค่านโยบายการดำเนินการเป็น RemoteSigned ให้รันคำสั่งต่อไปนี้:
Set-ExecutionPolicy RemoteSignedเช่นเคย ให้ยืนยันการเปลี่ยนแปลงด้วย Y หรือ A
การตั้งค่านโยบายการดำเนินการ PowerShell อย่างถูกต้องช่วยให้แน่ใจว่ามีเพียงสคริปต์ที่เชื่อถือได้เท่านั้นที่จะดำเนินการในสภาพแวดล้อมของคุณ ซึ่งช่วยลดความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้น