PowerShell ใน windows 7 คืออะไร พื้นฐานของ Windows PowerShell Cmdlet ใน PowerShell

สวัสดีทุกคน! วันนี้มีบันทึกสั้น ๆ ในหัวข้อ วิธีเปิด PowerShell ในฐานะผู้ดูแลระบบ. ฉันขอเตือนคุณว่า PowerShell เป็นภาษาการเขียนโปรแกรมและการดูแลระบบที่ทรงพลังจาก Microsoft ซึ่งเติบโตขึ้นทุกปีและทุกอย่าง ปริมาณมาก cmdlets และฟังก์ชันการทำงาน โดยพื้นฐานแล้วมันเป็นการแทนที่ Windows Command Prompt ด้านล่างนี้เราจะพิจารณาวิธีการที่ช่วยให้คุณสามารถเปิดและกำหนดค่าได้
.

วิธีการเปิดสแน็ปอิน PowerShell

Powershell กำลังพัฒนาเป็นอย่างดีและด้วยการเปิดตัว Windows 10 ก็ได้รับเวอร์ชัน 5 แล้ว แต่หัวข้อของเราแตกต่างออกไป ดังนั้นวิธีการเปิด PowerShell? ทุกอย่างเป็นเรื่องง่ายถ้าใน Windows XP ก็ไม่มีอะไรเลย เนื่องจากมีการจัดส่งแยกต่างหาก ในรุ่นต่อๆ ไปทั้งหมดจึงมาเป็นส่วนประกอบในตัว ที่สุด วิธีการสากลเปิด PowerShell คลิกนี้

Win + R และเข้าสู่ PowerShell

เมื่อกด Enter คอนโซล PowerShell จะเปิดตัว ปัญหาเดียวคือจะไม่เปิดในฐานะผู้ดูแลระบบ และเป็นผลให้คำสั่งจำนวนมากไม่ถูกดำเนินการด้านล่างเราจะดูวิธีดำเนินการในนามของผู้ดูแลระบบ

วิธีเรียกใช้ windows PowerShell ในฐานะผู้ดูแลระบบใน Windows 8.1 และ Windows 7

คุณสามารถเปิด Windows Powershell ได้ผ่านทาง Start ใน Windows 8.1, Windows 2012 R2 ให้ไปที่เครื่องมือระบบ - Windows แล้วคลิกขวาและเลือก Run as administrator

ใน Windows 7 และ Windows 2008 R2 ดูเหมือนว่า Start > Accessories > Windows PowerShell

คุณยังสามารถสร้างทางลัดในรายการงานและคลิกขวาที่มันแล้วเลือกรายการที่เหมาะสม

คงจะสะดวกกว่าถ้า PowerShell เปิดในฐานะผู้ดูแลระบบเสมอมาลองใช้ดู ซึ่งทำในลักษณะเดียวกันใน Windows ทุกรุ่น การเปิดแผงควบคุม

คลิกขวาที่มันแล้วเลือกคุณสมบัติ คุณสามารถดูเส้นทางไปยังไฟล์ที่อยู่ในระบบได้ทันที

คลิกปุ่ม "ขั้นสูง" คุณจะเห็นคุณสมบัติเพิ่มเติม โดยที่คุณต้องทำเครื่องหมายที่ช่อง Run as administrator

ทุกอย่างง่ายมาก ฉันแน่ใจว่าตอนนี้คุณจะไม่มีคำถามเกี่ยวกับวิธีเปิด Windows Powershell สิ่งที่มีประโยชน์อีกอย่างคือการเปลี่ยนแบบอักษรในหน้าต่าง PowerShell

วิธีเปิด PowerShell จากเมนูบริบทของปุ่มเริ่มใน Windows 10

Microsoft ให้ความสำคัญกับเรื่องนี้มากขึ้นเรื่อยๆ บรรทัดคำสั่งไปสู่ภาษาที่แข็งแกร่ง (PowerShell) และนี่ก็สมเหตุสมผลเนื่องจากความสามารถในการจัดการระบบปฏิบัติการ ครอบครัววินโดวส์เกือบจะไร้ขีดจำกัด ยิ่งกว่าอินเทอร์เฟซแบบกราฟิก เริ่มต้นด้วย เวอร์ชันของ Windows 10 1709 ในเมนูบริบท PowerShell แทนที่ cmd ปกติสำหรับทุกคน คลิกขวาที่ปุ่มเริ่มต้นใน Windows 10 และจากเมนูบริบทเลือกรายการที่เหมาะสม:

  1. วินโดว์ PowerShell
  2. Windows PowerShell (ผู้ดูแลระบบ) เป็นโหมดที่มีสิทธิ์สูงสุดใน Windows 10

เปิดใช้ Windows PowerShell โดยใช้การค้นหาใน Windows 10

บน Windows 10 และเวอร์ชันเก่ากว่า คุณสามารถค้นหา PowerShell ได้ ค้นหาเป็นประจำมีส่วนพิเศษสำหรับเรื่องนี้ คลิกถัดจากปุ่มเริ่ม ไอคอนรูปแว่นขยาย ในแบบฟอร์มการค้นหาที่เปิดขึ้น ให้ป้อนคำว่า PowerShell คุณจะค้นหาตัวเลือกทั้งหมดโดยคุณจะพบเชลล์ หากคุณคลิกขวาคุณสามารถเปิดได้ในฐานะผู้ดูแลระบบ

การเปิดตัว Windows PowerShell จากเมนู Start ใน Windows 10

หากต้องการเปิด PowerShell จากเมนู Start ให้เปิดและค้นหารายการ Windows PowerShell ซึ่งจะอยู่ในรูปแบบของโฟลเดอร์เปิดและเรียกใช้เวอร์ชันที่เหมาะสม

หากคุณคลิกขวา คุณสามารถเรียกใช้ Vershel Shell ในฐานะผู้ดูแลระบบที่มีสิทธิ์ผู้ดูแลระบบได้

วิธีการเปิดใช้เชลล์เพิ่มเติมและทั่วไป

นอกจากนี้ยังมีวิธีการเฉพาะในการเปิดเชลล์ด้วยภาษาอันทรงพลังจาก Microsoft ที่เงอะงะที่สุดก็หาง่าย ไฟล์ปฏิบัติการและรันโดยตรงจากตำแหน่งบนระบบ ไปที่ Windows 10 ของคุณตามเส้นทางต่อไปนี้:

C:\Users\ชื่อผู้ใช้\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell

ด้วยเหตุนี้คุณจะเห็นโฟลเดอร์พร้อมทางลัดที่มีอยู่ในเมนู Start คุณสามารถเปิดใช้งานได้

คุณยังสามารถเรียกใช้ไฟล์ปฏิบัติการต้นฉบับซึ่งอยู่ตามเส้นทาง:

C:\Windows\System32\WindowsPowerShell\v1.0

และเมื่อคลิกขวา คุณจะสามารถดาวน์โหลดได้ในฐานะผู้ดูแลระบบ โดยมีสิทธิ์สูงสุด

คุณยังสามารถเปิด Windows PowerShell ได้จากหน้าต่างบรรทัดคำสั่ง โดยเพียงป้อนคำวิเศษลงไปแล้วกด Enter

ฉันขอเตือนคุณถึงวิธีการเปิดตัวงานใหม่จากสแน็ปอิน "ตัวจัดการงาน" เปิด "ตัวจัดการงาน" เลือกรายการเมนู "ไฟล์ - เรียกใช้งานใหม่"

ในหน้าต่างที่ปรากฏขึ้น ให้ป้อน PowerShell

วิธีสุดท้ายที่ฉันรู้จักคือเปิด PowerShell ผ่านทาง วินโดวส์เอ็กซ์พลอเรอร์ในการดำเนินการนี้ให้เปิด Explorer เลือกรายการเมนู "ไฟล์ - เรียกใช้ Windows PowerShell" จะมีทั้งสองโหมด

PowerShell ISE คืออะไร

คุณอาจสังเกตเห็นว่าทางลัด PowerShell ISE มีอยู่ทุกที่ และคุณต้องการทราบว่าทางลัดคืออะไร โดยสรุป นี่คือเชลล์พิเศษที่คุณสามารถเขียนสคริปต์และสถานการณ์ใน PowerShell ได้โดยใช้ cmdlets ที่หลากหลายทั้งหมดที่ Microsoft เสนอให้คุณ

Powershell การเปลี่ยนแบบอักษรนั้นง่ายมาก ไปที่แท็บแบบอักษรในคุณสมบัติ ซึ่งคุณสามารถกำหนดขนาดได้ตั้งแต่ 5 ถึง 72

คุณยังสามารถเข้าถึงคุณสมบัติได้จากหน้าต่างยูทิลิตี้ โดยคลิกที่ไอคอนที่มุมซ้ายบนแล้วเลือกคุณสมบัติ

ที่นี่การตั้งค่าแบบอักษรจะแตกต่างกันเล็กน้อย และเมื่อมีการเปลี่ยนแปลง ขนาดของคอนโซลก็จะเปลี่ยนไปด้วย

บนแท็บสี คุณสามารถตั้งค่าสีแบบอักษรใน Powershell และหน้าต่างได้ โดยทำให้เป็นสีดำ เช่น เหมือนกับบรรทัดคำสั่ง

