บทนำ
นักพัฒนาได้รวม PowerShell Module ใหม่ชื่อ PackageManagement เข้าไปใน Windows 10 PackageManagement (ชื่อเดิม OneGet) ช่วยให้สามารถติดตั้ง จัดการ และถอนการติดตั้ง Applications และ Programs จาก Repository ภายนอก (หรือ Local) และจัดการรายการ Repository ที่เชื่อมต่อจาก PoSh Console ได้ กล่าวคือ ตอนนี้สามารถติดตั้งโปรแกรมจาก Command Prompt ใน Windows 10/Windows Server 2016 ได้เหมือน Linux ที่ใช้คำสั่ง apt-get install
Module PackageManagement ทำให้การติดตั้งซอฟต์แวร์ใหม่ง่ายขึ้น การติดตั้งสรุปได้เป็นการรันคำสั่ง PowerShell เพียงคำสั่งเดียว User ไม่ต้องค้นหาและดาวน์โหลด Software Distributions จาก Web เอง จึงลดความเสี่ยงในการดาวน์โหลดโปรแกรมที่ล้าสมัยหรือติดไวรัส ซอฟต์แวร์ติดตั้งจาก Trusted Source เมื่อซอฟต์แวร์ถูกอัปเดตใน Repository จะสามารถอัปเดตอัตโนมัติบน Client ได้
PackageManagement Module
PackageManagement Module ผสานรวมอยู่ใน Windows 10 แล้ว และต้องการ PowerShell 5 เพื่อให้ทำงานบน Windows 8.1 ต้องติดตั้ง Windows Management Framework 5.0 ก่อน Microsoft ยังออก PackageManagement Module แยกสำหรับ PowerShell v.3 และ 4
แสดงรายการ Cmdlets ที่มีใน Module:
Get-Command -Module PackageManagement
ใน Version ปัจจุบัน (v 1.0.0.1) มีคำสั่งดังต่อไปนี้:
- Find-Package – ค้นหา Package (โปรแกรม) ใน Repository ที่มีอยู่
- Get-Package – แสดงรายการ Packages ที่ติดตั้งแล้ว
- Get-PackageProvider – แสดงรายการ Package Providers ที่มีบนคอมพิวเตอร์
- Get-PackageSource – แสดงรายการ Package Sources ที่มีอยู่
- Install-Package – ติดตั้ง Package (โปรแกรม) บนคอมพิวเตอร์
- Register-PackageSource – เพิ่ม Package Source สำหรับ Provider
- Save-Package – บันทึก Package ไว้ใน Local โดยไม่ติดตั้ง
- Set-PackageSource – ตั้งค่า Provider เป็น Package Source
- Uninstall-Package – ถอนการติดตั้ง Program (Package)
- Unregister-PackageSource – ลบ Provider ออกจากรายการ Package Sources
Package Providers
Packages ได้รับบริการจาก Providers ต่างๆ ที่สามารถรับ Packages จาก Sources ต่างๆ แสดงรายการ Providers ที่มีอยู่:
Find-PackageProvider
โดย Default มี Package Sources ติดตั้งอยู่ 2 ตัว: nuget.org และ PSGallery (Official Online Gallery ของ PowerShell Scripts จาก MSFT) ออกแบบมาสำหรับ Programmers และ System Admins
หมายเหตุ: ใน Nano Server มี Provider 特別 คือ NanoServerPackage จะอธิบายในบทความถัดไป
เพื่อเข้าถึง Application Software Repository ให้เชื่อม Repository ยอดนิยม – Chocolatey ซึ่งมีโปรแกรมมากกว่า 4,500 ตัว
ติดตั้ง Provider Chocolatey
Install-PackageProvider chocolatey
ยืนยันการติดตั้ง Provider โดยกด Y
ทำให้ Chocolatey เป็น Trusted Package Source เพื่อไม่ต้องยืนยันการติดตั้ง Package ทุกครั้ง:
Set-PackageSource -Name chocolatey -Trusted
ตรวจสอบว่า Chocolatey พร้อมใช้งานใน Application Repositories:
Get-PackageSource
Name ProviderName IsTrusted Location ---- ------------ --------- -------- PSGallery PowerShellGet False https://www.powershellgallery.com/api/v2/ chocolatey Chocolatey True https://chocolatey.org/api/v2/
การติดตั้ง Applications จาก Chocolatey Repository
รายการ Applications ที่มีอยู่สามารถดูได้จากเว็บ Chocolatey อย่างเป็นทางการ (https://chocolatey.org/packages)
สามารถค้นหาและติดตั้ง Apps ได้จาก PowerShell Console โดยตรง ตัวอย่าง: ต้องการดู PDF ต้องติดตั้ง Adobe Acrobat Reader เนื่องจากไม่รู้ชื่อเต็ม จึงค้นหาชื่อ Package ใน Directory ก่อน ค้นหาด้วย Keyword "adobe":
Find-Package -Name *adobe* -Source Chocolatey
จะปรากฏรายการ Packages ที่มี Keyword นี้ ต้องการ adobereader (ชื่อ Package จาก Column Name ที่ต้องใช้)
รันการติดตั้ง Adobe Reader Package:
Install-Package -Name adobereader -ProviderName Chocolatey
บนหน้าต่าง PowerShell จะมี Slider แสดงการดาวน์โหลด หลังดาวน์โหลดเสร็จ จะติดตั้งบนระบบทันที
ตัวอย่างเพิ่มเติม: SysInternals Tools
Find-Package -Name Sysinternals | Install-Package
เนื่องจาก Package นี้ไม่ต้อง Install จึงถูกบันทึกไว้บนคอมพิวเตอร์ที่ C:\Chocolatey\lib\ (ตัวอย่าง: C:\Chocolatey\lib\sysinternals.2016.11.18\tools)
ติดตั้งหลาย Applications พร้อมกันได้ด้วยคำสั่งเดียว:
Find-Package -Name firefox, winrar, notepadplusplus, putty, dropbox | Install-Package
วิธีถอนการติดตั้ง Package
ถอนการติดตั้ง Package ได้ด้วยคำสั่งเดียว ตัวอย่าง ถอน Adobe Reader:
Uninstall-Package adobereader
สรุป
เราได้พิจารณาวิธีใหม่ในการติดตั้ง Windows Applications จาก PowerShell Command Prompt ในอนาคตอาจมี Graphical Add-ins สำหรับ PackageManagement ที่ช่วยให้ User ทั่วไปจัดการ Install/Uninstall ซอฟต์แวร์ได้ง่ายโดยไม่ต้องมีทักษะ CLI