ก้าวกระโดดสู่ PowerShell Core
เมื่อฉันพูดถึงบน Twitter ว่าฉันกำลังเปลี่ยนไปใช้ PowerShell Core ในฐานะ “ตัวขับเคลื่อนรายวัน” ของฉัน ฉันได้รับคำติชมบางส่วนที่ถามว่าทำไมหรือไม่เกี่ยวข้องกับพวกเขา และอาจไม่ใช่ก็ได้ ฉันไม่มีเซิร์ฟเวอร์ที่ใช้ Linux ที่ฉันต้องจัดการ ทุกสิ่งที่ฉันเรียกใช้ยังคงเป็น Windows Server 2016 ฉันยังใช้เดสก์ท็อป Windows 10 อยู่ โดยส่วนตัวแล้ว ฉันจำเป็นต้องก้าวกระโดดเพื่อเรียนรู้สิ่งใหม่และแตกต่างใน PowerShell Core อย่างแท้จริง เพื่อที่ฉันจะได้สอนและพัฒนาเนื้อหาได้ แต่ฉันก็รู้ด้วยว่า Windows PowerShell 5.1 มีคุณสมบัติครบถ้วน Microsoft จะไม่พัฒนามันอีกต่อไป Windows PowerShell จะไม่หายไป แต่อนาคตคือ PowerShell Core อย่างชัดเจน คุณสามารถเรียกใช้ PowerShell Core เคียงข้างกันกับ Windows PowerShell ได้ จึงไม่เหมือนกับว่าฉันต้องยอมเสียอันหนึ่งเพื่ออีกอันหนึ่ง
หากคุณต้องการจัดการเซิร์ฟเวอร์ที่ไม่ใช่ Windows และเซิร์ฟเวอร์เหล่านั้นสามารถเรียกใช้ PowerShell Core ได้ ก็สมเหตุสมผลและเป็นข้อกำหนดในทางปฏิบัติในการเรียกใช้ PowerShell Core บนเดสก์ท็อปของคุณ แม้ว่าจะมีข้อจำกัดในปัจจุบัน แต่ PowerShell Core และ .NET Core ที่สำคัญ ยังคงได้รับการพัฒนาและอัปเดตต่อไป ฉันขอยืนยันว่างานถัดไปของคุณอาจอยู่ในสภาพแวดล้อมที่แตกต่างกันมากกว่า ซึ่งประสบการณ์ของคุณกับ PowerShell Core จะเป็นประโยชน์
แม้ว่าฉันจะติดตั้ง PowerShell Core แล้ว แต่ฉันก็รู้ว่าฉันไม่มีเวอร์ชันล่าสุด ฉันใช้คำสั่งจากโมดูล PSReleaseTools ของฉัน
จากนั้นฉันก็ดาวน์โหลดแพ็คเกจ msi สำหรับ Windows
Get-PSReleaseAsset -Family Windows | where {$_.format -eq 'msi' -And $_.filename -match 'x64'} |
Save-PSReleaseAsset -Path D:\PS6\ -Passthru
เรียกใช้ไฟล์ PowerShell Core ที่ติดตั้งไว้ภายในไม่กี่นาที และไม่จำเป็นต้องรีบูต ฉันปักหมุดโปรแกรมไว้ที่แถบงานของฉัน และฉันพร้อมที่จะใช้งานแล้ว ฉันไม่ควรที่จะไม่มี PowerShell ISE ที่เทียบเท่าใน PowerShell Core แต่นั่นไม่สำคัญตั้งแต่ฉันนำ VS Code มาเป็นเครื่องมือในการพัฒนาหลักของฉันเมื่อไม่กี่ปีก่อน หากฉันต้องการ จริงๆ ฉันยังคงสามารถเปิดใช้งาน PowerShell ISE ได้
เนื่องจากฉันใช้เวลาส่วนใหญ่ไปกับการแจ้งเตือนของ PowerShell คุณอาจคาดหวังว่าฉันจะใช้ประโยชน์จากสคริปต์โปรไฟล์อย่างเต็มที่ในการกำหนดค่า อย่างไรก็ตาม เมื่อฉันเปิดใช้งาน PowerShell Core จะไม่มีสคริปต์โปรไฟล์ปัจจุบันของฉันเลย โปรดจำไว้ว่า PowerShell Core และ Windows PowerShell สามารถทำงานเคียงข้างกันได้ ซึ่งหมายความว่าแต่ละคนมีชุดสคริปต์โปรไฟล์ของตัวเอง
อย่างที่คุณเห็นเส้นทาง PowerShell Core นั้นแตกต่างอย่างสิ้นเชิง เช่นเดียวกับ Windows PowerShell ไฟล์เหล่านี้ไม่มีอยู่ คุณต้องสร้างมันขึ้นมา เนื่องจากฉันต้องการสร้างประสบการณ์ Windows PowerShell ของฉันใหม่ลงใน PowerShell Core ฉันจึงเริ่มด้วยการคัดลอกโปรไฟล์ที่มีอยู่ ในเซสชัน Windows PowerShell ของฉัน ฉันได้คัดลอกสคริปต์โปรไฟล์ Current User All Hosts ไปยังไฟล์ PowerShell Core ที่เกี่ยวข้อง
copy $profile.CurrentUserAllHosts -Destination ~\documents\PowerShell\profile.ps1
โปรไฟล์นี้มีแนวโน้มที่จะโหลดโมดูลล่วงหน้าและกำหนดการตั้งค่าส่วนกลางของฉัน อย่างไรก็ตาม เมื่อฉันเปิดตัว PowerShell Core สคริปต์ส่วนใหญ่ไม่ทำงานหรือมีข้อผิดพลาด นั่นเป็นเพราะว่าฉันพยายามโหลดโมดูลที่ PowerShell Core ไม่รู้อะไรเลย ตำแหน่งของโมดูลจะแตกต่างกัน
ฉันสามารถติดตั้งโมดูลใหม่ใน PowerShell Core อีกครั้งได้ แต่นั่นเป็นงานที่หนักและมีค่าใช้จ่ายสูง ทางออกที่ง่ายกว่าคือการติดตั้งโมดูล WindowsCompatibility ใน PowerShell Core ในสคริปต์โปรไฟล์ของฉัน ฉันเพิ่มคำสั่ง Add-WindowsPSModulePath เมื่อฉันทำเช่นนั้น PowerShell Core จะสามารถ “เห็น” โมดูลอื่นๆ ที่ติดตั้งไว้ทั้งหมดได้
ไม่มีการรับประกันว่าทุกโมดูลจะทำงานใน PowerShell Core ฉันรู้แล้วว่าบางอย่างไม่ได้เกิดจากข้อจำกัดใน .NET Framework ฉันคาดหวังว่าโปรแกรมหลักๆ เช่น Active Directory จะได้รับการปรับโครงสร้างใหม่ในที่สุด นอกจากนี้ นั่นยังเป็นเหตุผลหนึ่งในการกระโดดเข้าสู่ PowerShell Core ฉันต้องการเรียนรู้ว่าอะไรใช้ได้ผลและอะไรใช้ไม่ได้ (ยัง)
ฉันทำตามกระบวนการที่คล้ายกันโดยการคัดลอกสคริปต์ Current User Current Host จากตำแหน่ง Windows PowerShell ไปยังตำแหน่ง PowerShell Core ที่เกี่ยวข้อง ปัจจุบัน ไม่มีโฮสต์ PowerShell Core หลายโฮสต์บนเครื่องของฉัน และฉันเป็นผู้ใช้เพียงคนเดียว ดังนั้นในทางเทคนิคแล้ว ฉันควรจะสามารถรวมทุกอย่างไว้ในสคริปต์ Current User Current Host ได้ แต่สำหรับตอนนี้ ฉันคิดว่าฉันจะเก็บสคริปต์แยกต่างหากไว้เพื่อจุดประสงค์ทางแนวคิด หากฉันเพิ่มบางสิ่งที่แนะนำโฮสต์ PowerShell Core อื่น ฉันก็พร้อมแล้ว
ขั้นตอนสุดท้ายของฉันคือการกำหนดค่าหน้าต่าง PowerShell Core เนื่องจากฉันใช้เวลาอยู่กับมันมาก ฉันจึงต้องทำให้มันสบายใจ ฉันคลิกขวาที่เมนูระบบเพื่อรับกล่องคุณสมบัติ
ฉันเชื่อว่าโทนสีเริ่มต้นสำหรับ PowerShell Core จะเป็นสีดำ ดังนั้นฉันจะเก็บสีนั้นไว้ นอกจากนี้ยังช่วยให้มีสีที่แตกต่างกันหากฉันเปิด Windows PowerShell ด้วย ฉันตัดสินใจทำให้หน้าต่าง PowerShell Core ของฉันดูเซ็กซี่ยิ่งขึ้นด้วยการตั้งค่าระดับความทึบ ฉันสามารถทำเช่นเดียวกันกับ Windows PowerShell บน Windows 10 ได้แต่ไม่เคยรู้สึกมีแรงบันดาลใจเลย
บนแท็บเค้าโครง ฉันตั้งค่าขนาดหน้าต่างและขนาดบัฟเฟอร์หน้าจอเป็น 120×35 หากคุณคงไว้เหมือนเดิม คุณจะหลีกเลี่ยงแถบเลื่อนแนวนอน บนแท็บแบบอักษร เนื่องจากฉันมีจอภาพ 4K และถึงระดับวุฒิภาวะแล้ว ฉันจึงตั้งค่าขนาดแบบอักษรเป็น 24 ฉันชอบใช้ Consolas
ครั้งต่อไป ฉันจะแบ่งปันกับคุณเกี่ยวกับฟังก์ชันพร้อมต์ที่ฉันพัฒนาขึ้นสำหรับงาน PowerShell Core ของฉัน ตลอดทั้งปี ฉันหวังว่าจะแบ่งปันประสบการณ์การทำงานและใช้งาน PowerShell Core กับคุณ ฉันหวังว่าคุณจะแบ่งปันประสบการณ์ของคุณเช่นกัน