ฉันขอแนะนำด้วยว่าหากคุณเป็นผู้ใช้คอนโซลที่ใช้งานอยู่ ให้ตั้งค่าขนาดบัฟเฟอร์ไม่ใช่ 50 คำสั่ง แต่อย่างน้อยเป็น 100

ขอขอบคุณสำหรับความสนใจของคุณ. นี่คือวิธีการเปิดคอนโซล Power Shell ใน Windows วัสดุของไซต์

ผู้ใช้หลายคนรู้เกี่ยวกับ Command Prompt แต่มีน้อยคนที่เคยได้ยินเกี่ยวกับ Windows PowerShell ในแง่หนึ่ง PowerShell เป็นเครื่องมือที่มีจุดมุ่งหมายเพื่อแทนที่บรรทัดคำสั่งและให้ความสามารถที่มีประสิทธิภาพมากขึ้นในการจัดการระบบปฏิบัติการ Windows ในบทความนี้ เราจะพยายามอธิบายให้ชัดเจนว่าเครื่องมือนี้คืออะไร เหตุใดจึงมีประสิทธิภาพมากและใครมีแนวโน้มที่จะใช้บ่อยที่สุด

PowerShell คืออะไร?

เพื่อความเข้าใจที่ดีขึ้น เราต้องเข้าใจก่อนว่าเปลือกหอยคืออะไร ในวิทยาการคอมพิวเตอร์ เชลล์เป็นส่วนติดต่อผู้ใช้ที่ให้การเข้าถึงบริการต่างๆ ระบบปฏิบัติการ. เชลล์อาจเป็นบรรทัดคำสั่งหรืออาจมีส่วนติดต่อผู้ใช้แบบกราฟิก (GUI)

Windows PowerShell เป็นเชลล์ที่พัฒนาโดย Microsoft สำหรับการทำงานอัตโนมัติและการจัดการการกำหนดค่า เชลล์อันทรงพลังนี้ใช้เฟรมเวิร์ก .NET และมีเชลล์บรรทัดคำสั่งและภาษาสคริปต์

อาจมี Windows PowerShell ISE อยู่ด้านบนของเชลล์บรรทัดคำสั่งมาตรฐาน ISE ทำหน้าที่เป็นสภาพแวดล้อมการเขียนสคริปต์แบบรวม - ส่วนติดต่อผู้ใช้แบบกราฟิกที่ช่วยให้คุณสามารถสร้างสคริปต์ต่างๆ ได้โดยไม่ต้องป้อนคำสั่งทั้งหมดบนบรรทัดคำสั่ง

PowerShell เวอร์ชันแรกเปิดตัวในเดือนพฤศจิกายน พ.ศ. 2549 สำหรับ Windows XP วินโดวส์เซิร์ฟเวอร์พ.ศ. 2546 และ วินโดวส์วิสต้า. ล่าสุดคือเวอร์ชัน 4.0 ซึ่งเปิดตัวในเดือนตุลาคม 2556 โดยมาพร้อมกับ Windows 8.1 และ Windows Server 2012 R2 เป็นค่าเริ่มต้น

คุณสามารถทำอะไรกับ PowerShell ได้บ้าง?

Microsoft พัฒนา Windows PowerShell เป็นเครื่องมือที่ช่วยให้ทำงานอัตโนมัติและแก้ไขงานธุรการที่น่าเบื่อได้อย่างรวดเร็ว ตัวอย่างเช่น คุณสามารถใช้ PowerShell เพื่อดูอุปกรณ์ USB ทั้งหมดที่ติดตั้งบนคอมพิวเตอร์ตั้งแต่หนึ่งเครื่องขึ้นไปบนเครือข่าย หรือคุณสามารถตั้งค่างานที่ใช้เวลานานในการทำงาน พื้นหลังในขณะที่คุณทำงานอื่น คุณยังสามารถระบุและยุติกระบวนการที่ไม่ตอบสนอง หรือกรองข้อมูลเฉพาะเกี่ยวกับคอมพิวเตอร์ในเครือข่ายของคุณและส่งออกในรูปแบบ HTML

ความสามารถของ PowerShell ช่วยให้คุณสามารถลดความซับซ้อนและทำให้งานที่ต้องใช้เวลาและซ้ำซ้อนเป็นอัตโนมัติโดยการสร้างสคริปต์และรวมคำสั่งหลายคำเข้าด้วยกัน

หากคุณเป็นผู้ดูแลระบบเครือข่าย คุณจะพบว่า PowerShell มีประโยชน์มากเมื่อใช้งานด้วย ไดเรกทอรีที่ใช้งานอยู่. เมื่อพิจารณาว่าเครื่องมือนี้มีคำสั่งที่ปรับแต่งได้หลายร้อยคำสั่งที่เรียกว่า cmdlets โอกาสที่ PowerShell จะช่วยให้คุณมีประสิทธิผลมากขึ้นนั้นมีสูงมาก

จะรัน PowerShell บน Windows 8.1 ได้อย่างไร

หากคุณไม่มีไทล์ PowerShell บนหน้าจอเริ่มต้นหรือทางลัดบนเดสก์ท็อปของคุณ คุณสามารถเปิดโดยใช้การค้นหาได้ ซึ่งเป็นหนึ่งในตัวเลือกส่วนใหญ่ วิธีง่ายๆ. กด +Q พิมพ์ "powershell" จากนั้นกด Enter

คุณยังสามารถเปิด PowerShell ได้จากส่วนแอปพลิเคชันของหน้าจอเริ่มต้นของคุณ: ไปที่ หน้าจอหลักแล้วเลื่อนเคอร์เซอร์ไปที่มุมซ้ายล่าง ใต้ไทล์สุดท้ายในคอลัมน์แรก คลิกที่ไอคอนที่มีลูกศรชี้ลง จากนั้นคลิกที่ไอคอน PowerShell ในส่วน "ยูทิลิตี้"

หากต้องการเปิด PowerShell โดยใช้กล่องโต้ตอบ Run ให้กด +R พิมพ์ "powershell" แล้วกด Enter

วิธีเรียกใช้ PowerShell บน Windows 7

ใน Windows 7 คุณสามารถค้นหาเครื่องมือได้โดยค้นหา "powershell" ในเมนู Start

คุณยังสามารถเปิด PowerShell ผ่านเมนู Start ในส่วน Accessories

เห็นได้ชัดว่าคำสั่งดังกล่าวในหน้าต่าง Run ทำงานได้ใน Windows 7 เช่นกัน

ใครมักจะใช้ PowerShell?

ไม่ต้องสงสัยเลยว่า PowerShell เป็นตัวเลือกของผู้ดูแลระบบไอทีจำนวนมาก และด้วยเหตุผลที่ดีเพราะเครื่องมือนี้ช่วยลดความยุ่งยากในการจัดการและลดปริมาณงานในวงกว้าง เครือข่ายองค์กร.

สมมติว่าคุณจัดการเครือข่ายขนาดใหญ่ที่มีเซิร์ฟเวอร์มากกว่าห้าร้อยเซิร์ฟเวอร์ และคุณจำเป็นต้องใช้โซลูชันการรักษาความปลอดภัยใหม่ที่ขึ้นอยู่กับบริการบางอย่างที่จำเป็นต้องทำงานบนเซิร์ฟเวอร์เหล่านั้น แน่นอน คุณสามารถเชื่อมต่อกับแต่ละเซิร์ฟเวอร์และดูว่าบริการที่จำเป็นได้รับการติดตั้งและทำงานบนเซิร์ฟเวอร์เหล่านั้นหรือไม่ อย่างไรก็ตาม ในกรณีนี้ ฝ่ายบริหารของคุณไม่น่าพอใจ เนื่องจากคุณจะต้องใช้เวลามากเกินไปในการทำงานให้เสร็จสิ้น

กับ โดยใช้ PowerShellคุณสามารถทำงานนี้ได้ภายในไม่กี่นาที เนื่องจากการดำเนินการทั้งหมดสามารถทำได้ด้วยสคริปต์เดียวที่จะรวบรวมข้อมูลเกี่ยวกับบริการที่ทำงานบนเซิร์ฟเวอร์ที่ระบุและบันทึกเป็นไฟล์ข้อความ เช่น

PowerShell ช่วยให้คุณทำสิ่งต่างๆ ได้มากกว่าที่จะกล่าวถึงในบทความเดียว ดังนั้นหากคุณสนใจจริงๆ เราขอแนะนำให้คุณซื้อและอ่านหนังสือหลายเล่มที่ครอบคลุมประสิทธิภาพของเครื่องมือนี้

ขอให้มีวันที่ดี!

ในบทความนี้เราจะดูเทคโนโลยีดังกล่าวจาก Microsoft เช่น วินโดว์ PowerShellเราจะพูดถึงว่า PowerShell คืออะไร cmdlets และไปป์ไลน์คืออะไร วิธีเขียนสคริปต์และโมดูล และยังกล่าวถึงคุณสมบัติอื่นๆ ที่สำคัญและมีประโยชน์ไม่แพ้กันของ Windows PowerShell

ก่อน PowerShell มี ( และมี) เครื่องมือต่อไปนี้สำหรับระบบอัตโนมัติและการดูแลระบบบริการ: บรรทัดคำสั่งของ Windows และโฮสต์สคริปต์ของ Windows แต่เทคโนโลยีเหล่านี้ก็มีข้อเสีย

