当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 库入门

作者:精品下载站 日期:2024-12-14 13:12:14 浏览:14 分类:玩电脑

PowerShell 库入门


无论您是初学者还是经验丰富的用户,PowerShell 库都是满足您所有 PowerShell 需求的最终目的地。好消息是 PowerShell 社区创建了大量文档、脚本、模块和其他资源。

在本教程中,您将学习从 PowerShell 库查找、下载和安装资源。

请立即关注并提升您的脚本游戏!

先决条件

本教程将是一个实践演示。要继续操作,请确保您的系统安装了 PowerShell 5.1 或更高版本。本教程使用安装了 PowerShell 5.3 的 Windows 10,但其他版本的 Windows 和 PowerShell 也应该可以使用。

安装.NET框架

在深入了解 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. 打开您最喜欢的 Web 浏览器,然后导航到官方 .NET Framework 下载页面。

2. 接下来,点击下载.NET Framework 4.8 Developer Pack链接,下载类似于ndp48-devpack-enu的文件。该文件是.NET Framework版本的安装程序包4.8.

[玩转系统] PowerShell 库入门

3. 等待下载完成,然后双击下载的文件以启动 .NET Framework 安装程序。

[玩转系统] PowerShell 库入门

?如果您在安装 .NET Framework 时遇到问题,请尝试在[兼容模式]下运行安装文件

4. 勾选底部的复选框以接受许可条款,然后单击安装按钮安装.NET Framework 4.8。

[玩转系统] PowerShell 库入门

您可以在下面看到安装进度,这可能需要几分钟的时间,具体取决于您的系统配置。

[玩转系统] PowerShell 库入门

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

[玩转系统] PowerShell 库入门

6. 最后,以管理员身份打开 PowerShell 并运行以下[Start-Process]命令以打开添加或删除程序应用程序 (appwiz.cpl代码>)。该应用程序可让您查看系统上已安装程序的列表。

Start-Process "appwiz.cpl”

您将在已安装程序列表中看到 .NET Framework 4.8 的条目,如下所示。

[玩转系统] PowerShell 库入门

安装 PowerShellGet 模块

安装并运行 .NET Framework 后,您现在可以安装 PowerShell 库的核心组件,即 PowerShellGet 模块。

随 Windows Power Shell 5.1 预装的 PowerShellGet 版本 (1.0.0.1) 功能有限。如果您使用的是 Windows PowerShell 5.1 或更早版本,请考虑使用 PowerShell 库的更新功能。截至撰写本文时,最新版本是 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 库。

