Windows PowerShell เป็นเชลล์บรรทัดคำสั่งของ Windows ที่ออกแบบมาเป็นพิเศษสำหรับผู้ดูแลระบบ โดยมีหน้าต่างบรรทัดคำสั่งแบบ DOS แบบโต้ตอบและสภาพแวดล้อมการเขียนสคริปต์ และสามารถใช้งานได้อย่างอิสระหรือร่วมกัน ต่างจากเชลล์ส่วนใหญ่ที่รับและส่งข้อความตัวอักษร Windows PowerShell สร้างขึ้นบนรันไทม์ภาษาทั่วไปของ .NET และ .NET Framework เพื่อรับและตอบกลับออบเจ็กต์ .NET คุณสมบัติดังกล่าวมีเครื่องมือและวิธีการใหม่สำหรับการจัดการและกำหนดค่า Windows
พาวเวอร์เชลล์
แนวคิดที่สำคัญใน Windows PowerShell คือ "cmdlet" ซึ่งเป็นเครื่องมือบรรทัดคำสั่งแบบฟังก์ชันเดียวที่เรียบง่ายซึ่งสร้างขึ้นใน Shell ผู้ใช้สามารถใช้คำสั่งได้อย่างอิสระ แต่เอฟเฟกต์จะขึ้นอยู่กับงานและสภาพแวดล้อมของแอปพลิเคชัน Windows PowerShell มีบรรทัดคำสั่งพื้นฐานมากกว่า 100 บรรทัด และผู้ใช้สามารถเขียนบรรทัดคำสั่งของตนเองและแบ่งปันกับผู้ใช้รายอื่นได้
เช่นเดียวกับเชลล์ส่วนใหญ่ Windows PowerShell ช่วยให้คุณเข้าถึงระบบไฟล์ของคอมพิวเตอร์ของคุณได้ นอกจากนี้ Windows PowerShell ยังช่วยให้คุณเข้าถึงข้อมูลที่เก็บไว้อื่นๆ เช่น ใบรับรองรีจิสทรีและลายเซ็นดิจิทัล เช่นเดียวกับการเข้าถึงระบบไฟล์ได้อย่างง่ายดาย
PowerShell ใน Windows Server 2008 R2 ได้รับการอัปเกรดเป็น 2.0 ซึ่งนำเสนอคุณสมบัติใหม่มากมาย เช่น การจัดการระยะไกล สภาพแวดล้อมการเขียนสคริปต์ที่สมบูรณ์ เครื่องมือแก้ไขข้อบกพร่อง ฯลฯ มาดูคุณสมบัติใหม่ของ ISE และฟังก์ชันระยะไกลที่ได้รับการปรับปรุงใน PowerShell V2 กันดีกว่า .
1. สภาพแวดล้อมสคริปต์รวม ISE (สภาพแวดล้อมสคริปต์รวม)
ข้อกำหนดพื้นฐานสำหรับ PowerShell คือการสามารถเขียนและแก้ไขสคริปต์ PowerShell ได้อย่างง่ายดาย PowerShell v2 มาพร้อมกับสภาพแวดล้อมสคริปต์แบบรวม ISE (Integrated Script Environment) ซึ่งทำให้การเขียนสคริปต์ PowerShell ง่ายขึ้น รวมถึงแผงสคริปต์ แผงเอาต์พุต และ แผงบรรทัดคำสั่ง
แผงไอเอส
แผงบรรทัดคำสั่ง ISE คล้ายกับแผงบรรทัดคำสั่ง PowerShell ผู้ใช้สามารถพิมพ์คำสั่งลงไปแล้วกด Enter เพื่อดำเนินการคำสั่ง ผลลัพธ์การดำเนินการของคำสั่งจะแสดงในแผงเอาต์พุต และสามารถติดตามผลลัพธ์ของการดำเนินการคำสั่งก่อนหน้าทั้งหมดได้อย่างชัดเจน แผงสคริปต์ที่ด้านบนสามารถใช้เพื่อเขียนและแก้ไขสคริปต์ได้ แผงสคริปต์รองรับหลายสคริปต์เพื่อทำงานร่วมกัน ทำให้ง่ายต่อการใช้งาน
เพื่อช่วยเหลือผู้ใช้ในการแก้ไขสคริปต์ ISE อนุญาตให้ผู้ใช้ตั้งค่าจุดพักการแก้ไขได้หลายวิธี โดยสามารถตั้งค่าด้วยตนเองหรือโดยอัตโนมัติภายใต้เงื่อนไขพิเศษบางอย่างได้ ในคำสั่งเพื่อตั้งค่าจุดพัก ผู้ใช้จำเป็นต้องระบุชื่อและพิกัดของสคริปต์แก้ไขข้อบกพร่อง
ชุด-PSBreakpoint .[ชื่อไฟล์สคริปต์].ps1 -line X
หากคุณต้องการกำหนดจุดพักหลายจุด คุณจะต้องคั่นด้วยเครื่องหมายจุลภาคเมื่อระบุพิกัด เช่น
ชุด-PSBreakpoint .[ชื่อไฟล์สคริปต์].ps1 -line X,Y,Z
หากคุณต้องการตั้งค่าจุดพักเมื่อเรียกใช้ฟังก์ชันเฉพาะ คุณต้องใช้คำสั่ง Set-PSBreakpoint พารามิเตอร์ -Command และชื่อฟังก์ชัน:
ชุด PSBreakPoint - คำสั่ง [ชื่อของฟังก์ชัน]
ดีบักเกอร์ ISE ยังสามารถตั้งค่าจุดพักเมื่ออ่านหรือเขียนตัวแปรเฉพาะ ต่อไปนี้คือคำสั่งในการตั้งค่าจุดพักเมื่ออ่านหรือเขียนตัวแปร:
ชุด PSBreakpoint - ตัวแปร [ชื่อตัวแปร] - โหมดอ่าน
Set-PSBreakpoint - ตัวแปร [ชื่อตัวแปร] - การเขียนโหมด
หลังจากตั้งค่าเบรกพอยต์แล้ว จะมีตัวระบุที่ไม่ซ้ำกัน คุณสามารถลบเบรกพอยต์ได้โดยการลบตัวระบุผ่านคำสั่ง Disable-PSBreakpoint:
ปิดการใช้งาน-PSBreakpointX
2. การปรับปรุงฟังก์ชั่นระยะไกลของ PowerShell v2
คุณสมบัติที่สำคัญอีกประการหนึ่งของ PowerShell v2 คือการปรับปรุงความสามารถในการดำเนินการระยะไกล (PowerSell ระยะไกล) โดยการเพิ่มบรรทัดคำสั่งใหม่ Inrigg-Command ควรสังเกตว่าปัจจุบันการทำงานระยะไกลของ PowerSell รองรับเฉพาะคอมพิวเตอร์ที่ใช้ Vista SP1, Windows Server 2008 และ Windows 7 และจำเป็นต้องติดตั้งเครื่องมือการจัดการระยะไกล WinRM เวอร์ชันที่เกี่ยวข้อง ซึ่งหมายความว่าผู้ใช้สามารถเชื่อมต่อได้เฉพาะคอมพิวเตอร์ Vista SP1/Win 2008 ที่ติดตั้ง PowerShell v2 และ WinRM ผ่านทางระยะไกลของ PowerShell คอมพิวเตอร์ที่ใช้ Vista (สามารถติดตั้งได้เฉพาะ PowerShell เท่านั้น) และไม่รองรับระบบ WinXP
ข้อกำหนดและการปรับปรุงระบบ PowerShell v2
ใน PowerShell 2.0 เวอร์ชันก่อนวางจำหน่าย CTP คำสั่ง Invoke-Expression จะใช้เพื่อเชื่อมต่อกับคอมพิวเตอร์ระยะไกล:
เรียกใช้ Expression – ชื่อคอมพิวเตอร์ atl-fs-001 – คำสั่งรับกระบวนการ
หากผู้ใช้ต้องการเรียกใช้คำสั่ง Get-Process บนคอมพิวเตอร์ระยะไกล atl-fs-001 คุณสามารถใช้คำสั่ง Invoke-Command ใหม่ได้:
เรียกใช้คำสั่ง –ชื่อคอมพิวเตอร์ atl-fs-001 –scriptblock
จะเห็นได้ว่าพารามิเตอร์พื้นฐานในทั้งสองคำสั่งเหมือนกัน ทีมงาน PowerShell แทนที่คำสั่ง Invoke-Expression ด้วย Invoke-Command และแทนที่ –command ด้วยพารามิเตอร์ –scriptblock แม้ว่าจะมีการเปลี่ยนแปลงไม่มากในคำสั่งก็ตาม มีการปรับปรุงการควบคุมระยะไกล เสถียรภาพในการทำงาน ความปลอดภัย และประสิทธิภาพ
แน่นอนว่าคำสั่งนี้ยังสามารถรองรับคอมพิวเตอร์ระยะไกลหลายเครื่องได้ หากคุณต้องการรับข้อมูลกระบวนการจากคอมพิวเตอร์ระยะไกล atl-fs-001, atl-fs-002 และ atl-fs-003 คุณสามารถใช้คำสั่ง:
เรียกใช้คำสั่ง –ชื่อคอมพิวเตอร์ atl-fs-001, atl-fs-002, atl-fs-003 –scriptblock
รองรับคอมพิวเตอร์ระยะไกลหลายเครื่อง
เช่นเดียวกับคำสั่ง Invoke-Expression Invoke-Command สามารถเชื่อมต่อกับคอมพิวเตอร์ระยะไกลและรันคำสั่งได้ แต่การเชื่อมต่อจะหายไปทันที หากคุณต้องการเชื่อมต่อกับคอมพิวเตอร์ระยะไกลอย่างต่อเนื่อง คุณสามารถสร้างเซสชัน PowerShell ด้วยคำสั่ง:
$objRunspace = ใหม่-Runspace atl-fs-001, atl-fs-002, atl-fs-003
หากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง Invoke-Command คุณสามารถรับคำแนะนำและตัวอย่างผ่านคำสั่งต่อไปนี้:
รับ-ช่วยเหลือ-เรียกใช้-คำสั่ง –เต็ม | เพิ่มเติม