ที่ทีมงาน สตริงของ Windowsนอกจากนี้ยังมีโอกาสในการทำงานด้านการดูแลระบบและความสามารถในการเขียนอัลกอริธึมของการกระทำโดยบันทึกเป็นสคริปต์ (ไฟล์ค้างคาว) ในขณะที่คุณสามารถใช้องค์ประกอบการเขียนโปรแกรมบางอย่างได้เช่นใช้ตัวแปร โครงสร้างแบบมีเงื่อนไข และแม้กระทั่ง บางอย่างเช่นลูป

ผลิตภัณฑ์ซอฟต์แวร์ส่วนใหญ่มีอินเทอร์เฟซคอนโซล เช่น เราสามารถจัดการโปรแกรมโดยใช้บรรทัดคำสั่งในขณะที่ประหยัดทรัพยากรเนื่องจากไม่มีค่าใช้จ่ายในการทำงาน กุย. Microsoft ยังเผยแพร่รุ่นที่ไม่มีอินเทอร์เฟซแบบกราฟิกสำหรับระบบปฏิบัติการเซิร์ฟเวอร์ Windows Server ( Server Core, Windows Server 2016 ยังมี Nano Server อีกด้วย) แต่ทั้งหมดนี้ยังไม่เพียงพอ เนื่องจากความสามารถของบรรทัดคำสั่งมีจำกัด เช่น เราจะไม่สามารถเขียนตรรกะที่ซับซ้อนเพื่อทำให้บางสิ่งบางอย่างเป็นอัตโนมัติได้ และถึงแม้ว่าเราจะทำได้ แต่ก็ต้องใช้เวลาและความรู้

นอกจากนี้ข้อเสียของบรรทัดคำสั่งก็คือในการจัดการเซิร์ฟเวอร์อย่างสมบูรณ์เราใช้ยูทิลิตี้คอนโซลต่างๆ ของผลิตภัณฑ์ซอฟต์แวร์ ดังนั้นการใช้บรรทัดคำสั่งในการดูแลระบบจึงเป็นเรื่องยากจริง ๆ จากมุมมองของความจริงที่ว่ายูทิลิตี้เหล่านี้ทั้งหมดมีความแตกต่างกัน ไวยากรณ์ พารามิเตอร์ วิธีการใช้ และเพื่อการปฏิบัติงานทั่วไป เช่น ทุกวัน คุณต้องเก็บทั้งหมดนี้ไว้ในความทรงจำ และในการทำงานที่ผิดปกติ คุณต้องอ่านวิธีใช้หรือเอกสารประกอบก่อน

เทคโนโลยี Windows Script Host ช่วยให้คุณสามารถทำงานด้านการดูแลระบบทั้งหมดเป็นบรรทัดคำสั่งรวมถึงการทำงานอัตโนมัติด้วยการเขียนสคริปต์ WSH แต่ที่นี่เราสามารถใช้ภาษาการเขียนโปรแกรมที่มีคุณสมบัติครบถ้วนแล้ว ( VBScript และ JScript), เช่น. สามารถใช้ตรรกะและอัลกอริธึมที่ซับซ้อนได้ นอกจากนี้ ด้วยความช่วยเหลือของ WSH เราจัดการผลิตภัณฑ์ซอฟต์แวร์ผ่านอินเทอร์เฟซอ็อบเจ็กต์ กล่าวอีกนัยหนึ่ง Windows Script Host มีมากกว่านั้นมาก” เย็นกว่า» กว่าบรรทัดคำสั่ง แต่ เทคโนโลยีนี้ยังไม่ได้กลายเป็นเครื่องมือในอุดมคติสำหรับการบริหารและระบบอัตโนมัติของการบริหารนี้ ผู้ดูแลระบบเนื่องจาก Windows Script Host ต้องการความรู้เกี่ยวกับภาษาการเขียนโปรแกรมข้างต้น ซึ่งจริงๆ แล้วไม่จำเป็นสำหรับผู้ดูแลระบบ ผู้ดูแลระบบต้องการเพียงเครื่องมือการดูแลระบบแบบง่ายๆ ที่สามารถตั้งโปรแกรมการดำเนินการบางอย่างได้ และพวกเขาไม่ต้องการเจาะลึกโมเดลออบเจ็กต์ของผลิตภัณฑ์ซอฟต์แวร์ในภาษาการเขียนโปรแกรม VBScript และ JScript

เป็นผลให้ Microsoft จำเป็นต้องพัฒนาเครื่องมือการดูแลระบบสำหรับผู้ดูแลระบบที่จะตอบสนองทุกความต้องการของผู้ดูแลระบบได้ 100 เปอร์เซ็นต์ทั้งในแง่ของความสามารถในการดูแลระบบและระบบอัตโนมัติและในแง่ของความสะดวกสบายและความสะดวกในการใช้งาน Windows PowerShell จึงปรากฏขึ้น

Windows PowerShell คืออะไร

วินโดว์ PowerShellเป็นภาษาสคริปต์ Windows และเชลล์คำสั่งที่ออกแบบมาสำหรับการจัดการและกำหนดค่าระบบปฏิบัติการ Windows PowerShell ถูกสร้างขึ้นบนกรอบงาน CRL และ .NET Framework และ Windows PowerShell ทำงานร่วมกับอ็อบเจ็กต์ต่างจากบรรทัดคำสั่งที่ยอมรับและส่งกลับข้อความ แต่ละวัตถุใน PowerShell มีคุณสมบัติและวิธีการที่คุณสามารถใช้เพื่อจัดการวัตถุเหล่านั้น

บนวินโดวส์ ไมโครซอฟต์ พาวเวอร์เชลล์พัฒนาแนวคิดของ cmdlets ( cmdlet) ซึ่งเป็นระบบการตั้งชื่อคำสั่ง " กริยานาม" ระบบนี้ช่วยให้ผู้ดูแลระบบสามารถควบคุมและลดความซับซ้อนในการทำงานกับ PowerShell ได้อย่างรวดเร็ว

กับ ใช้วินโดวส์ PowerShell สามารถ:

  • เข้าถึงระบบไฟล์
  • จัดการรีจิสทรี
  • จัดการบริการ
  • จัดการกระบวนการ
  • กำหนดค่าระบบปฏิบัติการ
  • ติดตั้งซอฟต์แวร์
  • ติดตั้งบทบาทและส่วนประกอบของเซิร์ฟเวอร์
  • จัดการและกำหนดค่าบทบาทและส่วนประกอบของเซิร์ฟเวอร์
  • เขียนและใช้สคริปต์เพื่อทำให้การจัดการและการดูแลระบบเป็นแบบอัตโนมัติ
  • ดำเนินงานอื่นๆ ของผู้ดูแลระบบ

Windows PowerShell มียูทิลิตี้และคำสั่งที่ใช้กันทั่วไปมากมายที่คุณสามารถเรียกใช้จากบรรทัดคำสั่ง เช่น ipconfig, ping และอื่นๆ สิ่งนี้ทำเพื่ออำนวยความสะดวกในการเปลี่ยนผู้ดูแลระบบจากบรรทัดคำสั่งเป็น PowerShell

นอกจากนี้ เพื่อความสะดวก คำสั่งและยูทิลิตีที่ใช้บ่อยจำนวนมากใน PowerShell มีคำพ้องความหมาย ( นามแฝง) ตัวอย่างเช่น cls เป็นคำพ้องสำหรับ Clear-Host cmdlet ส่วน dir เป็นคำพ้องสำหรับ Get-ChildItem ( รายการทั้งหมดสามารถดูคำพ้องความหมายได้โดยการเรียกใช้ Get-Alias ​​cmdlet).

เพื่อให้การค้นหาคำสั่งที่ต้องการง่ายขึ้น PowerShell มี cmdlet Get-Command พิเศษซึ่งคุณสามารถค้นหาทั้งคำกริยาและคำนาม คำสั่งทั้งหมดใน Windows PowerShell ถูกจัดกลุ่มเป็นโมดูล ( เช่น Hyper-V, NetTCPIP) ซึ่งทำให้ค้นหาคำสั่งที่ถูกต้องได้ง่ายขึ้น

เมื่อพบคำสั่งที่ต้องการแล้ว คุณสามารถดูคำแนะนำในการทำงานกับคำสั่งนี้ได้ เช่น ช่วยด้วย มี Get-Help cmdlet พิเศษสำหรับวัตถุประสงค์เหล่านี้ ตัวอย่างเช่น คำสั่งต่อไปนี้จะแสดงความช่วยเหลือสำหรับ Get-Command cmdlet:

รับ-ช่วยเหลือ รับ-คำสั่ง

วิธีใช้ Windows PowerShell อาจสั้นและมีรายละเอียด ( พารามิเตอร์-รายละเอียด), เต็ม ( พารามิเตอร์ -เต็ม) และคุณยังสามารถแสดงเฉพาะตัวอย่าง ( พารามิเตอร์ - ตัวอย่าง). คำสั่งต่อไปนี้จะแสดงเฉพาะตัวอย่างการใช้ Get-Command cmdlet:

รับ-ช่วยเหลือ รับ-คำสั่ง -ตัวอย่าง

วิธีใช้ PowerShell สามารถอัปเดตได้ เช่น สามารถอัพเดตได้ด้วยคำสั่ง Update-Help

