Geek School เรียนรู้การใช้ Cmdlets ใน PowerShell
หากคุณใช้ ipconfig หรือ ping ผ่านทางพรอมต์คำสั่งคุณจะกลายเป็นนินจา PowerShell ไปครึ่งทาง ดังนั้นมาร่วมกับเราเมื่อเราค้นพบ cmdlet ในการติดตั้งโรงเรียน Geek นี้.
อย่าลืมอ่านบทความแรกของเราเกี่ยวกับ PowerShell และติดตามความคืบหน้าของซีรี่ส์ที่เหลือตลอดทั้งสัปดาห์.
กายวิภาคของ Cmdlet
ในส่วนแรกของซีรี่ส์เราเห็น cmdlet ที่มีลักษณะดังนี้:
ปรับปรุงช่วยเหลือ
PowerShell cmdlets มีไวยากรณ์ Verb-Noun ซึ่งสามารถเห็นได้ด้านบน สิ่งสำคัญที่ควรทราบคือคำนามเป็นเอกพจน์เสมอแม้ว่า cmdlet อาจส่งคืนผลลัพธ์มากกว่าหนึ่งรายการ หากต้องการดูรายการกริยาทางกฎหมายใน PowerShell คุณสามารถใช้ Get-Verb cmdlet.
การรู้คำกริยาทางกฎหมายและการจดจำคำนามเอกพจน์ช่วยให้เดาชื่อ cmdlet ได้จริง ๆ ตัวอย่างเช่นสมมติว่าคุณต้องการ ได้รับ รายการของ บริการ และสถานะของพวกเขา - ถูกต้องมันง่ายเหมือนรับบริการ คุณคิดว่าเราจะทำอย่างไร ได้รับ รายการวิ่ง กระบวนการ - ถูกต้องกระบวนการรับจะทำเคล็ดลับ.
Get-กระบวนการ
ทำให้ง่ายต่อการทำงานกับเทคโนโลยีใด ๆ ตัวอย่างเช่นหากคุณโหลด Exchange cmdlets เราสามารถรับรายการกล่องจดหมายบนเซิร์ฟเวอร์ได้อย่างง่ายดายโดยใช้:
รับกล่องจดหมาย
อย่างไรก็ตามมีข้อยกเว้น แลกเปลี่ยนกันคำสั่งเฉพาะเทคโนโลยีอื่น ๆ ทั้งหมดจะต้องมีคำนำหน้า ตัวอย่างเช่นหากเราต้องการให้ผู้ใช้ที่เข้าสู่ระบบผ่านเดสก์ท็อประยะไกลในปัจจุบันเราจะพิมพ์:
Get-RDUserSession
ซึ่งสามารถเห็นได้ในภาพหน้าจอด้านล่าง.
หมายเหตุ: ภาพหน้าจอนี้ถ่ายในกล่อง Server 2012 เนื่องจากเป็นตำแหน่งที่คุณจะค้นหาโมดูลเฉพาะเทคโนโลยีส่วนใหญ่.
ไม่นานมานี้ฉันอ่านบทความโดย Don Jones เจ้าพ่อแห่ง PowerShell ซึ่งเขาอธิบายว่า Exchange ส่งก่อนคำนำหน้านี้ถูกเพิ่มใน cmdlets ดังนั้นจึงไม่เคยนำมาใช้และจะไม่เคย.
นามแฝง
คุณสมบัติอีกอย่างหนึ่งของ PowerShell นั้นมาพร้อมกับความสามารถในการเรียกใช้คำสั่งเดียวกัน - นามแฝงได้หลายวิธีหากคุณต้องการ สิ่งที่ยอดเยี่ยมเกี่ยวกับพวกเขาคือพวกเขามีคำสั่งมากมายที่คุณอาจใช้ในพรอมต์คำสั่งรวมถึงนามแฝง Linux บางตัว ตัวอย่างเช่นใน PowerShell เราสามารถรับรายชื่อไดเรกทอรีโดยใช้:
Get-ChildItem
เคยใช้พรอมต์คำสั่งหรือไม่ ไม่ต้องกังวลพวกเขามีคุณครอบคลุม.
มีพื้นหลัง Linux หรือไม่ พวกเขามีคุณครอบคลุมที่นั่นเช่นกัน.
เมื่อคุณเขียนสคริปต์มาสองสามปีคุณมักจะขี้เกียจและเริ่มใช้นามแฝงเป็นจำนวนมาก แต่สิ่งนี้ไม่ได้ช่วยผู้มาใหม่ที่อ่านโค้ดของเรา หากต้องการดูคำสั่งนามแฝงที่กำลังทำงานภายใต้ประทุนคุณสามารถใช้สิ่งต่อไปนี้:
รับ - ชื่อแทน - ชื่อ ls
ในทางกลับกันถ้าคุณรู้สึกว่าถึงเวลาที่จะก้าวขึ้นเกมของคุณคุณสามารถใช้พารามิเตอร์นิยามเพื่อรับนามแฝงทั้งหมดสำหรับ cmdlet:
Get-ChildItem - Definition Get-ChildItem
หากคุณมาจากพื้นหลังอื่นคุณสามารถเพิ่มชื่อแทนของคุณเองโดยทำดังต่อไปนี้:
ใหม่ชื่อแทน - ชื่อ icanhazfilez - มูลค่า Get-ChildItem
เห็นได้ชัดว่าคุณจะต้องแทนที่“ icanhazfilez” ด้วยชื่อนามแฝงใหม่ของคุณและ Get-ChildItem ด้วย cmdlet ที่คุณต้องการให้ทำงานภายใต้ประทุน.
สิ่งหนึ่งที่ควรทราบคือคุณเสียนามแฝงทั้งหมดที่คุณกำหนดไว้เมื่อคุณปิดเชลล์ คุณสามารถหลีกเลี่ยงปัญหานี้ได้โดยเพิ่มคำจำกัดความลงในสคริปต์โปรไฟล์ของคุณ.
การตัดพารามิเตอร์
Windows PowerShell ยังช่วยให้คุณสามารถตัดชื่อพารามิเตอร์จนถึงจุดที่ไม่ชัดเจนซึ่งจะพูดถึงจุดที่ PowerShell ไม่สามารถหาพารามิเตอร์ที่คุณกำลังพูดถึงได้อีกต่อไป ตัวอย่างเช่น:
รับ - บริการ - ชื่อ 'อุปกรณ์พกพา Apple' - ชื่อโฮสต์ในเครื่อง
เหมือนกับ:
รับบริการ - 'อุปกรณ์มือถือ Apple' - โฮสต์ภายในเครื่อง
หากคุณมีโอกาสทำให้ชื่อพารามิเตอร์คลุมเครือเกินไปคุณจะได้รับข้อผิดพลาด.
คำสั่งดั้งเดิม
สุดท้ายคำสั่งที่คุณรู้จักและชื่นชอบจะยังคงใช้งานได้ใน PowerShell.
ping www.google.com
เพียงจำไว้ว่าแอปพลิเคชันรุ่นเก่าเช่น ping ส่งออกสตริงและมักจะมีวิธีที่ดีกว่าในการทำสิ่งเดียวกันโดยใช้ PowerShell cmdlet.
แทนที่จะส่งข้อความที่มีความยาวเรากลับถูกทิ้งไว้กับวัตถุซึ่งเราจะดูใน Geek School รุ่นต่อไปในวันพรุ่งนี้.