離線安裝PowerShell Module | nupkg安裝
前篇文章[1]提到VSSetupPowerShellModule,在一般連網環境用Install-Module可自動下載安裝:但如果主機處在連不到網際網路的網段,Install-Module指令會冒出如下錯誤:這篇就來介紹如何在離線環境安裝PowerShell。參考:ManualPackageDownload[2]首先,PowerShellGallery網站的模組頁面有個ManualDownload頁籤:按【Downloadtherawnupkgfile】可下載.nupkg檔。.nupkg檔是個ZIP檔,用解壓縮工具檢視可在其中看到Module檔案摻雜els、package資料夾及[content_type].xml、.nuspec等NuGet專屬內容。下一步是將NuGet專屬內容以外的Module檔...
前篇文章[1]提到 VSSetup PowerShell Module,在一般連網環境用 Install-Module 可自動下載安裝:
但如果主機處在連不到網際網路的網段,Install-Module 指令會冒出如下錯誤:
這篇就來介紹如何在離線環境安裝 PowerShell。參考:Manual Package Download[2]
首先,PowerShell Gallery 網站的模組頁面有個 Manual Download 頁籤:
按 【Download the raw nupkg file】可下載 .nupkg 檔。
.nupkg 檔是個 ZIP 檔,用解壓縮工具檢視可在其中看到 Module 檔案摻雜 els、package 資料夾及 [content_type].xml、.nuspec 等 NuGet 專屬內容。下一步是將 NuGet 專屬內容以外的 Module 檔案複製到 PowerShell 模組目錄下,由 .nupkg 檔名取出模組名稱及版號,建立【模組名稱版號】的資料夾結構。PowerShell 模組目錄的所在位置可透過 $Env:PSModulePath 取得,C:UsersusernameDocumentsWindowsPowerShellModule無權限需求最方便但只對單一使用者有效,伺服器環境建議用管理者權限裝到 C:Program FilesWindowsPowerShellModules:
若一切無誤,就可以開始使用模組了。(註:手動安裝的模組無法用 Uninstall-Module 移除,要靠人工刪檔移除,就想成綠色軟體唄)
手工操作有點複雜又容易失誤,不符合我推動 PowerShell 以求標準化自動化的初衷,所以我試寫了以下腳本將解壓縮及複製檔案一氣喝成:
Param ( [Parameter(Mandatory=$true)] [string] $nupkgName ) $ErrorActionPreference = "STOP" if (!(Test-Path $nupkgName -P...