[PowerShell] เริ่มต้นจัดการปัญหาด้วย PowerShell

ไม่ได้เขียน Blog ซะนานเลย ช่วงนี้งานที่ทำงานเยอะขึ้น และขึ้นโปรเจคใหม่ด้วย ตอนนี้เข้าเรื่องดีกว่า เมื่อมี Program ก็ต้องมี Bug หรือ Defect เป็นของคู่กัน การตรวจสอบเคสที่มาจากลูกค้า เพื่อหา Bug หรือ Defect  และปัญหาที่พบว่า Program มี Version ที่หลากหลายมาก ทำให้การหาไฟล์ Program นั้นลำบากมาก แต่เมื่อมีปัญหา ย่อมมีโอกาสตามมา โดยผมลองใช้ Power Shell ในการแก้ปัญหาคร่าวๆ ลองที่ละ Step และท้ายที่สุด คือ การนำไปใช้ร่วมกับ C# เพือให้ง่ายกับการใช้งานครับ

มาถึงตอนนี้หลายคนอาจจะสงสัยว่าทำไมต้อง Power Shell แล้ว ไอ้เจ้า Power Shell มัน คือ อะไร

Power Shell คือ ชุดคำสั่งแบบ command line shell และ task-based scripting technology เพื่อใช้ช่วยในการจัดการกับระบบ (มองว่าเป็น dos-commandline เวอร์ชั้น Upgrade) เหมือนกับทางค่าย Open Source อย่าง Unix Shell หรือ Linux Shell อย่าง bash เป็นต้น โดยถึงแม้ว่าหน้าที่เหมือนกัน แต่การทำงานในส่วนลึกนั้นแตกต่างกันมาก โดยผมขอสรุปแยกไว้ ดังนี้

  • Unix Shell หรือ Linux Shell เป็นการทำงานผ่าน Raw Text
  • Power Shell หรือ Windows Power เป็นการทำงานแบบ Object-based approach โดยมีพื้นฐานการทำงานมาจาก .Net Framework นั้นเอง ซึ่งช่วยให้เราสามารถใช้งานความสารถต่างๆของตัว .Net Framework เพิ่มเติมได้ด้วย

ถ้าเราเรื่องใช้งาน Power Shell จะพบว่ามันง่ายมากกว่าการใช้ Command line แบบอื่นๆ เพราะมี Build-in Function มาช่วยเยอะ และรูปแบบคำสั่งแบบ cmdlet ซึ่งเป็น single-feature command  โดยมีรูปแบบ กริยา (Verb) - นาม (noun) เช่น Get-ChildItem , Get-Help หรือ Start-Service เป็นต้น

เกริ่นที่มาซะยาวเลย คราวนี้ลองนำมาแก้ปัญหาจริงๆที่พบในการทำงานบ้าง จากตอนต้นเราจะพบปัญหา หรือ Program ที่มีหลาย Version คราวนี้ เราจะมาลองใช้ Power Shell ช่วยกัน โดยมีโจทย์อยู่ว่า ให้ช่วย List Version ของ File ใน Path ที่กำหนด (Getting File Version Info) นั่นเองครับ โดยคำสั่งที่ใช้จะเป็นคำสั่งง่ายๆก่อน โดยใช้ดึง Version ของ Dll ใน System32 (ถ้า List ของบริษัท เดี๋ยวจะโดนเข้าเฝ้า 55)

Get-ChildItem c:\windows\system32\*.dll |
  Select-Object -ExpandProperty VersionInfo |
  Select-Object -Property FileName, Productversion, ProductName

หลังจากพอเห็นตัวอย่างการใช้งานและ ผมก็จะค่อยๆปรับ Power Shell ตัวนี้ เพื่อให้ใช้งานได้จริงตามเป้าหมายของผมครับ


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts to your email.