20 Windows PowerShell คำสั่งที่คุณต้องรู้จัก
Windows PowerShell เป็นเชลล์บรรทัดคำสั่งใหม่ซึ่งก็คือ มีประสิทธิภาพมากขึ้นและสคริปต์ กว่าพรอมต์คำสั่ง จากประสบการณ์การใช้งานสามปีของฉันฉันพบว่ามีประโยชน์จริง ๆ โดยเฉพาะอย่างยิ่งถ้าคุณใช้ งานอัตโนมัติหรือสคริปต์. อย่างไรก็ตามพวกเราส่วนใหญ่ไม่รู้เกี่ยวกับมันหรือไม่ชอบที่จะใช้มันแทนเชลล์บรรทัดคำสั่งเก่า.
ในโพสต์นี้ฉันจะแบ่งปัน คำสั่งที่มีประโยชน์ แต่ตรงไปตรงมา (พร้อมตัวอย่าง) ของ Windows PowerShell คุณสามารถใช้คำสั่งเหล่านี้เพื่อทำงานให้สำเร็จจำนวนมากไม่ว่าจะเป็นการขอความช่วยเหลือไปจนถึงกระบวนการเริ่มต้น เราจะเริ่มไหม?
บันทึก: Windows PowerShell สร้างขึ้นด้วย ความเข้ากันได้ย้อนหลัง ในใจและสนับสนุนคำสั่งมากมายของ Command Prompt ที่กล่าวว่าคุณสามารถใช้คำสั่งเก่าในอินเทอร์เฟซใหม่ที่มีสีสัน.
รับความช่วยเหลือ [ช่วยเหลือ]
หากคุณยังใหม่กับ PowerShell คุณอาจพบปัญหา และในสถานการณ์เช่นนี้การขอความช่วยเหลือจะกลายเป็นผู้ช่วยเหลือของคุณ มันให้ ข้อมูลที่จำเป็นเกี่ยวกับ cmdlets คำสั่ง, ฟังก์ชันสคริปต์และเวิร์กโฟลว์ของ PowerShell.
ยิ่งกว่านั้นมันง่าย: คุณต้องพิมพ์ ขอความช่วยเหลือ
ตามด้วยคำสั่งที่คุณค้นหารายละเอียด ตัวอย่างเช่นคุณสามารถรับข้อมูลเกี่ยวกับ “Get-กระบวนการ” การใช้ รับความช่วยเหลือรับกระบวนการ
.
รับคำสั่ง [gcm]
Windows PowerShell อนุญาตให้ค้นหาคำสั่งและคุณสมบัติต่าง ๆ โดยใช้ Get-Command จะแสดงรายการของ คำสั่งของคุณสมบัติเฉพาะ หรือเพื่อวัตถุประสงค์เฉพาะตามพารามิเตอร์การค้นหาของคุณ.
คุณจะต้องพิมพ์ Get-คำสั่ง
ตามด้วยคำค้นหาของคุณใน PowerShell ตัวอย่างเช่น, รับคำสั่ง * - บริการ *
แสดงคำสั่งด้วย “-บริการ” ในชื่อ โปรดจำไว้ว่า ใช้เครื่องหมายดอกจันทั้งสองด้านของการสืบค้นของคุณ เพราะมันเป็นไวลด์การ์ดที่ช่วยในการค้นหาสิ่งแปลกปลอม.
เรียกใช้คำสั่ง [icm]
เมื่อคุณต้องการ เรียกใช้คำสั่งหรือสคริปต์ ของ PowerShell - ภายในเครื่องหรือระยะไกลบนคอมพิวเตอร์เครื่องเดียวหรือหลายเครื่อง - “เรียก-คำสั่ง” เป็นเพื่อนของคุณ. มันใช้งานง่ายและช่วยให้คุณควบคุมคอมพิวเตอร์แบบแบตช์.
คุณต้องพิมพ์ เรียก-คำสั่ง
ตามด้วยคำสั่งหรือสคริปต์ที่มีเส้นทางที่สมบูรณ์ ตัวอย่างเช่นคุณสามารถ เรียกใช้คำสั่ง “Get-EventLog” การใช้ เรียกใช้คำสั่ง -ScriptBlock ระบบ Get-EventLog ใหม่ล่าสุด 50
หรือบนคอมพิวเตอร์ระยะไกล “Server01” การใช้ เรียกใช้คำสั่ง -ScriptBlock ระบบ Get-EventLog ใหม่ล่าสุด 50 -ComputerName Server01
.
วิงวอน - แสดงออก [iex]
ก่อให้เกิดการแสดงออก รันคำสั่งหรือนิพจน์อื่น. หากคุณให้นิพจน์หรือสตริงเป็นอินพุตคำสั่งนี้จะประเมินค่าก่อนจากนั้นรันมัน แต่จะทำงานเฉพาะภายในเท่านั้นไม่เหมือนกับคำสั่งก่อนหน้า.
คุณต้องพิมพ์ ก่อให้เกิดการแสดงออก
ตามด้วยคำสั่งหรือการแสดงออก ตัวอย่างเช่นคุณสามารถกำหนดตัวแปร “$ คำสั่ง” ด้วยสตริงบอกคำสั่ง “Get-กระบวนการ”. เมื่อคุณวิ่ง เรียกใช้คำสั่ง $ Expression
, “Get-กระบวนการ” ได้รับการเรียกใช้เป็นคำสั่งในเครื่องคอมพิวเตอร์ของคุณ.
เรียกใช้ -R WebRequest [iwr]
คุณสามารถ ดาวน์โหลดเข้าสู่ระบบและขูดสำหรับข้อมูล บนเว็บไซต์และบริการเว็บขณะทำงานบน Windows PowerShell โดยใช้ Invoke-WebRequest.
คุณต้องใช้มันเหมือน เรียก-WebRequest
ตามด้วยพารามิเตอร์ ตัวอย่างเช่นคุณสามารถรับลิงก์ในหน้าเว็บที่กำหนดโดยใช้คำสั่งเป็น (เรียกใช้ -Request -Uri "https://docs.microsoft.com") .Links.Href
.
ตั้ง ExecutionPolicy
แม้ว่าการสร้างและการดำเนินการสคริปต์ (มีส่วนขยาย “PS1”) ใน Windows PowerShell เป็นไปได้; อย่างไรก็ตามมีข้อ จำกัด สำหรับวัตถุประสงค์ด้านความปลอดภัย แต่คุณทำได้ เปลี่ยนระดับความปลอดภัย ใช้คำสั่ง Set-ExecutionPolicy.
คุณสามารถพิมพ์ ตั้ง ExecutionPolicy
ตามด้วยหนึ่งในสี่ระดับความปลอดภัย - ถูก จำกัด , การลงชื่อทางไกล, การลงนามทั้งหมดหรือไม่ จำกัด เพื่อใช้คำสั่ง ตัวอย่างเช่นคุณสามารถกำหนดสถานะนโยบายที่ จำกัด ได้โดยใช้ Set-ExecutionPolicy -ExecutionPolicy Restricted
.
รับรายการ [gi]
หากคุณกำลังมองหา ข้อมูลเกี่ยวกับรายการ รับไฟล์ในฮาร์ดดิสก์ของคุณในตำแหน่งใด ๆ Get-Item เป็นวิธีที่ดีที่สุดในการรับมันใน Windows PowerShell คุณต้องรู้ว่า ไม่ได้รับเนื้อหาของรายการ, เช่นไฟล์และไดเรกทอรีย่อยในไดเรกทอรีที่กำหนดเว้นแต่คุณจะระบุไว้อย่างชัดเจน.
คุณต้องพิมพ์ รับรายการ
ตามด้วยเส้นทางหรือสตริงพร้อมกับพารามิเตอร์ถ้ามี ตัวอย่างเช่นคุณสามารถรับรายการทั้งหมด (ไฟล์หรือโฟลเดอร์) เริ่มต้นด้วย “M” ในไดเรกทอรีปัจจุบันโดยใช้ รับรายการ M *
. นอกจากเนื้อหาของไดเรกทอรีแล้วยังสามารถรับเนื้อหาของรีจิสตรีคีย์ได้อีกด้วย.
คัดลอก - รายการ [คัดลอก]
หากคุณต้องการ คัดลอกไฟล์และไดเรกทอรี บนดิสก์หน่วยเก็บข้อมูลหรือรายการรีจิสทรีและคีย์ในรีจิสทรีคุณสามารถใช้ Copy-Item มันทำหน้าที่คล้ายกับ “ซีพี” คำสั่งที่เรามีในพรอมต์คำสั่ง แต่มันจะดีกว่ามาก.
คุณสามารถใช้ประโยชน์จาก คัดลอกรายการ
คำสั่งไปที่ คัดลอกและเปลี่ยนชื่อรายการในคำสั่งเดียวกัน เช่นกัน - ให้ชื่อใหม่เป็นปลายทาง ตัวอย่างเช่นคุณสามารถคัดลอกและเปลี่ยนชื่อ “Services.htm” ไปยัง “MyServices.txt” การใช้ คัดลอกรายการ "C: \ Services.htm" -Destination "C: \ MyData \ MyServices.txt"
.
ลบรายการ [เดล]
ถ้าคุณต้องการ เพื่อลบรายการ เช่นไฟล์โฟลเดอร์ฟังก์ชั่นและรีจิสตรีคีย์และตัวแปร Remove-Item เป็นคำสั่งสำหรับคุณ สิ่งที่ฉันคิดว่าน่าสนใจคือมันมีพารามิเตอร์ในการรวมและแยกรายการ.
คุณสามารถใช้ประโยชน์จาก ลบรายการ
คำสั่งไปที่ ลบรายการออกจากตำแหน่งเฉพาะโดยใช้พารามิเตอร์. ตัวอย่างเช่นคุณสามารถลบไฟล์ “MyServices.txt” ด้วยคำสั่ง ลบรายการ "C: \ MyData \ MyServices.txt"
.
รับเนื้อหา [cat]
เมื่อคุณต้องการดูเนื้อหาของไฟล์ข้อความที่ตำแหน่งเฉพาะคุณเปิดและอ่านในตัวแก้ไขรหัส / ข้อความเช่น Notepad ++ ใน Windows PowerShell คุณสามารถใช้ Get-Content ได้ ดึงเนื้อหา โดยไม่ต้องเปิดไฟล์.
ตัวอย่างเช่นคุณสามารถดึงเนื้อหาได้ 50 บรรทัด “Services.htm”, จากนั้นคุณสามารถใช้ รับเนื้อหา "C: \ Services.htm" - ยอดรวม 50
.
ตั้งค่าเนื้อหา [SC]
คุณสามารถบันทึกข้อความเป็นไฟล์โดยใช้ Set-Content คล้ายกับ “เสียงสะท้อน” คำสั่งของ Bash Shell เมื่อรวมกับ Get-Content แล้วคุณยังสามารถ ดึงเนื้อหาของไฟล์หนึ่งไฟล์และคัดลอกไปยังไฟล์อื่น ใช้คำสั่งนี้.
ตัวอย่างเช่นคุณสามารถพิมพ์ ตั้งเนื้อหา
ไปยัง เขียนหรือแทนที่เนื้อหา ของไฟล์ที่มีเนื้อหาใหม่ ยิ่งกว่านั้นคุณสามารถรวมเข้ากับตัวอย่างของคำสั่งก่อนหน้าเพื่อบันทึกผลลัพธ์ลงในไฟล์ใหม่ที่ชื่อว่า “sample.txt” การใช้ รับเนื้อหา "C: \ Services.htm" - ยอดรวม 50 | ชุดเนื้อหา "Sample.txt"
.
รับตัวแปร [gv]
หากคุณต้องการใช้ตัวแปรใน Windows PowerShell คำสั่ง Get-Variable จะช่วยคุณได้ เห็นภาพค่าของตัวแปร. มันแสดงให้พวกเขาในรูปแบบตารางและช่วยให้รวมถึงการยกเว้นและการใช้สัญลักษณ์แทน.
คุณสามารถใช้คำสั่งนี้โดยการพิมพ์ Get-ตัวแปร
ตามด้วยตัวเลือกและพารามิเตอร์ ตัวอย่างเช่นคุณสามารถดึงค่าสำหรับชื่อตัวแปร “รายละเอียด” ใช้รหัสต่อไปนี้: รับ - ตัวแปร - ชื่อ "desc"
.
ตั้งค่าตัวแปร [ชุด]
คุณสามารถ กำหนดหรือเปลี่ยนแปลง / รีเซ็ตค่าของตัวแปร โดยใช้คำสั่ง Set-Variable เป็นทางลัดคุณสามารถตั้งค่าตัวแปรอย่างง่ายโดยใช้รูปแบบ $ $ VarName = VarValue $ เช่น $ desc = "A คำอธิบาย"
.
คุณสามารถใช้คำสั่ง ตั้งตัวแปร
ตามด้วยพารามิเตอร์เพื่อตั้งค่าตัวแปร ตัวอย่างเช่นเราสามารถตั้งค่าสำหรับตัวแปรที่ชื่อว่า “รายละเอียด” ใช้คำสั่ง ชุดตัวแปร - ชื่อ "desc" - ค่า "คำอธิบาย"
.
รับกระบวนการ [gps]
เรามักจะใช้ตัวจัดการงานเพื่อ ค้นหากระบวนการทำงาน บนคอมพิวเตอร์ของเรา ใน Windows PowerShell ทุกคนสามารถใช้ Get-Process เพื่อรับรายการกระบวนการที่กำลังทำงานอยู่ซึ่งคุณสามารถดำเนินการต่อไปได้เช่นกัน.
คุณสามารถเขียนคำสั่งเป็น Get-กระบวนการ
พร้อมกับคำค้นหาของคุณ ตัวอย่างเช่นหากคุณต้องการข้อมูลเกี่ยวกับกระบวนการด้วย “สำรวจ” ในชื่อของพวกเขาคุณสามารถพิมพ์ รับกระบวนการ * สำรวจ *
(บันทึกเครื่องหมายดอกจัน).
เริ่มกระบวนการ [saps]
Windows PowerShell ทำให้ง่ายต่อการ เริ่มหนึ่งกระบวนการขึ้นไป บนคอมพิวเตอร์ของคุณ ฉันพบว่าคำสั่งนี้มีประโยชน์ในแอพการเขียนสคริปต์เนื่องจากเป็นหนึ่งในคำสั่งที่ต้องมีที่คุณจะต้องใช้เพื่อทำงานอัตโนมัติ.
คุณสามารถพิมพ์ เริ่มต้นกระบวนการ
ตามด้วยพารามิเตอร์เพื่อใช้คำสั่ง ตัวอย่างเช่นคุณสามารถเริ่ม Notepad ได้โดยพิมพ์ เริ่มต้นกระบวนการ -FilePath "notepad" -Verb runAs
ใน Windows PowerShell.
หยุดกระบวนการ [ฆ่า]
คุณสามารถ หยุดกระบวนการที่เฉพาะเจาะจงหรือทั้งหมดของกระบวนการทำงาน บนคอมพิวเตอร์ของคุณโดยใช้ชื่อหรือ PID (ID กระบวนการ) ต้องขอบคุณคำสั่ง Stop-Process สิ่งที่ทำให้มันน่าสนใจคือคุณสามารถตรวจสอบกระบวนการหยุดทำงานหรือไม่และคุณสามารถหยุดกระบวนการที่ผู้ใช้ปัจจุบันไม่ได้เป็นเจ้าของหรือเริ่มต้นได้.
คุณสามารถพิมพ์คำสั่ง หยุดกระบวนการ
ตามด้วยพารามิเตอร์เพื่อหยุดกระบวนการที่กำหนด ตัวอย่างเช่นคุณสามารถหยุดกระบวนการทั้งหมดของ Notepad โดยใช้คำสั่ง หยุดกระบวนการ - ชื่อ "notepad"
.
รับบริการ [gsv]
เมื่อคุณต้องการ ข้อมูลเกี่ยวกับบริการเฉพาะ (ทำงานหรือหยุดทำงาน) บนคอมพิวเตอร์ของคุณคุณสามารถใช้ Get-Service มันแสดงบริการที่ติดตั้งในระบบของคุณและให้ตัวเลือกในการกรองและรวมและแยกพวกเขา.
หากคุณต้องการใช้คำสั่งนี้คุณสามารถพิมพ์ รับบริการ
ตามด้วยพารามิเตอร์ ตัวอย่างเช่นพิมพ์ดังต่อไปนี้ รับบริการ | โดยที่-Object $ _. Status -eq "Running"
เพื่อรับบริการ “วิ่ง” ในระบบของคุณ.
บริการเริ่มต้น [sasv]
หากคุณต้องการ เริ่มบริการ บนคอมพิวเตอร์ของคุณคำสั่ง Start-Service สามารถช่วยคุณทำสิ่งเดียวกันได้จาก Windows PowerShell ฉันพบว่ามันทรงพลังพอที่จะเริ่มบริการแม้ว่าบริการนั้นจะปิดการใช้งานบนคอมพิวเตอร์ของคุณ.
คุณต้องระบุชื่อของบริการในขณะที่ใช้คำสั่ง เริ่มบริการ
. ตัวอย่างเช่น, เริ่มบริการ - ชื่อ "WSearch"
เริ่มบริการ “ค้นหา Windows” บนเครื่องคอมพิวเตอร์ของคุณ.
หยุดบริการ [spsv]
หากคุณต้องการ หยุดบริการที่ทำงานอยู่ ในคอมพิวเตอร์ของคุณคำสั่ง Stop-Service จะเป็นประโยชน์ คุณต้องระบุชื่อของบริการพร้อมกับ หยุดบริการ
. ตัวอย่างเช่นพิมพ์ หยุดบริการ - ชื่อ "WSearch"
เพื่อหยุดบริการ “ค้นหา Windows” บนคอมพิวเตอร์ของคุณ.
ConvertTo-HTML
PowerShell สามารถให้ข้อมูลที่น่าอัศจรรย์เกี่ยวกับระบบของคุณ อย่างไรก็ตามส่วนใหญ่จะมีการนำเสนอในรูปแบบที่ย่อยไม่ได้ แต่คุณสามารถใช้ ConvertTo-HTML เพื่อ สร้างและจัดรูปแบบรายงาน เพื่อวิเคราะห์หรือส่งมันให้ใครบางคน.
คุณสามารถใช้ได้ ConvertTo-HTML
พร้อมกับเอาต์พุตของคำสั่งอื่นโดยใช้ piping ตัวอย่างเช่น รับบริการ | ConvertTo-HTML- ชื่อคุณสมบัติสถานะ> C: \ Services.htm
แสดงรายการบริการทั้งหมดและสถานะของบริการในรูปแบบของรายงานทางเว็บซึ่งจัดเก็บไว้ในไฟล์ “Services.htm”.
นั่นคือทั้งหมดที่เกี่ยวกับคำสั่งที่จำเป็น .