เวอร์ชัน Windows PowerShell

PowerShell 1.0 เวอร์ชันแรกปรากฏเมื่อวันที่ 14 พฤศจิกายน พ.ศ. 2549 และเผยแพร่ในรูปแบบการแจกจ่ายแยกต่างหากที่สามารถติดตั้งบนระบบปฏิบัติการ Windows รุ่นต่อไปนี้: Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 และ Windows Vista

ใน Windows Server 2008 PowerShell 1.0 มาเป็นส่วนประกอบที่ต้องติดตั้งด้วย

เริ่มต้นด้วย Windows 7 และ Windows Server 2008 R2 PowerShell มาเป็นส่วนประกอบสำคัญของระบบ ( เหล่านั้น. ติดตั้งไว้ล่วงหน้าแล้ว ไม่ต้องติดตั้ง). ด้านล่างนี้เป็นตารางการติดต่อระหว่างเวอร์ชันของ PowerShell และเวอร์ชันของระบบปฏิบัติการ Windows ( เหล่านั้น. PowerShell เวอร์ชันใดที่ติดตั้งตามค่าเริ่มต้นใน Windows เวอร์ชันใด):

เวอร์ชัน PowerShell เวอร์ชันของ Windows
พาวเวอร์เชลล์ 2.0 วินโดวส์ 7, วินโดวส์เซิร์ฟเวอร์ 2008 R2
พาวเวอร์เชลล์ 3.0 วินโดวส์ 8, วินโดวส์เซิร์ฟเวอร์ 2012
พาวเวอร์เชลล์ 4.0 วินโดวส์ 8.1, วินโดวส์เซิร์ฟเวอร์ 2012 R2
พาวเวอร์เชลล์ 5.0 วินโดวส์ 10, วินโดวส์เซิร์ฟเวอร์ 2016

กับแต่ละ เวอร์ชั่นใหม่ PowerShell กำลังกลายเป็นเครื่องมือการดูแลระบบที่ทรงพลังมากขึ้น เมื่อเปรียบเทียบกันแล้ว PowerShell ตัวแรกมีขนาดประมาณ 130 cmdlets และตอนนี้ PowerShell 5.0 มีมากกว่า 600 cmdlets!

ที่จะรู้ว่า รุ่นปัจจุบันใน PowerShell คุณสามารถใช้คุณสมบัติ PSVersion ของตัวแปรบิวด์อิน $PSVersionTable ได้ เช่น เรียกใช้คำสั่งต่อไปนี้:

$PSVersionTable.PSVersion

หรือเรียกใช้ cmdlet

รับตัวแปร-ชื่อ PSVersionTable –ValueOnly

โดยที่ค่า PSVersion จะเป็นเวอร์ชัน PowerShell

ภาษาของพาวเวอร์เชลล์

พาวเวอร์เชลล์เป็นภาษาโปรแกรมการเขียนสคริปต์เชิงวัตถุ ใช้เพื่อเขียนคำสั่งเพื่อควบคุมส่วนประกอบทั้งหมดของระบบปฏิบัติการ Windows ใน Windows PowerShell รวมถึงเขียนสคริปต์เพื่อทำให้งานการดูแลระบบเป็นแบบอัตโนมัติในสภาพแวดล้อมแบบรวม สคริปต์ Windowsพาวเวอร์เชลล์ (ISE) แม้ว่าภาษา PowerShell จะถูกสร้างขึ้นสำหรับงานการดูแลระบบ แต่ก็เป็นภาษาการเขียนโปรแกรมการเขียนสคริปต์ที่มีคุณสมบัติครบถ้วน เนื่องจากมีโครงสร้างของโปรแกรมที่มีอยู่ในทุกภาษาการเขียนโปรแกรม เช่น เงื่อนไข ลูป การจัดการข้อผิดพลาด การทำงานกับตัวแปร อ็อบเจ็กต์ และ อาร์เรย์

ภาษา PowerShell มีไวยากรณ์ที่เหมือนกันสำหรับการเขียนคำสั่งและโครงสร้างการตั้งชื่อสำหรับคำสั่งเหล่านี้ตามหลักการ “ กริยานาม", เขากำลังทำอะไร ภาษาที่กำหนดใช้งานง่ายสำหรับทั้งโปรแกรมเมอร์และผู้ดูแลระบบ

วินโดว์ PowerShell

วินโดว์ PowerShellเป็นสภาพแวดล้อมสำหรับการรันคำสั่งและสคริปต์ใน PowerShell เชลล์นี้มีความสามารถเช่นเดียวกับบรรทัดคำสั่ง เช่น การจัดเก็บประวัติการดำเนินการคำสั่ง การตั้งค่า รูปร่างเชลล์ กรอกคำสั่งให้สมบูรณ์ด้วยคีย์ผสม Ctrl+C รวมถึงคุณสมบัติอื่น ๆ ที่ไม่มีอยู่ในเชลล์บรรทัดคำสั่ง เช่น คุณสมบัติที่ยอดเยี่ยมเช่น “ การเน้นไวยากรณ์» ( เปิดตัวใน PowerShell 5.0).

มีหลายวิธีในการเปิดใช้ PowerShell เช่น:

  • จากบรรทัดคำสั่งโดยพิมพ์ PowerShell;
  • ผ่านกล่องโต้ตอบ " ดำเนินการ» ( แป้นพิมพ์ลัด Win+R) รวมถึงพิมพ์ PowerShell;
  • ใน Windows 7 - เริ่ม -> โปรแกรมทั้งหมด -> อุปกรณ์เสริม -> Windows PowerShell -> Windows PowerShell
  • ใน Windows 8.1 หรือ Windows Server 2012 R2 - เริ่ม -> โปรแกรมทั้งหมด -> เครื่องมือระบบ -> Windows PowerShell
  • ใน Windows 10 หรือ Windows Server 2016 - เริ่ม -> โปรแกรมทั้งหมด -> ไดเรกทอรี Windows PowerShell ( ในกลุ่ม W) -> วินโดวส์ PowerShell

ตัวอย่างการเรียกใช้ PowerShell ใน Windows Server 2016

สกรีนช็อตของ PowerShell ใน Windows Server 2016

Cmdlet ใน PowerShell

Cmdlet (cmdlet) - นี้ ทีมงานวินโดว์ PowerShell ซึ่งคุณสามารถโต้ตอบกับออบเจ็กต์ระบบปฏิบัติการเพื่อจัดการได้ คำสั่งเหล่านี้เป็นส่วนหนึ่งของภาษา PowerShell Cmdlets ถูกสร้างตามหลักการ” กริยานาม" คั่นด้วยยัติภังค์ (-); กล่าวอีกนัยหนึ่ง เราจะระบุก่อนว่าต้องทำอะไร และด้วยเครื่องหมายยัติภังค์เราจะระบุว่าต้องทำอะไร ตัวอย่างเช่น Get-Help cmdlet โดยที่ Get เป็นคำกริยาที่มีความหมาย " รับ"และ Help เป็นคำนาม" ช่วย" ในบริบทของ PowerShell " แสดง – ความช่วยเหลือ" PowerShell cmdlet ส่งคืนผลลัพธ์เป็นออบเจ็กต์ ซึ่งเป็นหนึ่งในความแตกต่างหลักจาก Windows Command Prompt ซึ่งคำสั่งจะส่งกลับเฉพาะข้อความไปที่หน้าจอ

นอกจาก cmdlets สำหรับการรับข้อมูล (รับ) แล้ว ยังมี cmdlets ประเภทต่างๆ เช่น:

  • เพิ่ม – เพิ่มข้อมูล;
  • ชัดเจน – ชัดเจน;
  • เปิดใช้งาน – เปิดใช้งาน;
  • ปิดการใช้งาน - ปิด;
  • ใหม่ – สร้าง;
  • ลบ - ลบ;
  • ชุด – ชุด;
  • เริ่ม - เริ่ม;
  • หยุด – หยุด;
  • ส่งออก-ส่งออก;
  • นำเข้า – นำเข้า;
  • และอื่น ๆ อีกมากมาย.

คุณสามารถดูรายการ cmdlets ทั้งหมดใน Windows PowerShell ได้โดยใช้ Get-Command cmdlet พิเศษ ตัวอย่างเช่น รันด้วยพารามิเตอร์ -CommandType cmdlet ดังนั้นรายการ cmdlets จะปรากฏบนหน้าจอของคุณ

รับคำสั่ง-CommandType cmdlet

ตามที่คุณเข้าใจแล้ว cmdlet มีพารามิเตอร์ที่เราสามารถระบุการกระทำของ cmdlet ได้ พารามิเตอร์สามารถบังคับหรือเป็นทางเลือกก็ได้ ตัวอย่างเช่น Get-Command cmdlet ไม่มีพารามิเตอร์ที่จำเป็น

รูปภาพด้านล่างแสดงวิธีการค้นหา cmdlet ด้วยกริยา ( พารามิเตอร์กริยา). ในกรณีนี้ เราได้แสดงรายการ cmdlets ที่สามารถรีสตาร์ทบางสิ่งได้

ทีม

รับคำสั่ง - รีสตาร์ทกริยา

หากต้องการค้นหา cmdlet ตามคำนาม คุณต้องใช้พารามิเตอร์ Noun ตัวอย่างเช่น ด้านล่างเรามีรายการ cmdlets ที่ใช้ได้กับบริการต่างๆ

