Hardware
PowerShell เนี่ย สมัยผมทำร้านเน็ตฯ เมื่อ 20 กว่าปีก่อน ยังไม่มีหรอก! แต่ถ้ามีนะ ชีวิตคงง่ายขึ้นเยอะ! มันคือ Command-Line Shell และ Scripting Language จาก Microsoft นั่นแหละ พูดง่ายๆ คือ เอาไว้พิมพ์คำสั่งสั่งงานคอมพิวเตอร์ได้ละเอียดกว่า Command Prompt (CMD) เดิมๆ เยอะ
แล้วทำไมต้อง Hardware? เพราะ PowerShell มันเข้าถึงระบบลึกๆ ได้ไง! เราสามารถใช้มันตรวจสอบข้อมูลฮาร์ดแวร์, แก้ไขค่า Config, หรือแม้กระทั่งสั่งเปิดปิดอุปกรณ์บางอย่างได้ด้วย script ง่ายๆ คิดดูดิ ถ้าตอนนั้นผมมี PowerShell ผมคงไม่ต้องเดินไปเช็ค spec เครื่องลูกทีละเครื่องให้เมื่อยตุ้ม!
เทียบง่ายๆ CMD คือรถเข็น ส่วน PowerShell คือรถบรรทุก! ทั้งคู่พาของไปส่งได้ แต่ PowerShell ขนได้เยอะกว่า เร็วกว่า และทำอะไรได้หลากหลายกว่ามากๆ นี่คือตารางเปรียบเทียบให้เห็นภาพ:
| คุณสมบัติ | Command Prompt (CMD) | PowerShell |
|---|---|---|
| ชนิดของคำสั่ง | Commands ธรรมดา (e.g., dir, copy) | Cmdlets (Commands ที่เป็น Object) |
| การจัดการข้อมูล | Text-Based | Object-Based (จัดการข้อมูลเป็น Object ได้) |
| Scripting | Basic Batch Scripts | Advanced Scripting (Loops, Conditions, Functions) |
| การเข้าถึงระบบ | จำกัด | เข้าถึงระบบได้ลึกกว่า |
เอาล่ะ! มาลองของจริงกัน เริ่มจากเช็ค spec เครื่องตัวเองก่อนเลย เปิด PowerShell ขึ้นมา (พิมพ์ PowerShell ในช่อง Search ของ Windows แล้วกด Enter) จะเห็นหน้าต่างสีฟ้าๆ ขึ้นมา
ลองพิมพ์คำสั่งนี้แล้วกด Enter:
Get-ComputerInfo
คำสั่งนี้จะแสดงข้อมูลพื้นฐานของเครื่องเราออกมาเพียบ! ทั้ง OS, CPU, Memory, Mainboard โอ้โห! ละเอียดยิบ! สมัยก่อนกว่าจะได้ข้อมูลพวกนี้ ต้องลงโปรแกรมสารพัด!
ถ้าอยากดูข้อมูล CPU แบบละเอียดๆ ลองคำสั่งนี้:
Get-WmiObject -Class Win32_Processor
คำสั่งนี้จะแสดงข้อมูล CPU แบบเจาะลึก! ทั้ง Clock Speed, Number of Cores, L2 Cache, L3 Cache ครบ! ใครอยากรู้ว่า CPU ตัวเองเป็นรุ่นอะไร สเปคเท่าไหร่ จัดไป!
เคยเจอเคสลูกค้าถามว่า "เครื่องผมใช้ CPU รุ่นอะไร?" สมัยก่อนต้องเปิดเคสดู! เดี๋ยวนี้แค่ Copy คำสั่งนี้ไปให้ลูกค้า Run ก็รู้เรื่อง!
RAM ก็สำคัญ! ลองเช็คดูว่าเครื่องเรามี RAM เท่าไหร่ Bus Speed เท่าไหร่ ด้วยคำสั่งนี้:
Get-WmiObject -Class Win32_PhysicalMemory | Format-Table Manufacturer, PartNumber, SerialNumber, Capacity, Speed
คำสั่งนี้จะแสดงข้อมูล RAM แต่ละตัวในเครื่องเรา! Manufacturer, PartNumber, SerialNumber, Capacity, Speed มาครบ! ใครอยากอัพเกรด RAM ต้องเช็คข้อมูลพวกนี้ให้ดีนะ!
สมัยผมทำร้านเน็ตฯ เคยเจอเคส RAM ไม่ Compatible! เครื่องเปิดไม่ติด! เสียเวลาไปหลายชั่วโมง! ถ้ามี PowerShell คงเช็คได้ก่อนซื้อ RAM มาใส่!
Hard Disk ก็สำคัญ! PowerShell ช่วยเราจัดการ Disk ได้หลายอย่างเลย
อยากรู้ว่า Hard Disk แต่ละ Drive เหลือพื้นที่เท่าไหร่ ลองคำสั่งนี้:
Get-PSDrive -PSProvider FileSystem | Where {$_.Root -like "C:\*"} | Format-Table Name, Free, Used, @{Label="Size";Expression={$_.Used + $_.Free}}
คำสั่งนี้จะแสดง Drive ทั้งหมดในเครื่องเรา พร้อมพื้นที่ว่าง, พื้นที่ที่ใช้ไป, และขนาดรวมของ Drive นั้นๆ
สมัยก่อนต้องคลิกขวาที่ Drive แล้วเลือก Properties ถึงจะรู้! เดี๋ยวนี้แค่พิมพ์คำสั่งเดียวก็จบ!
ถ้าต้องการ Format Disk (ล้างข้อมูลทั้งหมด) สามารถใช้คำสั่งนี้ได้ (คำเตือน: ข้อมูลจะหายหมดนะ!)
Format-Volume -DriveLetter D -FileSystem NTFS -NewFileSystemLabel "Data" -Confirm:$false
คำสั่งนี้จะ Format Drive D: เป็น File System NTFS และตั้งชื่อ Volume เป็น "Data" (เปลี่ยน Drive Letter และ Label ได้ตามต้องการ)
สำคัญ: ก่อน Format Disk ต้อง Backup ข้อมูลสำคัญก่อนเสมอ! ไม่งั้นเสียใจภายหลัง!
Hard Disk ที่ใช้งานไปนานๆ จะมี Fragment (ข้อมูลกระจัดกระจาย) ทำให้เครื่องช้าลง การ Defrag จะช่วยจัดเรียงข้อมูลให้เป็นระเบียบ ทำให้เครื่องเร็วขึ้น
Optimize-Volume -DriveLetter C -Analyze -Verbose
Optimize-Volume -DriveLetter C -Defrag -Verbose
คำสั่งแรกจะ Analyze (วิเคราะห์) ว่า Drive C: มี Fragment เท่าไหร่ คำสั่งที่สองจะ Defrag (จัดเรียงข้อมูล) Drive C:
สมัยก่อนต้องใช้โปรแกรม Defrag Third-Party! เดี๋ยวนี้ PowerShell ทำได้ในตัว!
หวังว่าบทความนี้จะเป็นประโยชน์กับมือใหม่หัดใช้ PowerShell นะครับ ลองเอาไปปรับใช้กันดู SiamCafe Blog มีบทความ IT ดีๆ อีกเยอะเลย!
ดูวิดีโอเพิ่มเติมเกี่ยวกับPowerShell สำหรับมือใหม่:
ฟรีครับ! PowerShell เป็นส่วนหนึ่งของ Windows (ตั้งแต่ Windows 7 เป็นต้นมา) สามารถใช้งานได้ฟรีๆ เลย
PowerShell มีความเสี่ยง ถ้าใช้คำสั่งผิดๆ อาจทำให้ระบบเสียหายได้! ควรศึกษาคำสั่งให้ดีก่อนใช้งาน และควรระมัดระวังในการรัน Script ที่ไม่น่าเชื่อถือ
PowerShell ส่วนใหญ่จะใช้ได้กับ Hardware ที่ Windows รองรับ ถ้า Hardware มี Driver ที่ถูกต้อง PowerShell ก็จะสามารถเข้าถึงและจัดการได้
Microsoft มี Documentation อย่างเป็นทางการของ PowerShell สามารถศึกษาได้จากเว็บไซต์ของ Microsoft นอกจากนี้ยังมี Tutorials และ Courses ออนไลน์อีกมากมาย SiamCafe Blog ก็มีบทความ PowerShell ด้วยนะ!
เจอกันใหม่บทความหน้าครับ! หวังว่าทุกคนจะสนุกกับการเรียนรู้ PowerShell นะ!
สมัยผมทำร้านเน็ต ผมเคยเจอโค้ดที่เขียนแบบ $a, $b เต็มไปหมด ตอนแก้ปัญหานี่ปวดหัวเลย! พยายามตั้งชื่อตัวแปรให้มันบอกว่าตัวแปรนี้เก็บอะไร เช่น $ComputerName, $ProcessList จะช่วยให้เข้าใจง่ายขึ้นเยอะ
จำไว้ว่า โค้ดที่ดีคือโค้ดที่อ่านง่าย ไม่ใช่โค้ดที่สั้นที่สุด
อย่าคิดว่าตัวเองจะจำได้ทุกอย่าง! ใส่ comment อธิบายว่าโค้ดส่วนนี้ทำอะไร, ทำไมถึงทำแบบนี้ จะช่วยให้ตัวเองและคนอื่นที่มาแก้โค้ดต่อเข้าใจได้ง่ายขึ้นมาก
# Get the list of running processes
$ProcessList = Get-Process
ผมเคยเจอโค้ดที่ไม่มี comment เลย ตอนแก้บั๊กนี่เหมือนงมเข็มในมหาสมุทรเลยทีเดียว
โปรแกรมที่ดีต้องจัดการกับ error ที่อาจเกิดขึ้นได้ ผมแนะนำให้ใช้ try-catch เพื่อดัก error และแจ้งเตือนผู้ใช้ หรือบันทึก error ลง log file
try {
# Code that might throw an error
Get-Content -Path "C:\nonexistentfile.txt" -ErrorAction Stop
}
catch {
Write-Host "Error: $($_.Exception.Message)"
}
ตอนทำระบบจัดการร้าน ผมเจอ error ประเภทไฟล์หายบ่อยมาก try-catch ช่วยชีวิตไว้เยอะเลย
PowerShell มี cmdlet ที่ช่วย format output ได้เยอะแยะ เช่น Format-Table, Format-List ลองใช้ดู จะทำให้ผลลัพธ์ที่แสดงดูดีขึ้นเยอะ
Get-Process | Format-Table -AutoSize
ลูกค้าผมบางคนบ่นว่าข้อมูลดิบๆ อ่านยาก พอใช้ Format-Table ชีวิตดีขึ้นเยอะ
iCafeForex แนะนำเทคนิคการลงทุน
PowerShell เหนือกว่า Command Prompt เยอะ! มันเป็น object-based shell คือทุกอย่างที่ส่งออกมาจากคำสั่งต่างๆ คือ object ไม่ใช่แค่ text ทำให้เราจัดการข้อมูลได้ง่ายกว่าเยอะ แถมมี cmdlet ให้ใช้เยอะแยะมากมาย
จำเป็นมากๆ! ยิ่งถ้าคุณทำงานด้าน System Admin หรือ DevOps PowerShell คือเครื่องมือสำคัญที่จะช่วยให้คุณทำงานได้เร็วขึ้น, automate งานต่างๆ ได้ และจัดการระบบได้ง่ายขึ้น
PowerShell Core คือ PowerShell เวอร์ชัน open-source และ cross-platform รันได้บน Windows, macOS, Linux ทำให้คุณสามารถใช้ PowerShell บนระบบปฏิบัติการที่คุณต้องการได้
ลองดู SiamCafe Blog สำหรับบทความอื่นๆ
เริ่มจากพื้นฐานก่อนเลย! ทำความเข้าใจเรื่อง variable, loop, conditional statement จากนั้นลองเขียน script ง่ายๆ เช่น script ที่เปลี่ยนชื่อไฟล์, script ที่ดึงข้อมูลจาก website ค่อยๆ เรียนรู้ไปเรื่อยๆ
PowerShell ISE (Integrated Scripting Environment) เป็นเครื่องมือเก่าที่มาพร้อมกับ Windows PowerShell แต่ตอนนี้ Microsoft แนะนำให้ใช้ Visual Studio Code (VS Code) แทน เพราะ VS Code มี features ที่ดีกว่า และรองรับ PowerShell Core
PowerShell เป็นเครื่องมือที่ทรงพลังมากๆ สำหรับ IT มือใหม่ การเรียนรู้ PowerShell จะช่วยให้คุณทำงานได้ง่ายขึ้น, เร็วขึ้น และเป็นมืออาชีพมากขึ้น อย่ากลัวที่จะลองผิดลองถูก! ฝึกฝนบ่อยๆ แล้วคุณจะเก่งเอง