โฮมเพจ » ทำอย่างไร » Geek School เรียนรู้การใช้ Cmdlets ใน PowerShell

    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 รุ่นต่อไปในวันพรุ่งนี้.