ทีม

รับคำสั่ง - บริการนาม

หากคุณไม่พบ cmdlet ที่คุณต้องการ ชื่อเต็มคุณสามารถใช้มาสก์ในรูปแบบ *ข้อความ* ได้

ไปป์ไลน์ใน PowerShell

หนึ่งในหลัก คุณสมบัติของวินโดวส์ PowerShell สามารถใช้ไปป์ไลน์เมื่อดำเนินการคำสั่ง

สายพานลำเลียง– นี่คือการถ่ายโอนผลลัพธ์ของ cmdlet ผ่านแถบแนวตั้ง (|) ไปยัง cmdlet อื่น ในเวลาเดียวกันอย่างที่คุณจำได้ใน PowerShell cmdlets ทำงานกับวัตถุและวัตถุส่งคืน ดังนั้นวัตถุจะถูกถ่ายโอนไปตามไปป์ไลน์ด้วย

เมื่อใช้ไปป์ไลน์ คุณสามารถทำงานที่ซับซ้อนด้วยวิธีที่ง่ายและสะดวกโดยไม่จำเป็นต้องเขียนอัลกอริทึมและสคริปต์ที่ซับซ้อน

ตัวอย่างเช่น ลองหาชื่อไฟล์ที่ใหญ่ที่สุดในไดเร็กทอรี "C:\Windows\System32" ( ตัวอย่างง่ายๆ ของไปป์ไลน์).

ทีม

รับ ChildItem - เส้นทาง "C: \ Windows \ System32" - ไฟล์ | เรียงลำดับความยาวของวัตถุ -จากมากไปน้อย | เลือก-วัตถุ-แรก 1

  • Get-ChildItem – cmdlet สำหรับรับวัตถุในไดเร็กทอรีที่ระบุ
  • Sort-Object เป็น cmdlet สำหรับการเรียงลำดับวัตถุ ในกรณีของเราเราจะเรียงลำดับตามขนาดไฟล์ ( ความยาว-มากไปน้อย);
  • Select-Object คือ cmdlet สำหรับเลือกคุณสมบัติที่ต้องการของวัตถุ ในกรณีของเรา เราจะแสดงฟิลด์มาตรฐานและเฉพาะวัตถุแรกเท่านั้น เช่น ไฟล์ขนาดใหญ่ (พารามิเตอร์ - แรก 1).

cmdlet ทั้งหมดจะถูกแยกออกจากกันด้วยแถบแนวตั้ง ผลลัพธ์ของแต่ละ cmdlet จะถูกส่งผ่านเป็นอินพุตไปยัง cmdlet อื่น เช่น ขั้นแรกเราจะได้วัตถุทั้งหมดในไดเร็กทอรีที่ระบุ จากนั้นเราจะเรียงลำดับผลลัพธ์และสุดท้ายก็เลือกวัตถุแรกสุด

การดำเนินงานเบื้องหลังของงาน

Windows PowerShell มีความสามารถในการรันงานในเบื้องหลัง ซึ่งเป็นกลไกที่คุณสามารถรันคำสั่งได้ ( เช่นซึ่งใช้เวลานานจึงจะเสร็จสมบูรณ์) ในพื้นหลัง เช่น หลังจากเปิดตัว คุณจะกลับสู่เซสชันปัจจุบันและสามารถทำงานต่อไปได้โดยไม่ต้องรอให้คำสั่งเสร็จสิ้น โอกาสนี้คุณจะต้องใช้เมื่อคุณต้องการเรียกใช้คำสั่งที่ใช้เวลานานพอสมควรในการดำเนินการให้เสร็จสิ้น และอย่างที่คุณทราบ ในช่วงเวลานี้ เซสชัน PowerShell จะถูกบล็อกจนกว่าคำสั่งจะเสร็จสิ้น และคุณต้องทำงานต่อไป

คุณสามารถจัดการงานทั้งหมดที่ทำงานอยู่เบื้องหลังได้ เช่น ดูรายการงาน หยุดงาน ลบงาน และดูผลลัพธ์ของงานได้แน่นอน

Windows PowerShell มี cmdlet ต่อไปนี้สำหรับการทำงานกับงานเบื้องหลัง:

  • Start-Job - เริ่มงานเบื้องหลัง
  • Stop-Job - หยุดงานเบื้องหลัง
  • รับงาน - ดูรายการงานพื้นหลัง
  • รับงาน – ดูผลลัพธ์ของงานเบื้องหลัง
  • Remove-Job – ลบงานพื้นหลัง;
  • Wait-Job - ย้ายงานพื้นหลังไปที่เบื้องหน้าเพื่อรอให้งานเสร็จ

หากต้องการทำงานในเบื้องหลัง คุณต้องเขียนคำสั่ง Start-Job และในเครื่องหมายปีกกา () ให้ระบุคำสั่งหรือชุดคำสั่งที่คุณต้องการเรียกใช้ในเบื้องหลัง

ตัวอย่างเช่น เรามารันงานบางอย่าง ( แสดงรายการบริการ) ในพื้นหลัง จากนั้นดูที่รายการ งานพื้นหลังและแสดงผลการทำงานของเราบนหน้าจอ ( เหล่านั้น. รายการบริการ).

รันงานในเบื้องหลัง

เริ่มงาน (รับบริการ)

เราดูรายการงานที่ทำงานในเบื้องหลัง

กำลังแสดงผลของ Job1

รับ-งาน1

อย่างที่คุณเห็นตอนนี้เรามีภารกิจที่มีสถานะ “ สมบูรณ์", เช่น. มันเสร็จสิ้นแล้ว ( Get-Service ทำงานได้อย่างรวดเร็ว).

หากต้องการดูผลลัพธ์ของงานเบื้องหลัง ได้แก่ Get-Service cmdlet เราดำเนินการคำสั่งรับ-งานและส่งผ่านชื่องาน ( ค่าตัวระบุก็เป็นไปได้เช่นกัน). ด้วยเหตุนี้เราจึงแสดงรายการบริการต่างๆ

การควบคุมระยะไกลโดยใช้ PowerShell

Windows PowerShell ได้รับการออกแบบไม่เพียงแต่สำหรับการใช้งานภายในเครื่องเท่านั้น แต่ยังสำหรับการดำเนินการคำสั่งระยะไกลด้วย คุณลักษณะนี้จำเป็นเพื่อให้คุณสามารถควบคุมคอมพิวเตอร์ระยะไกลจากที่ทำงานของคุณได้ เช่น เรียกใช้คำสั่ง PowerShell

มีหลายวิธี รีโมท:

  • การใช้พารามิเตอร์ –ชื่อคอมพิวเตอร์ (หลายทีมมีมัน). กล่าวอีกนัยหนึ่ง คุณส่งชื่อของคอมพิวเตอร์ที่คุณต้องการรันคำสั่งเป็นพารามิเตอร์ วิธีการนี้มีข้อเสียคือถูกจำกัดอยู่เพียงการดำเนินการของคำสั่งเดียว
  • การใช้เซสชัน Cmdlet เข้าสู่ PSSession (เซสชันแบบโต้ตอบ). ด้วยวิธีนี้ คุณจะเชื่อมต่อกับคอมพิวเตอร์ระยะไกล และคำสั่งทั้งหมดที่คุณพิมพ์ใน PowerShell จะถูกดำเนินการ คอมพิวเตอร์ระยะไกลเหมือนกับว่าคุณกำลังพิมพ์คำสั่งโดยตรงบนคอมพิวเตอร์ระยะไกล วิธีการนี้ยังมีข้อเสียตรงที่เซสชันถูกจำกัดไว้ที่คอมพิวเตอร์เครื่องเดียว
  • การใช้ cmdlet เรียกใช้คำสั่ง. โดยใช้ วิธีนี้คุณสามารถเรียกใช้คำสั่งหรือสคริปต์บนคอมพิวเตอร์เครื่องเดียวหรือหลายเครื่องได้

ตัวอย่างเช่น หากต้องการเชื่อมต่อกับคอมพิวเตอร์ระยะไกล ( ในตัวอย่างด้านล่าง ServerName) ในเซสชันแบบโต้ตอบ ให้รันคำสั่งต่อไปนี้:

ป้อน-PSSession ServerName

สคริปต์ ฟังก์ชัน และโมดูลใน Windows PowerShell

หากคุณได้เขียนอัลกอริธึม เป็นไปได้มากว่าคุณจะต้องการบันทึกมันเพื่อใช้ในอนาคต Windows PowerShell มีกลไกการเขียนสคริปต์เพื่อจุดประสงค์นี้

สาระสำคัญของกลไกนี้มีดังนี้: คุณเขียนชุดคำสั่งที่คุณต้องการและบันทึกเป็นสคริปต์ - นี่คือไฟล์ข้อความธรรมดาที่มีนามสกุล .PS1

จากนั้น หากต้องการเรียกใช้สคริปต์นี้ คุณเพียงแค่เรียกใช้สคริปต์ใน PowerShell ในกรณีนี้ คุณต้องระบุเส้นทางแบบเต็มไปยังไฟล์สคริปต์ หรือไปที่ไดเร็กทอรีที่มีสคริปต์แล้วเรียกตามชื่อ

สำคัญ!

