用一行指令在 Windows 上安裝 PowerShell 6
在 Windows 10 和 Windows Server 2019 里的 PowerShell 都是預設使用 WMF 5.1 為基礎的 5.1 版本。更早期至 Windows 7 SP1 好像是 2.0 版本 …
而 PowerShell 6 (又稱 PowerShell Core) 則是一個以開源,跨平台(Windows, Linux, macOS),異質系統及雲端平台為目標來設計的版本。
PowerShell 6.X 現在仍然是和 Windows PowerShell 5.1 並行的版本,不能由 5.1 直接升級上去。
你可以很簡單地在 Microsoft Docs 里學會使用 PowerShell Core。
但其實只要一行指令,就可以下載新的 PowerShell Core 安裝檔了.
打開 PowerShell 5.1 (With Administrator)
|
|
這里解析一下:
- 首先 https://aka.ms/install-powershell.ps1 是一段 ps1 的程式碼
- 用 irm,也就是 Invoke-RestMethod,是內置的 Cmdlet,用來發一個 HTTP/HTTPS Request 給指定的 RESTful Web service
- 把回傳回來的值定義成一個 variables ->
$()
,再 calling 這個 variables ->&{}
- calling 的同時傳入參數 -UseMSI,最後用 iex,就是 Invoke-Expression 這個 Cmdlet 執行 command block 的內容。
簡單來說是官方寫好了一支 PowerShell script,你去 Request 下來執行就好 …
所以可以直接去看 https://aka.ms/install-powershell.ps1 里面那 4 百多行程式碼,學習及了解如何寫一份 PowerShell script。
然後會發現有多個參數可以設置:
-
-Destination : 安裝路徑,預設在
$env\LOCALAPPDATA\Microsoft\powershell
-
-Preview : 安裝最新的 preview 版本
-
-Quite : MSI installer 的安靜模式
-
-Daily : 去 https://powershell.myget.org/F/powershell-core-daily 上取得每天的 build 版本
-
-DoNotOverwrite : 不要覆寫安裝路徑上己有的版本
-
-AddToPath :
- 在 Windows 上把安裝路徑的絕對路徑加入 User 的 Path 環境變數中.
- 在 Linux 上創造一個指向 $Destination/pwsh 的 symlink : /usr/bin/pwsh
- 在 Linux 上創造一個指向 $Destination/pwsh 的 symlink : /usr/local/bin/pwsh
所以你想用 Preview 版本及下載至 User Me 的 Desktop 路徑上, 不使用 Installer:
|
|
然後就到 preview/ 目錄下使用最新的 preview 版本。
那 Linux/macOS 呢 ?
聰明的你讀到這邊就知道官方早就準備好各個作業系統/平台的安裝 scripts,位於 Github 上面
看得出來官方陸續為使用者寫安裝 scripts
所以在 Linux 上,只要你有權限及連網的環境,直接 curl 下來就可以了:
$ sudo bash <$(curl -s https://raw.githubusercontent.com/PowerShell/PowerShell/master/tools/install-powershell.sh)
接下來有空整理如何把 Windows 上的 PowerShell 變得好用一點,如何管理及撰寫 PowerShell script, PowerShell module 等話題.
題外話
aka.ms 這個 domain name 屬於美國東岸右方的一個 “英屬” 小群島 : Montserrat 😂