PowerShell Gallery 是您所有 PowerShell 需求的最佳選擇,無論您是初學者還是有經驗的使用者。而好消息是,PowerShell 社群提供了大量的文件、腳本、模組和其他資源。
在本教程中,您將學習如何從 PowerShell Gallery 尋找、下載和安裝資源。
請繼續關注,提升您的腳本技能吧!
前提條件
本教程將進行實際演示。為了跟隨操作,請確保您的系統已安裝 PowerShell 5.1 或更新版本。本教程使用安裝了 PowerShell 5.3 的 Windows 10,但其他版本的 Windows 和 PowerShell 也應該可以使用。
安裝 .NET Framework
在深入研究 PowerShell Gallery 之前,您首先需要一種與 PowerShell Gallery 互動的方式,而 .NET Framework 是主要方式。
您必須先安裝 .NET Framework,這對於 PowerShellGet 模組至關重要。PowerShellGet 模組至少需要 .NET Framework v4.5+。PowerShellGet 模組可讓您發現、安裝、更新和發佈 PowerShell 資源。
但在本教程中,您將安裝 .NET Framework v4.8。
?請注意,.NET Framework v4.8 可能已經安裝在您的系統上。如果是,您可以跳過此步驟。但如果您安裝了舊版本的 .NET Framework,請將其卸載並升級到較新版本。
要安裝 .NET Framework,請按照以下步驟進行:
1. 打開您喜歡的網絡瀏覽器,並訪問 官方 .NET Framework 下載頁面。
2. 接下來,點擊 下載 .NET Framework 4.8 開發人員包 鏈接下載一個類似 ndp48-devpack-enu 的文件。該文件是 NET Framework 版本 4.8 的安裝程序包。

3. 等待下載完成,然後雙擊下載的文件以啟動 .NET Framework 安裝程序。

? 如果您在安裝 .NET Framework 時遇到問題,請嘗試以 [兼容模式] 運行安裝文件
4. 在底部選中複選框以接受許可協議,然後點擊 安裝 按鈕安裝 .NET Framework 4.8。

以下是安装进度,根据您的系统配置可能需要几分钟时间。

5. 现在,一旦安装完成,请单击关闭按钮关闭安装程序。

6. 最后,以管理员身份打开PowerShell并运行以下[Start-Process]
命令以打开添加或删除程序应用程序(appwiz.cpl
)。此应用程序可让您查看系统上安装的程序列表。
您将在安装的程序列表中看到.NET Framework 4.8的条目,如下所示。

安装 PowerShellGet 模块
安装并运行.NET Framework后,您现在可以安装PowerShell Gallery的核心组件PowerShellGet模块。
PowerShellGet 版本 (1.0.0.1) 隨 Windows PowerShell 5.1 預安裝的功能有限。如果您使用的是 Windows PowerShell 5.1 或更舊版本,請考慮使用 PowerShell Gallery 的更新功能。目前寫作時的最新版本是 3.0.17-beta17。
要安裝 PowerShellGet 模組,請按以下步驟操作:
1.執行以下命令,該命令不會產生輸出,但會啟用 PowerShell 會話中的傳輸層安全性 (TLS) 1.2。TLS 是一種安全協議,用於加密通過互聯網傳輸的數據。
啟用 TLS 1.2 是至關重要的,因為 PowerShell 默認未配置為使用 TLS 1.2。此命令將 System.Net.ServicePointManager
物件的 SecurityProtocol
設置為 TLS 1.2 (Tls12
)。因此,您可以使用 TLS 1.2 或更高版本訪問 PowerShell Gallery。
? 請注意,此更改僅適用於當前的 PowerShell 會話。但您可以通過將上述命令添加到您的 PowerShell 配置文件來配置 PowerShell 始終使用 TLS 1.2。
接下來,執行以下命令Install-PackageProvider
以安裝 NuGet 套件提供者。NuGet 套件提供者允許您從 NuGet 套件存儲庫安裝和管理套件。該存儲庫是.NET 平台的中央開源套件存儲庫。
在使用 [Install-Module]
命令從 PowerShell Gallery 安裝模組之前,需要 NuGet 套件提供者。為什麼呢?因為 PowerShell Gallery 中的許多模組都是作為 NuGet 套件分發的。

安裝完成後,您現在可以利用 NuGet API。NuGet API 允許您訪問 NuGet 套件存儲庫,以創建可以與 NuGet 套件存儲庫進行交互的工具和應用程序。如何進行交互呢?執行各種任務,如搜索、安裝和更新套件。
通常,NuGet API 有兩個版本,您可以根據需求和客戶端及服務器的功能來使用。
Version | Description | Usage |
v2 | Uses XML as the data format for communication between the client and server.
This version is based on the original NuGet API introduced in 2011 and is the legacy version of the API. |
The v2 API is recommended if you use an older version of NuGet or a client or server that does not support the v3 API.
This version is supported by all versions of NuGet and is compatible with older clients and servers. |
v3 | Uses JSON as the data format for communication between the client and server. This version was introduced in 2013 as an improvement over the v2 API and included many new features and improvements.
Many new features included are support for side-by-side package installation, improved search capabilities, and large package support. |
The v3 API is recommended if you use a newer NuGet version. The v3 API is faster and more efficient than the v2 API.
This version is not supported by older versions of NuGet and may not be compatible with older clients and servers. |
? 一般建議使用 NuGet API v3,因為它提供了最新的功能和能力。
3. 執行下面的 Set-PSRepository
命令,此命令不會提供輸出,但會將您的 PowerShell Gallery (PSGallery
) 儲存庫設定為可信任的套件來源。這樣做可以讓您從 PowerShell Gallery 安裝模組。
4. 現在,執行下面的 Install-Module
命令來安裝最新版本 (-AllowPrerelease
) 的 PowerShellGet
模組。