ตามค่าเริ่มต้น ห้ามเรียกใช้สคริปต์บน Windows! หากต้องการดูนโยบายการดำเนินการสคริปต์ ให้เรียกใช้ cmdlet รับ ExecutionPolicy. ด้วยเหตุนี้ นโยบายนี้จะส่งคืนนโยบายปัจจุบัน เช่น:

  • จำกัด – การทำงานของสคริปต์ใด ๆ ถูกบล็อก ( ค่าเริ่มต้น);
  • AllSigned – อนุญาตให้เรียกใช้สคริปต์ที่มีลายเซ็นดิจิทัลได้
  • RemoteSigned – อนุญาตให้เรียกใช้สคริปต์ในเครื่องได้ สคริปต์ที่ดาวน์โหลดทั้งหมดจะต้องมีลายเซ็นดิจิทัล
  • ไม่ จำกัด - อนุญาตให้เรียกใช้สคริปต์ใด ๆ ( ไม่แนะนำเพราะไม่ปลอดภัย!).

หากต้องการเปิดใช้งานสคริปต์ให้ทำงาน คุณต้องใช้ cmdlet ตั้งค่า ExecutionPolicyด้วยพารามิเตอร์ตัวใดตัวหนึ่งข้างต้น

ตัวอย่างเช่น หากต้องการอนุญาตให้สคริปต์ในเครื่องทำงาน ให้รันคำสั่งต่อไปนี้และยอมรับการเปลี่ยนแปลงโดยกด Y

ตั้งค่า ExecutionPolicy RemoteSigned

คุณสามารถส่งพารามิเตอร์ไปยังสคริปต์ บังคับให้พารามิเตอร์เหล่านั้น หรือตั้งค่าเริ่มต้นได้

Windows PowerShell มีกลไกสำหรับการสร้างฟังก์ชันของคุณเอง ซึ่งสามารถใช้ใน PowerShell Shell ได้ เช่นเดียวกับ cmdlets ในตัว

ในการดำเนินการนี้คุณต้องระบุ คำสำคัญฟังก์ชั่น จากนั้นในวงเล็บปีกกา () เขียนอัลกอริทึมสำหรับฟังก์ชันนี้ เช่น ชุดคำสั่ง ( ตัวอย่างเช่น ขั้นตอนที่ใช้บ่อย: สร้างผู้ใช้ที่มีสิทธิ์บางอย่าง ล้างไดเร็กทอรีบางตัว และอื่นๆ). จากนั้นคุณจะต้องบันทึกทั้งหมดนี้ลงในสคริปต์ แต่ใช้เฉพาะนามสกุล .psm1 เนื่องจากไฟล์นี้จะเป็นโมดูลอยู่แล้ว

เท่านั้นยังไม่พอ ไฟล์นี้ต้องอยู่ในไดเร็กทอรีที่ PowerShell ค้นหาโมดูล มีไดเร็กทอรีดังกล่าวหลายรายการ ( ไดเร็กทอรีพิเศษในโปรไฟล์ผู้ใช้ ซึ่งเป็นไดเร็กทอรีที่ติดตั้ง PowerShell) สามารถดูได้ในตัวแปรสภาพแวดล้อม PowerShell เมื่อต้องการทำเช่นนี้ ให้เรียกใช้คำสั่งต่อไปนี้

รับ ChildItem Env:\PSModulePath | รูปแบบตาราง-ขนาดอัตโนมัติ

เมื่อคุณวางโมดูลที่คุณเขียนไว้ในไดเร็กทอรีพิเศษ คุณจะสามารถเข้าถึงฟังก์ชันต่างๆ ของคุณได้เหมือนกับคำสั่ง PowerShell ปกติ

สภาพแวดล้อมการเขียนสคริปต์แบบรวมของ Windows PowerShell (ISE)

เพื่อให้สะดวกในการเขียนสคริปต์ ฟังก์ชัน และตามโมดูล Microsoft จึงได้พัฒนาโปรแกรมพิเศษขึ้นมา โปรแกรมกราฟิก สภาพแวดล้อมการเขียนสคริปต์แบบรวม(ISE) - สภาพแวดล้อมการเขียนสคริปต์แบบรวม สะดวกมากในการทำงานในโปรแกรมนี้และยังมีฟังก์ชันอันทรงพลัง ( การสร้างหลายแท็บพร้อมสคริปต์ พื้นที่เอาต์พุต ดีบักเกอร์ในตัว และอื่นๆ).

คุณสามารถรันได้ดังนี้:

  • ใน Windows 7 - เริ่ม -> โปรแกรมทั้งหมด -> อุปกรณ์เสริม -> Windows PowerShell -> Windows PowerShell ISE;
  • ใน Windows 10 หรือ Windows Server 2016 - เริ่ม -> โปรแกรมทั้งหมด -> ไดเรกทอรี Windows PowerShell ( ในกลุ่ม W) -> Windows PowerShell ISE

บันทึก! ISE จะไม่ทำงานต่อไป ระบบวินโดวส์เซิร์ฟเวอร์ที่ติดตั้งในเวอร์ชัน Server Core

สกรีนช็อตของสภาพแวดล้อมการเขียนสคริปต์แบบรวม PowerShell (ISE) ใน Windows Server 2016

นั่นคือทั้งหมดสำหรับฉัน ฉันหวังว่าเนื้อหาจะเป็นประโยชน์กับคุณ! ขอให้โชคดี!

การรันโปรแกรมจาก PowerShell

งานในการเรียกใช้ไฟล์ปฏิบัติการใด ๆ (โปรแกรมหรือยูทิลิตี้บรรทัดคำสั่ง) จาก PowerShell เกิดขึ้นค่อนข้างบ่อย PowerShell มีหลายตัวเลือกสำหรับสิ่งนี้ ในรูปแบบต่างๆซึ่งเราจะพิจารณาในบทความนี้ต่อไป เริ่มจากสิ่งที่ง่ายที่สุด...

เปิดตัวโดยตรง

วิธีที่ง่ายที่สุดในการเรียกใช้ไฟล์ปฏิบัติการใน PowerShell คือการนำทางไปยังไดเร็กทอรีที่มีไฟล์และเรียกใช้โดยตรง ตัวอย่างเช่น ลองใช้โปรแกรมง่ายๆ ที่แสดงคำทักทายและดำเนินการด้วยคำสั่ง:

ตั้งค่าตำแหน่ง″ C: \ Program Files″
.\Hello.exe

โปรดทราบว่าแม้ว่าคุณจะอยู่ในไดเร็กทอรีที่ต้องการ คุณต้องระบุเส้นทางสัมพัทธ์ไปยังไฟล์ปฏิบัติการ ข้อยกเว้นคือไฟล์จากไดเร็กทอรีที่แสดงอยู่ในรายการ ตัวแปรสภาพแวดล้อม(เส้นทาง). ตัวอย่างเช่น โปรแกรมและยูทิลิตี้ในตัวต่างๆ (notepad, calc, ping ฯลฯ) ที่อยู่ในไดเร็กทอรี Windows\System32 สามารถเปิดได้โดยไม่ต้องระบุเส้นทาง

ผู้ประกอบการ &

หากคุณต้องการระบุเส้นทางแบบเต็มไปยังไฟล์ปฏิบัติการ คุณสามารถใช้โอเปอเรเตอร์ได้ & (โอเปอเรเตอร์การโทร) ช่วยให้คุณสามารถรันสตริงข้อความที่ระบุในเครื่องหมายคำพูดเช่น ทีมเดียว. ตัวอย่างเช่น:

& ′C:\ไฟล์โปรแกรม\Hello.exe′

เนื่องจากตัวดำเนินการ & ไม่ได้แยกวิเคราะห์คำสั่งที่ถูกส่ง จึงไม่สามารถตีความพารามิเตอร์ได้ ดังนั้น พารามิเตอร์\อาร์กิวเมนต์เพิ่มเติมจะถูกส่งผ่านเป็นข้อความในเครื่องหมายคำพูดด้วย ตามตัวอย่าง ลองใช้โปรแกรมก่อนหน้าและแก้ไขเล็กน้อยเพื่อให้ยอมรับข้อความที่ต้องการเป็นอาร์กิวเมนต์:

& ′C:\Program Files\Hello.exe′ ′สวัสดีชาวโลก′

หากต้องการ คุณสามารถระบุอาร์กิวเมนต์หลายรายการโดยคั่นด้วยเครื่องหมายจุลภาค:

& ′C:\Program Files\Hello.exe′ ′สวัสดี′, ′โลก′

เพื่อความสะดวก คำสั่งและอาร์กิวเมนต์สามารถวางไว้ในตัวแปร:

$exe = ′C:\ไฟล์โปรแกรม\Hello.exe′
$arg1 = 'สวัสดี'
$arg2 = 'โลก'
& $exe $arg1 $arg2

หากมีข้อโต้แย้งมากมายก็สามารถนำมารวมกันได้โดยใช้โครงสร้างต่อไปนี้:

$exe = ′C:\ไฟล์โปรแกรม\Hello.exe′
$allargs = @('สวัสดี','โลก')
& $exe $allargs

เรียกใช้นิพจน์

Invoke-Expression cmdlet ทำงานในลักษณะเดียวกับตัวดำเนินการ & โดยรับสตริงข้อความและดำเนินการเป็นคำสั่ง ตัวอย่างเช่น:

