如果你使用的是 PowerShell 6.0 或更新版本,你已經安裝了較新的 PowerShellGet 和 PackageManagement 。 你應該確保你使用的是最新版本的模組。
如果你使用的是 PowerShell 7.4 或更新版本,你也安裝了 Microsoft.PowerShell.PSResourceGet 。 Microsoft.PowerShell.PSResourceGet 是 PowerShell 的新套件管理解決方案。 有了這個模組,你就不需要再使用 PowerShellGet 和 PackageManagement。 它是與現有的 PowerShellGet 和 PackageManagement 模組並排安裝的。
Windows PowerShell 隨 PowerShellGet 和 PackageManagement 版本 1.0.0.1 出廠。 如果你使用的是 Windows PowerShell 5.1,必須升級到最新版本的 PowerShellGet 和 PackageManagement。 PowerShellGet v1.x 的所有版本均已不再支援。
請依照以下指示安裝或更新至這些模組的最新版本。
步驟 1:啟用 TLS 1.2
要存取 PowerShell Gallery,您必須使用 Transport Layer Security (TLS) 1.2 或更高版本。 請使用以下指令在你的 PowerShell 工作階段啟用 TLS 1.2。
[Net.ServicePointManager]::SecurityProtocol =
[Net.ServicePointManager]::SecurityProtocol -bor
[Net.SecurityProtocolType]::Tls12
將此指令加入你的 PowerShell 設定檔腳本,確保每個 PowerShell 會話都設定 TLS 1.2。 如需有關設定檔的更多資訊,請參閱 about_Profiles。
步驟二:檢查已安裝的版本
要檢查目前安裝的模組版本,請執行以下指令:
$Names = @('PowerShellGet', 'PackageManagement', 'Microsoft.PowerShell.PSResourceGet')
Get-Module -Name $Names -ListAvailable
在新安裝的 Windows 系統上執行 Windows PowerShell 5.1 時,你應該會得到以下輸出:
Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Binary 1.0.0.1 PackageManagement {Find-Package, Get-Package, ...
Script 1.0.0.1 PowerShellGet {Install-Module, Find-Module, ...
如果 PowerShellGet 版本比1.0.0.1它新,你可以檢查更新並安裝最新版本。
如果你仍在執行版本 1.0.0.1,必須依照步驟讓 PowerShellGet 安裝更新的 NuGet 提供者和 nuget.exe 命令列工具。 繼續至下個步驟。
步驟三:檢查更新
要檢查 PowerShell Gallery 中模組的最新版本,請執行以下指令:
$Names = @('PowerShellGet', 'PackageManagement', 'Microsoft.PowerShell.PSResourceGet')
Find-Module -Name $Names -Repository PSGallery
你應該會得到類似以下輸出的結果:
Version Name Repository Description
------- ---- ---------- -----------
1.4.8.1 PackageManagement PSGallery PackageManagement (a.k.a. OneGet) is a n…
2.2.5 PowerShellGet PSGallery PowerShell module with commands for disc…
1.1.1 Microsoft.PowerShell.PSResourceGet PSGallery PowerShell module with commands for disc…
步驟 4:更新 NuGet 元件(如有需要)
PowerShellGet 指令要求更新後的 NuGet 提供者才能與 PowerShell Gallery 相容。 指令用於Publish-*或nuget.exedotnet.exe發佈資源。 如果兩個工具都無法使用,PowerShellGet 會安裝 nuget.exe。 如果你還在執行 PowerShellGet 版本1.0.0.1,系統Find-Module會提示你安裝 NuGet 提供者。 輸入 Y 來安裝服務提供者。
NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet
-based repositories. The NuGet provider must be available in 'C:\Program Files\PackageMan
agement\ProviderAssemblies' or 'C:\Users\user1\AppData\Local\PackageManagement\ProviderAs
semblies'. You can also install the NuGet provider by running 'Install-PackageProvider -N
ame NuGet -MinimumVersion 2.8.5.201 -Force'. Do you want PowerShellGet to install and imp
ort the NuGet provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y
VERBOSE: Installing NuGet provider.
當你回答 Y,PowerShellGet 會安裝 NuGet 提供者和 nuget.exe 命令列工具(如有需要)。
步驟 5:安裝最新版本
要安裝這些模組的最新版本,請執行以下操作:
Install-Module PowerShellGet -Repository PSGallery -Force -AllowClobber
Install-Module Microsoft.PowerShell.PSResourceGet -Repository PSGallery
備註
安裝 PowerShellGet 後,它會自動安裝最新版本的 PackageManagement。