[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12

? 请注意,此更改仅适用于当前的 PowerShell 会话。但您可以通过将上述命令添加到您的 PowerShell 配置文件中来将 PowerShell 配置为始终使用 TLS 1.2。

接下来,运行下面的 Install-PackageProvider 命令来安装 NuGet 包提供程序。 NuGet 包提供程序允许您从 NuGet 包存储库安装和管理包。该存储库是 .NET 平台开源包的中央存储库。

在使用 [Install-Module] cmdlet 从 PowerShell 库安装模块之前,需要 NuGet 包提供程序。为什么? PowerShell 库中的许多模块都作为 NuGet 包分发。

Install-PackageProvider -Name NuGet -Force

[玩转系统] PowerShell 库入门

安装后,您现在可以利用 NuGet API。 NuGet API 允许您访问 NuGet 包存储库以创建可与 NuGet 包存储库交互的工具和应用程序。怎么互动?执行各种任务,例如搜索、安装和更新包。

通常,NuGet API 有两个版本,您可以根据您的要求以及客户端和服务器的功能来使用。

VersionDescriptionUsagev2Uses 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.v3Uses 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 库安装模块。

Set-PSRepository -Name PSGallery -InstallationPolicy Trusted -ErrorAction Stop

4. 现在,运行下面的 Install-Module 命令来安装 PowerShellGet 模块的最新版本 (-AllowPrerelease)。

Install-Module -Name PowerShellGet -AllowPrerelease -Force

[玩转系统] PowerShell 库入门

5. 最后,运行下面的Get-InstalledModule命令来验证PowerShellGet模块是否已成功安装。

Get-InstalledModule PowerShellGet

如果安装成功,您将看到列出的 PowerShellGet 模块,如下所示,其中 PSGallery 作为存储库。

[玩转系统] PowerShell 库入门

从 PowerShell 库中发现模块

现在您已经安装了 PowerShellGet 模块,您可以从 PowerShell 库搜索并安装模块。这样做可以让您扩展 PowerShell 环境的功能并更有效地自动执行复杂的任务。

要在 PowerShell 库中搜索模块,您可以使用 Find-Module cmdlet。此 cmdlet 在 PowerShell 库中搜索与指定搜索条件(例如模块名称、版本或标签)匹配的模块。

1. 运行下面的 Find-Module 命令,在 PowerShell 库中搜索名称与 AzureRM 匹配的模块。

Find-Module -Name AzureRM

下面的输出表明只有一个模块与 PowerShell 库中的名称 AzureRM 匹配。您还可以查看每个模块的基本信息,例如名称、版本、存储库等。

[玩转系统] PowerShell 库入门

2. 接下来,运行以下任一命令,使用带有关键字 Azure-Tag 来搜索模块。 -Tag 参数不区分大小写,因此您可以使用 azureAzure 作为标记关键字。

为什么要为模块使用标签?标签是与模块关联的关键字或标签,描述其在 PowerShell 库中的内容和功能。

例如,如果模块与Azure云平台相关,您可以标记Azure关键字。这样做可以让对 Azure 相关资源感兴趣的用户通过搜索 Azure 标签轻松查找和发现该模块。

Find-Module -Tag 'Azure'
Find-Module -Tag 'azure'

PowerShell Gallery 是一个广泛的资源存储库,由众多作者贡献,并且有许多与 Azure 等流行关键字相关的模块。

因此,您将看到一长串与您的关键字或标签匹配的模块,如以下屏幕截图所示。

[玩转系统] PowerShell 库入门

? 您还可以使用标签对相关模块进行分组,更快地查找相关资源。例如,使用标签Virtualization对与虚拟化技术相关的模块进行分组,例如Hyper-V或VMware。

3. 现在,运行以下命令来缩小搜索范围,并通过组合 Find-Module cmdlet 中的参数来查找特定模块。

以下命令考虑以下参数从 PowerShell 库中查找模块:

  • -Name - 搜索具有特定名称 Az.Compute 的模块。

  • -Tag - 搜索带有标签 AzureMicrosoft 的模块。
Find-Module -Name 'Az.Compute' -Tag 'Azure', 'Microsoft’

[玩转系统] PowerShell 库入门

安装和更新模块

一旦找到您感兴趣的模块,只需按几下按键即可安装该模块。您可以使用 Install-Module cmdlet 从 PowerShell 库下载模块并将其安装在本地系统上。

1. 运行以下命令从 PowerShell 库下载并安装 Az.Compute 模块。

如果成功,此命令不会产生输出,但您将在以下步骤中验证安装。

Install-Module -Name 'Az.Compute'

2. 接下来,运行以下 Get-InstalledModule 命令来验证 Az.Compute 模块是否已安装在系统中。

Get-InstalledModule -Name 'Az.Compute'

[玩转系统] PowerShell 库入门

? 或者,运行不带参数的 Get-InstalledModule cmdlet 以显示系统上所有已安装模块的列表。但请注意,如果安装了太多模块,则在滚动列表时可能会伤害您的眼睛。

[玩转系统] PowerShell 库入门

3. 现在,运行以下 Update-Module 命令,该命令不提供输出,但会搜索特定模块(即 Az.Compute)的最新版本并进行更新它。

更新已安装的模块可能包括错误修复、新功能或其他改进。

Update-Module -Name Az.Compute

卸载 PowerShell 模块

有时您可能想从系统中删除某个模块。例如,如果您不再需要某个模块或者它有问题。

要从系统中卸载模块,您可以使用 Uninstall-Module cmdlet。此 cmdlet 会从系统中删除模块及其所有文件,从而有效地卸载它。

? 请确保在继续之前仔细考虑卸载模块的影响。卸载模块可能会产生意想不到的后果,例如破坏依赖于该模块的其他程序或脚本。

运行以下 Uninstall-Module 命令从系统中卸载特定模块 (Az.Compute)。如果卸载成功,此命令不会产生输出。

Uninstall-Module -Name Az.Compute

? 如果其他程序或脚本当前正在使用该模块,Uninstall-Module cmdlet 将抛出错误,并且卸载失败。

结论

PowerShell 模块是功能强大的工具,可让您快速向 PowerShell 环境添加功能。在本教程中,与 PowerShell Gallery 一起,您可以使用几个命令来发现和安装模块。

立即利用 PowerShell 库并寻找 PowerShell 模块来自定义和增强您的 PowerShell 脚本和工作流程!

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