เรียกใช้นิพจน์ -Command ′C:\Windows\Hello.exe′

อย่างไรก็ตาม มีข้อเสียเปรียบใหญ่ประการหนึ่ง กล่าวคือ ไม่สามารถทำงานกับพื้นที่ได้ ตัวอย่างเช่น คำสั่งต่อไปนี้จะทำให้เกิดข้อผิดพลาด:

เรียกใช้นิพจน์ - คำสั่ง ′C:\Program Files\Hello.exe′

คุณลักษณะนี้ทำให้การใช้ cmdlet ไม่สะดวกอย่างยิ่ง แม้ว่าหากจำเป็น ก็สามารถหลีกเลี่ยงข้อผิดพลาดดังกล่าวได้โดยใช้เครื่องหมายคำพูดเพิ่มเติม เช่น:

เรียกใช้นิพจน์ - คำสั่ง ″C:\′Program Files′\Hello.exe″

เริ่มกระบวนการ

cmdlet กระบวนการเริ่มต้นเริ่มต้นขึ้น ไฟล์ที่ระบุเป็นกระบวนการที่ใช้วิธี เริ่มคลาส .NET กระบวนการ. ตัวอย่างเช่น:

เริ่มกระบวนการ -FilePath ′C:\Program Files\Hello.exe′

โดยค่าเริ่มต้น กระบวนการจะทำงานเข้ามา หน้าต่างแยกต่างหากซึ่งปิดเมื่อสิ้นสุดกระบวนการ คุณสามารถเปลี่ยนลักษณะการทำงานนี้ได้โดยใช้พารามิเตอร์ ดังนั้นคำสั่งต่อไปนี้จะทำงานในหน้าต่างปัจจุบัน:

เริ่มกระบวนการ -FilePath ′C:\Program Files\Hello.exe′ -NoNewWindow -รอ

Start-Process ยังอนุญาตให้คุณส่งผ่านข้อโต้แย้งเพิ่มเติมไปยังกระบวนการ:

เริ่มกระบวนการ -FilePath ′C:\Program Files\Hello.exe′ -ArgumentList ′Hello, world′ -NoNewWindow -รอ

ตามค่าเริ่มต้น cmdlet จะไม่ส่งคืนสิ่งใดๆ แต่คุณสามารถใช้พารามิเตอร์ -PassThru เพื่อบังคับให้ส่งกลับวัตถุกระบวนการได้ สะดวกมากที่จะวางวัตถุนี้ไว้ในตัวแปร:

$process = เริ่มกระบวนการ -FilePath ′C:\Program Files\Hello.exe′ -รอ -PassThru

ซึ่งคุณสามารถเรียนรู้สิ่งต่าง ๆ ที่เป็นประโยชน์มากมาย เช่น สถานะ:

$กระบวนการHasExited

$กระบวนการExitTime

หรือรหัสดำเนินการ:

$กระบวนการExitCode

.สุทธิ

โดยหลักการแล้ว คลาส .NET Process สามารถใช้ได้โดยตรง โดยไม่ต้องใช้ Start-Process cmdlet ตัวอย่างเช่น คุณสามารถเริ่มกระบวนการด้วยคำสั่ง:

::Start(′C:\Program Files\Hello.exe′)

วิธีนี้ค่อนข้างไม่สะดวกและยุ่งยาก (ในความคิดของฉัน) แต่มีความยืดหยุ่นในการใช้งานมากกว่าเล็กน้อย ตัวอย่างเช่น ลองรันโปรแกรมของเราในหน้าต่างปัจจุบัน ส่งอาร์กิวเมนต์ไปให้มัน และรับผลการดำเนินการ:

$process = New-Object -TypeName System.Diagnostics.Process
$process.StartInfo.FileName = ″C:\Program Files\Hello.exe″
$process.StartInfo.Arguments = ″สวัสดีชาวโลก″
$process.StartInfo.RedirectStandardOutput = $true
$process.StartInfo.UseShellExecute = $false
$กระบวนการเริ่มต้น()
$กระบวนการWaitForExit()

$process.StandatdOutput.ReadToEnd()

WMI

คุณสามารถทำอะไรได้เกือบทุกอย่างด้วย WMI รวมถึงการรันโปรแกรมด้วย วิธีนี้ค่อนข้างเหมาะสมกับสิ่งนี้ สร้าง WMI-คลาส Win32_กระบวนการวิธีการนี้จะเริ่มกระบวนการบนเครื่องภายในหรือเครื่องระยะไกลผ่าน RPC เช่น การรันโปรแกรมบน คอมพิวเตอร์ท้องถิ่นคุณสามารถใช้คำสั่งนี้:

()″Win32_Process″).สร้าง(′C:\Program Files\Hello.exe′)

และเพื่อดำเนินการบนคอมพิวเตอร์ระยะไกล คำสั่งจะมีลักษณะดังนี้:

()″\\remotecomputer\root\cimv2:Win32_Process″).สร้าง(′C:\Program Files\Hello.exe′)

หรือคุณสามารถใช้ Invoke-WmiMethod cmdlet:

เรียกใช้ WmiMethod - คลาส Win32_Process - ชื่อสร้าง - ArgumentList ″ C: \ Program Files \ Hello.exe″

หรือใช้ Invoke-CimMethod cmdlet:

เรียกใช้ CimMethod -ClassName Win32_Process -MethodName สร้าง -Arguments @ (CommandLine=″C:\Program Files\Hello.exe″)

WMI รันกระบวนการในหน้าต่างที่แยกต่างหากและส่งกลับวัตถุที่มีรหัสกระบวนการ (ProcessID) และผลลัพธ์ของการดำเนินการ (ReturnValue) ReturnValue สามารถใช้ค่าต่อไปนี้:

0 - สำเร็จลุล่วงไปด้วยดี
2 -ปฏิเสธการเข้าใช้
3 - สิทธิ์ไม่เพียงพอ
8 — ความล้มเหลวที่ไม่รู้จัก
9 - ไม่พบเส้นทาง
21 — พารามิเตอร์ไม่ถูกต้อง

เรียกใช้คำสั่ง

Invoke-Command cmdlet สามารถดำเนินการคำสั่งบนคอมพิวเตอร์ท้องถิ่นหรือระยะไกลโดยใช้ WinRM ตัวอย่างเช่น ในการรันโปรแกรมของเราบนเครื่องคอมพิวเตอร์ เราใช้คำสั่ง:

เรียกใช้คำสั่ง -ScriptBlock (″C:\′Program Files′\Hello.exe″)

หากจำเป็น คุณสามารถส่งอาร์กิวเมนต์ไปยังโปรแกรมได้:

เรียกใช้คำสั่ง -ScriptBlock (C:\′Program Files′\Hello.exe″Hello,world″)

โปรดทราบว่า Invivo-Command ไม่เป็นมิตรกับช่องว่าง ดังนั้นเพื่อหลีกเลี่ยงข้อผิดพลาด คุณจะต้องใช้เครื่องหมายคำพูดอย่างสร้างสรรค์ อย่างไรก็ตาม ปัญหาดังกล่าวสามารถหลีกเลี่ยงได้ ตัวอย่างเช่น โดยรวมการใช้ cmdlet เข้ากับตัวดำเนินการ &:

เรียกใช้คำสั่ง -ScriptBlock (& ​​′C:\Program Files\Hello.exe′)

Invivo-Command ส่วนใหญ่จะใช้สำหรับการควบคุมระยะไกล ข้อได้เปรียบหลักของมันคือความสามารถในการดำเนินการพร้อมกันบนคอมพิวเตอร์หลายเครื่อง ตัวอย่างเช่น:

เรียกใช้คำสั่ง -ScriptBlock (″C:\′Program Files′\Hello.exe″) - ชื่อคอมพิวเตอร์ SRV1,SRV2,SRV3

$scriptblock = (″C:\′ไฟล์โปรแกรม′\Hello.exe″)
$คอมพิวเตอร์ = @(′SRV1′,′SRV2′,′SRV3′)
เรียกใช้คำสั่ง -ScriptBlock $scriptblock -ชื่อคอมพิวเตอร์ $Computers

ตามค่าเริ่มต้น cmdlet ส่งคืนผลลัพธ์ของการทำงานของโปรแกรม และหากคุณรันในพื้นหลัง (พารามิเตอร์ -AsJob) ก็จะส่งคืนอ็อบเจ็กต์งาน:

เรียกใช้คำสั่ง -ScriptBlock (C:\′Program Files′\Hello.exe) -ชื่อคอมพิวเตอร์ localhost -AsJob -JobName สวัสดี

เรียกใช้รายการ

Invoke-Item cmdlet ได้รับการออกแบบมาเพื่อใช้การดำเนินการเริ่มต้นกับไฟล์ ดังนั้นคุณจึงสามารถรันไฟล์ปฏิบัติการได้ด้วยคำสั่ง:

เรียกใช้รายการ -Path "C: \ Program Files \ Hello.exe"

อย่างไรก็ตาม วิธีที่สะดวกที่สุดในการใช้ Invoke-Item เพื่อเปิดไฟล์ประเภทใดประเภทหนึ่งโดยเฉพาะ ตัวอย่างเช่น นี่คือวิธีที่เราเปิดไฟล์ข้อความ:

