5 Cmdlets เพื่อให้คุณเริ่มต้นกับ PowerShell
PowerShell กำลังกลายเป็นภาษาสคริปต์ที่ต้องการและ CLI ของผู้ใช้ระดับสูงรวมถึงผู้เชี่ยวชาญด้านไอทีอย่างรวดเร็ว การเรียนรู้คำสั่งเล็ก ๆ น้อย ๆ เป็นสิ่งที่คุ้มค่าสำหรับการเริ่มต้นของคุณดังนั้นเราจึงมีประโยชน์ 5 cmdlets ให้คุณเรียนรู้วันนี้.
Get-คำสั่ง
Get-Command เป็นหนึ่งใน cmdlet ที่มีประโยชน์มากที่สุดใน PowerShell ทั้งหมดเนื่องจากจะช่วยให้คุณจับกับ PowerShell ได้โดยให้คุณค้นหา cmdlet บางตัว การใช้ Get-Command ด้วยตัวของมันเองนั้นไม่ได้มีประโยชน์มากนักเนื่องจากมันจะคายคำสั่งทุกคำสั่งที่ PowerShell มี.
แต่จากนี้เราจะเห็นว่าวัตถุที่ PowerShell เอาต์พุตมีทั้งชื่อและคุณสมบัติ ModuleName การใช้ข้อมูลนี้เราสามารถทำให้การค้นหาของเราละเอียดยิ่งขึ้นด้วยการค้นหา cmdlets ที่มีคำบางคำ ตัวอย่างเช่นถ้าฉันต้องการค้นหา cmdlet ทั้งหมดที่มีคำว่า "IP" ฉันสามารถทำได้:
รับ - คำสั่ง - ชื่อ * IP *
ดังที่คุณเห็นว่าเรายังได้ผลลัพธ์ค่อนข้างน้อยตัวเลือกถัดไปของเราคือการค้นหาภายในโมดูลที่เฉพาะเจาะจง ในกรณีของเราฉันจะเลือกโมดูล NetTCPIP.
รับคำสั่ง - โมดูล NetTCPIP - ชื่อ * IP *
ขอความช่วยเหลือ
เมื่อคุณพบ cmdlet ที่คุณกำลังมองหาโดยใช้ Get-Command คุณจะต้องการทราบไวยากรณ์และวิธีการใช้ cmdlet เฉพาะนั้น นี่คือที่มาของวิธีใช้ถ้าคุณเคยใช้บรรทัดคำสั่งใน Windows คุณอาจทำสิ่งนี้:
ipconfig /?
นั่นไม่ได้ผลใน PowerShell นี่เป็นเพราะใน PowerShell มีการใช้พื้นที่เพื่อแยกคำสั่งจากพารามิเตอร์ ดังนั้นเราจึงใช้ Get-Help และส่งชื่อ cmdlets ไปที่ Get-Help เป็นพารามิเตอร์.
รับความช่วยเหลือรับกระบวนการ
ได้รับการบริการสมาชิก
รับสมาชิกช่วยให้เราได้รับข้อมูลเกี่ยวกับวัตถุที่ cmdlets กลับมา การจับกับ get-member คือมันอาศัยคุณสมบัติของ PowerShell เพื่อสาธิตสิ่งนี้เราจะสามารถใช้ cmdlet รับกระบวนการได้.
ในขณะที่คุณสามารถเห็นผลลัพธ์ของ PowerShell แสดงให้เราเห็นคุณสมบัติบางอย่างซึ่งคุณสามารถดูที่ด้านบนของแต่ละคอลัมน์ ปัญหาแรกคือในขณะที่สิ่งเหล่านั้นเป็นคุณสมบัติที่คุณอาจมองหาเป็นส่วนใหญ่ แต่ก็ยังมีอีกมาก ปัญหาที่สองคือมันไม่แสดงวิธีการใด ๆ ที่เราสามารถเรียกบนวัตถุ เพื่อดูวิธีการและคุณสมบัติที่เราสามารถท่อส่งออกของเราไปยังสมาชิกได้รับเช่น:
รับกระบวนการ | ได้รับการบริการสมาชิก
แม้ว่ามันอาจจะไม่มีความหมายอะไรสำหรับคุณในตอนนี้คุณจะต้องใช้ Get-Member ไม่ช้าก็เร็วและยิ่งเรียนรู้วิธีการใช้งานก็จะยิ่งดีขึ้นเท่านั้น ตัวอย่างเช่นการใช้ข้อมูลจากผลลัพธ์เราสามารถทำสิ่งที่ชอบ:
เริ่มกระบวนการ notepad.exe
$ NotepadProc = รับกระบวนการ - ชื่อ notepad
$ NotepadProc.WaitForExit ()
เริ่มกระบวนการ calc.exe
สคริปต์นั้นจะเปิดตัว notepad จากนั้นจะกำหนดเอาท์พุทของ“ Get-Process -Name notepad” ให้กับตัวแปร $ NotepadProc จากนั้นเราเรียกเมธอด WaitForExit บน $ NotepadProc ซึ่งทำให้สคริปต์หยุดชั่วคราวจนกว่าคุณจะปิดแผ่นจดบันทึกเมื่อคุณปิด Notepad จากนั้นเครื่องคิดเลขจะเริ่มทำงาน.
$ _ (วัตถุไปป์ไลน์ปัจจุบัน)
แม้ว่าจะไม่ใช่ cmdlet แต่ก็เป็นหนึ่งในตัวแปรพิเศษที่ใช้มากที่สุดใน PowerShell ชื่ออย่างเป็นทางการสำหรับ $ _ คือ“ วัตถุไปป์ไลน์ปัจจุบัน” มันถูกใช้ในบล็อกสคริปต์, ตัวกรอง, ส่วนของกระบวนการของฟังก์ชั่น, ที่วัตถุ, foreach-object และสวิทช์ อย่างไรก็ตามมันง่ายต่อการอธิบายด้วยตัวอย่างซึ่งนำเราไปสู่ cmdlet ถัดไปและสุดท้ายของเรา Where-Object.
ในกรณีที่วัตถุ
จุดที่วัตถุทำในสิ่งที่ดูเหมือนจริง ๆ มันเลือกวัตถุโดยพิจารณาว่าเป็นไปตามเกณฑ์ที่กำหนดหรือไม่ สิ่งนี้จะนำมารวมกัน $ _ และคุณสมบัติที่เราสามารถมองเห็นได้โดยใช้ Get-Member เพื่อแสดงให้เห็นถึงสิ่งนี้เราจะไพพ์เอาท์พุทของกระบวนการรับลงใน cmdlet ของวัตถุ.
รับกระบวนการ | โดยที่-Object $ _. ชื่อ -eq“ iexplore”
แล้วคุณจะถามว่าเกิดอะไรขึ้น สิ่งแรกที่เรากำลังทำคือการรับรายการของกระบวนการในคอมพิวเตอร์ของเราและส่งผ่านผลลัพธ์ (โดยใช้อักขระ |) ไปยังตำแหน่ง cmdlet ของเราซึ่งใช้บล็อกสคริปต์เป็นพารามิเตอร์ บล็อกสคริปต์ (กำหนดโดยวงเล็บปีกกา) แนะนำให้ cmdlets Where-Object เลือกเฉพาะวัตถุที่พารามิเตอร์ชื่อเท่ากับ“ iexplore” และเพื่อให้เราได้รับรายการอินสแตนซ์ IE ที่ทำงานอยู่เท่านั้น นั่นคือทั้งหมดที่มีให้มันมีความสนุกสนาน!