5. 最後,執行下面的 Get-InstalledModule
命令來驗證 PowerShellGet
模組是否成功安裝。
如果安裝成功,您將在下面顯示的列表中看到 PowerShellGet 模組,PSGallery 將作為儲存庫。

從 PowerShell Gallery 發現模組
現在您已經安裝了 PowerShellGet 模組,您可以從 PowerShell Gallery 搜尋並安裝模組。這樣做可以擴展您的 PowerShell 環境的功能,並更有效地自動化複雜任務。
要在 PowerShell Gallery 中搜索模組,您可以使用 Find-Module
cmdlet。此 cmdlet 會在 PowerShell Gallery 中搜索符合指定搜索條件(如模組名稱、版本或標籤)的模組。
1. 執行以下命令以搜索 PowerShell Gallery 中名稱匹配 AzureRM
的模組:Find-Module
。
下面的輸出顯示 PowerShell Gallery 中僅有一個與名稱 AzureRM 匹配的模組。 您還可以查看每個模組的基本信息,例如其名稱、版本、存儲庫等。

2. 接下來,執行以下命令之一,使用 -Tag
和關鍵字 Azure
來搜索模組。 -Tag
參數不區分大小寫,因此您可以將 azure
或 Azure
用作標籤關鍵字。
為什麼要使用模組標籤?標籤是與模組相關聯的關鍵詞或標籤,描述了其在 PowerShell Gallery 中的內容和功能。
例如,如果一個模組與 Azure 雲平台相關,則可以標記為 Azure
關鍵詞。 這樣做可以讓對 Azure 相關資源感興趣的用戶通過搜索 Azure
標籤輕鬆找到並發現該模組。
PowerShell Gallery 是一個由廣泛的作者貢獻的資源庫,其中有許多與熱門關鍵字如 Azure
相關的模組。
因此,您將看到一長串符合您關鍵字或標籤的模組清單,如下面的螢幕截圖所示。

? 您還可以使用標籤來分組相關的模組,以便更快地找到相關資源。例如,使用標籤
Virtualization
來分組與虛擬化技術相關的模組,例如 Hyper-V 或 VMware。
3. 現在,執行以下命令以縮小搜尋範圍並找到特定的模組,將 Find-Module
cmdlet 中的參數結合起來使用。
下面的命令根據以下參數從 PowerShell Gallery 中找到一個模組:
-Name
– 搜尋具有特定名稱Az.Compute
的模組。
-Tag
– 搜尋具有標籤Azure
和Microsoft
的模組。

安裝和更新模組
一旦找到您有興趣使用的模組,安裝該模組只需要幾個按鍵。您可以使用 Install-Module
cmdlet 從 PowerShell Gallery 下載模組並安裝到本地系統。
1. 執行以下命令從 PowerShell Gallery 下載並安裝 Az.Compute
模組。
如果成功,此命令不会产生输出,但你将在以下步骤中验证安装情况。
2. 接下来,运行以下Get-InstalledModule
命令以验证Az.Compute
模块是否已安装在你的系统中。

? 另外,运行
Get-InstalledModule
命令,不带参数,以显示系统上所有已安装模块的列表。但请注意,如果安装了太多模块,滚动列表可能会伤害你的眼睛。

3. 现在,运行下面的Update-Module
命令,该命令不会提供输出,但会搜索特定模块(即Az.Compute
)的最新版本并更新它。
更新已安装的模块可能包括错误修复、新功能或其他改进。
卸载 PowerShell 模块
有时你可能希望从系统中删除一个模块。例如,如果你不再需要一个模块或它存在问题。
要从系统中卸载一个模块,你可以使用Uninstall-Module
命令。此命令将从系统中移除模块及其所有文件,有效地卸载它。
? 在继续之前,请仔细考虑卸载模块的影响。卸载一个模块可能会产生意想不到的后果,比如破坏依赖于该模块的其他程序或脚本。
運行以下Uninstall-Module
指令以從系統中卸載特定模組(Az.Compute
)。如果卸載成功,此指令不會產生輸出。
?如果其他程式或腳本正在使用該模組,
Uninstall-Module
指令將拋出錯誤,卸載將失敗。
結論
PowerShell 模組是強大的工具,可以快速為 PowerShell 環境添加功能。在本教程中,與 PowerShell Gallery 一起,您可以使用幾個指令發現並安裝模組。
利用 PowerShell Gallery,尋找 PowerShell 模組,今天就自定義和增強您的 PowerShell 腳本和工作流程!