PowerShell สำหรับผู้ดูแล Windows Server ตอนที่ 1

PowerShell คือ ภาษา Shell Script ที่ Microsoft สร้างขึ้นมาให้ผู้ดูแลระบบงานบน Windows  ใช้สั่งให้เครื่องทำงาน  มันใช้ได้กับ Windows และอีกหลายโปรแกรม ซึ่งดีกว่าการใช้คำสั่งใน DOS โดยที่ PowerShell นี้มากับ Windows ทำงานอยู่บน.Net Framework และต่อมาเมื่อมี .Net Core สำหรับ Linux ก็มี PowerShell บน Linux ด้วย จากจุดเริ่มต้นมันช่วยให้สั่งงานผ่าน Command Line และ Batch File (PowerShell Script File) ต่อมาการทำงานของ Microsoft เกือบทุกเรื่องก็รองรับ PowerShell แล้ว  การไม่ต้องยึดติดกับ GUI ตลอดเวลา มันช่วยให้ทำงานเป็น  Automate ได้มากขึ้น สรุปง่ายๆ ว่าอะไรที่ต้องซ้ำๆ ให้เขียนเป็น PowerShell Script เก็บไว้ใช้ได้ มันช่วยให้ทำงานได้เร็วขึ้น เป็นมาตรฐาน ลดความผิดพลาด

เมื่อไรถึงจะใช้ PowerShell

การใช้คำสั่งบน Windows ยุคก่อนมี PowerShell บางคำสั่งเป็น GUI บางครั้งก็เป็น Command Line แนวทางยังไม่ชัดเจน ต่อมาตั้งแต่มี PowerShell คนใน Microsoft เห็นประโยชน์จึงนำไป Integrate กับ Product อืนๆ เช่น Config Windows Server, Active Directory, Exchange, SharePoint เป็นต้น โดยการสั่งงานอะไรที่ทำผ่าน GUI ได้ ก็จะมีคำสั่งใน PowerShell ได้เช่นกัน มันจึงช่วยให้การทำงานเป็นระบบมากขึ้น เช่น ทำเป็น script แก้ไขระบบ ไปทดลองก่อนในระบบทดสอบ เมื่อเสร็จก็นำไปใช้จริงที่ระบบ Production หรือ การสั่งงานบางอย่างที่มีความซับซ้อนหรือระดับ low level มากๆ เหล่านี้ก็ใช้ PowerShell ได้ และหากใช้บ่อยก็หาเครื่องมือทำ Version เช่น GIT มาช่วยด้วย

วิธีเปิด PowerShell Console

Console ของ PowerShell มีให้ใช้ทั้งแบบ Command Line และแบบที่มี Editor คือ PowerShell Integrated Scripting Environment (ISE)  เรามักใช้ Command Line เมื่อ Run script ส่วน ISE เหมาะกับการใช้เขียน Script การเปิดทำได้หลายวิธีคือ

วิธีที่ 1 – Click ที่ icon บน Taskbar  image สำหรับ Command Line หรือ ise_icon สำหรับ PowerShell ISE

วิธีที่ 2 – กดปุ่ม Windows + R พิมพ์ powershell_ise  หรือ powershell

วิธีที่ 3 – เปิด Command Windows แล้วพิมพ์คำสั่ง powershell_ise  หรือ powershell

ด้านล่างเป็นตัวอย่างหน้าจอ PowerShell ISE  ที่ใช้เขียน Script ในหน้าจอแบ่งเป็น 3 ช่อง ที่ใช้บ่อยคือ Script pane เพื่อเขียน Script และช่อง Console เพื่อดู Output

ise

Hello, World

PowerShell ใช้รูปแบบคำสั่ง verb-noun ให้จำไปใช้กันง่ายๆ ตัวอย่างของ Verb เช่น Get, Set, Write, Remove เป็นต้น คำสั่งแสดงผลหน้าจอก็เป็น  write-host “hello,world” มี 4 คำสั่ง เป็นคำสั่งสามัญประจำบ้าน จดจำไว้เลย

  • get-help  ใช้แสดงวิธีใช้คำสั่ง
  • get-member ใช้เพื่อขอดูว่า คำสั่งที่เรียกใช้ มีคุณสมบัติอะไรให้ใช้งานบ้าง
  • select-object ใช้เพื่อขอดูว่า คำสั่งที่เรียกใช้ มีคุณสมบัติอะไรให้ใช้งานบ้าง

เราจะทดลองคำสั่ง 4 อันนี้ โดยใช้คำสั่ง get-date เป็นตัวอย่าง

get-help ใช้เพื่อขอดูวิธีใช้คำสั่งที่เราต้อง เช่น  get-help get-date ในภาพด้านล่าง

 

image

จากภาพด้านบนมีคำอธิบายดังนี้

1. เป็นการใช้คำสั่ง Get-Help เพื่อขอดูวิธีใช้คำสั่ง Get-Date

2. Syntax เป็นการบอกวิธีใช้

3. Description บอกว่า gets a DateTime object

4. Remark 4 วิธีเพิ่มเติม

get-help get date –example
get-help get-date –detailed
get-help get-date –full
get-help get-date –online

คำสั่งที่ใช้ใน PowerShell แบ่งออกเป็น 4 พวกคือ Cmdlet, PowerShell Functions, PowerShell Scripts และ Native Windows Command แต่ละพวกมีรายละเอียดต่อไปนี้

1. Cmdlet (อ่านว่า คอม-เหล็ด Command-Let) เป็นรูปแบบการเรียกคำสั่งแบบ “Verb-noun” ที่สื่อความหมายของคำสั่งได้ง่าย ได้แก่ คำสั่ง Get-Command

image

2. PowerShell Function – ความหมายของ Function คือ ฺBlock of Code เราสามารถเขียนคำสั่งเป็น Function แล้ว save เก็บในไฟล์เพื่อทำใช้ซ้ำบ่อยได้ แต่หากเราใช้คำสั่ง Get-Command จะเห็นว่าคำสั่งที่มากับ PowerShell บางอันก็เป็น Function และบางอันก็เป็น Cmdlet ในึครั้งต่อไปเราจะฝึกเขียน Function กัน

 

Reference

  1. PowerShell cmd vs. function  (https://powershell.org/forums/topic/cmdlets-vs-functions/)
  2. PowerShell Function http://windowsitpro.com/windows/create-your-own-powershell-functions

Advertisements