เรียกใช้รายการ -Path ″C:\Files\test.txt″

และนั่นคือทั้งหมด ไฟล์ข้อความในโฟลเดอร์:

เรียกใช้รายการ -Path ″C:\Files\*.txt″

ซีเอ็มดี

โดยสรุปอีกวิธีในการเปิดโปรแกรมจาก PowerShell คือการใช้ cmd เชลล์ วิธีการนี้ค่อนข้าง "ทางอ้อม" แต่ก็ใช้ได้ผล คำสั่งต่อไปนี้เริ่มอินสแตนซ์ใหม่ของ cmd และดำเนินการในนั้น โปรแกรมที่ระบุออกจาก cmd และส่งคืนผลลัพธ์:

cmd /c ″C:\Program Files\Hello.exe″

PoSh มีวิธีมากมายในการเปิดโปรแกรม และแต่ละอันก็ดีสำหรับบางสถานการณ์

อย่างไรก็ตาม บทความนี้เขียนขึ้นจาก PowerShell: Deep Dive และ Best Practice แนะนำให้อ่านครับ ยังมีเรื่องน่าสนใจอีกมากมาย

มีหลายวิธีในการรันสคริปต์ วิธีหลักมีดังนี้:

  1. เปิดตัว PowerShellและเรียกใช้สคริปต์ในนั้น (ป้อนพาธไปยังไฟล์และชื่อไฟล์ เช่น C:\Scripts\test.ps1 หรือไปที่โฟลเดอร์สคริปต์ด้วยคำสั่ง cd C:\Scripts แล้วเรียกใช้ ด้วยคำสั่ง\test.ps1) เปลือกหอยสามารถค้นพบและเปิดตัวได้หลายวิธี วิธีหนึ่งคือผ่านเมนูเริ่ม สำหรับ Windows 7 - คุณต้องไปที่ "โปรแกรมทั้งหมด" - "อุปกรณ์เสริม" - "Windows PowerShell" และเปิดเชลล์ "Windows PowerShell" สำหรับ Windows 10 - คุณต้องค้นหากลุ่มที่มีตัวอักษร "W" และในนั้นคุณจะพบ "Windows PowerShell"
  2. เปิดตัว "Windows PowerShell ISE"เป็นโปรแกรม - สภาพแวดล้อมการพัฒนาที่ช่วยให้คุณสามารถแก้ไขและแก้ไขสคริปต์ PowerShell ซึ่งมีให้ใช้งานตามค่าเริ่มต้นพร้อมกับ PowerShell เอง เมื่อเปิดตัวแล้วคุณเพียงแค่คลิกปุ่ม "เปิด" หรือไปที่เมนูไฟล์ - เปิดและเลือก สคริปต์ที่จำเป็นจากนั้นกด F5 หรือปุ่ม "Run Script" คุณสามารถค้นหา Windows PowerShell ISE ได้ในที่เดียวกับ PowerShell - ในเมนู Start
  3. เรียกใช้บรรทัดคำสั่งมาตรฐานและเขียนลงไปว่า:
    PowerShell - ไฟล์<имя_скрипта> (ตัวอย่าง: powershell -file myscript.ps1)

หากคุณไม่เคยเรียกใช้สคริปต์ PowerShell มาก่อน คุณอาจได้รับข้อความต่อไปนี้: ไม่สามารถดาวน์โหลดไฟล์ได้<имя_скрипта>เนื่องจากห้ามใช้สคริปต์สำหรับระบบนี้ พิมพ์ "get-help about_signing" เพื่อดูข้อมูลเพิ่มเติม เนื่องจากเหตุผลด้านความปลอดภัยและเพื่อป้องกันการเรียกใช้โค้ดที่เป็นอันตรายโดยไม่ตั้งใจ สคริปต์ทั้งหมดจึงต้องเซ็นชื่อแบบดิจิทัล

จะอนุญาตให้เรียกใช้สคริปต์ PowerShell ที่ไม่ได้ลงนามได้อย่างไร

1. ใน PowerShellก่อนที่จะรันสคริปต์ ให้รันคำสั่งเพื่ออนุญาตให้เรียกใช้สคริปต์ที่ไม่ได้ลงนามสำหรับเซสชันเชลล์ปัจจุบัน:

ตั้งค่า ExecutionPolicy RemoteSigned - กระบวนการขอบเขต

2. เมื่อเริ่มต้น จากบรรทัดคำสั่งมาตรฐานใช้พารามิเตอร์ -executionpolicy เช่น รันสคริปต์ดังนี้:

<имя_скрипта>

ทั้งสองวิธีตั้งค่านโยบายสำหรับเซสชันปัจจุบันเท่านั้น ในขณะที่นโยบายความปลอดภัยสำหรับการเรียกใช้สคริปต์ PowerShell ที่เขียนในรีจิสทรีจะไม่เปลี่ยนแปลงและจะยังคงเหมือนเดิม หากคุณต้องการเปลี่ยนนโยบายความปลอดภัยในการเรียกใช้สคริปต์เป็น "ถาวร" ให้ใช้วิธีนี้:

3. ปล่อยให้เปิดตัวตลอดไป: เรียกใช้ PowerShell ในฐานะผู้ดูแลระบบ จากนั้นรันคำสั่ง:

ตั้งค่า ExecutionPolicy RemoteSigned

บันทึก:หากดาวน์โหลดสคริปต์จากอินเทอร์เน็ต เพื่อหลีกเลี่ยงคำขอเพื่อยืนยันการเปิดตัว คุณต้องใช้บายพาสแทน RemoteSigned ซึ่งจะปิดการใช้งานคำขอและคำเตือนใด ๆ โดยสิ้นเชิง

วิธีเรียกใช้สคริปต์ PowerShell ในพื้นหลัง

ในการดำเนินการนี้ เพียงใช้พารามิเตอร์เรียกใช้ -WindowStyle ซึ่งสามารถรับค่าต่อไปนี้: ปกติ, ย่อเล็กสุด, ขยายใหญ่สุด และ ซ่อน ดังนั้น หากต้องการรันสคริปต์ที่ไม่ได้ลงนามในเบื้องหลัง คุณต้องรันคำสั่ง:

powershell -executionpolicy RemoteSigned -WindowStyle ซ่อน -file<имя_скрипта>

คุณสามารถเพิ่ม -NonInteractive ได้หากต้องการ เพื่อให้สคริปต์ไม่ถามคำถามใดๆ ดังนั้นสคริปต์จะถูกดำเนินการโดยผู้ใช้โดยไม่มีใครสังเกตเห็น ระวังเมื่อใช้วิธีนี้

การเรียกใช้สคริปต์ PowerShell พร้อมพารามิเตอร์

การเปิดตัวจริงควรทำเหมือนกับว่าคุณกำลังเปิดตัว โปรแกรมปกติหรือไฟล์ bat พร้อมพารามิเตอร์ ตัวอย่างเช่น หากต้องการรันสคริปต์ด้วยพารามิเตอร์จากบรรทัดคำสั่ง คุณสามารถเขียนคำสั่งต่อไปนี้:

powershell -executionpolicy RemoteSigned - ไฟล์<имя_скрипта>param1 param2 "พารามิเตอร์ข้อความอื่น"

ในสคริปต์คุณสามารถรับพารามิเตอร์เหล่านี้ได้ดังนี้:

พารามิเตอร์ ($var1, $var2, $var3) echo $var1, $var2, $var3

ใน PowerShell ISE คุณสามารถเรียกใช้สคริปต์ด้วยพารามิเตอร์ในลักษณะเดียวกันโดยใช้บานหน้าต่างคำสั่ง

วิธีเรียกใช้สคริปต์ PowerShell โดยใช้ทางลัด

งานนี้สามารถทำได้สองวิธี:

  1. สร้างไฟล์ bat/cmd เพื่อเขียนคำสั่งเพื่อเรียกใช้สคริปต์ (คุณได้อ่านพารามิเตอร์ด้านบนแล้ว)
  2. สร้างทางลัดไปยัง PowerShell ซึ่งสามารถพบได้ในโฟลเดอร์ c:\Windows\System32\WindowsPowerShell\v<версия>\ และในคุณสมบัติทางลัดในช่อง "Object" ให้เพิ่มพารามิเตอร์ที่จำเป็น

เช่น การวิ่ง เป็นต้น สคริปต์ PowerShellเมื่อผู้ใช้เข้าสู่ระบบ คุณสามารถสร้างทางลัดตามที่อธิบายไว้ในย่อหน้าที่ 2 และวางไว้เมื่อเริ่มต้นระบบ นอกจากนี้ การสร้างทางลัดโดยใช้วิธีใดวิธีหนึ่งข้างต้นจะช่วยให้คุณสามารถเรียกใช้สคริปต์ได้อย่างง่ายดายในฐานะผู้ดูแลระบบหรือในฐานะผู้ใช้รายอื่นเหมือนโปรแกรมทั่วไป

ภาษาสคริปต์ PowerShell ค่อนข้างเป็นเครื่องมือที่ทรงพลังในการแก้ปัญหาต่างๆ แต่สามารถใช้ได้ไม่เพียงแต่กับสิ่งที่ดีเท่านั้น แต่ยังใช้กับสิ่งที่ไม่ดีด้วย ดังนั้นใช้อย่างชาญฉลาด ;)