PowerShell 101:查找和安装新模块

在 PowerShell 中管理任务常常感觉像是魔法——直到你需要缺失的功能。无论是自动更新、管理用户帐户,还是访问高级功能,你会很快发现内置工具并不能涵盖所有内容。在这种情况下,你意识到:我需要更多模块,但我该从哪里开始?

在本指南结束时,你将具备自动化更多任务的技能,使你的环境保持精简高效。

深入了解,成为 PowerShell 模块专家!

在 PowerShell Gallery 中搜索模块

在 PowerShell 中管理任务通常需要未内置的模块,因此你需要搜索它们。例如,如果你在管理 Windows 更新或自动化复杂任务,默认的 PowerShell 安装可能不包括必要的工具。

如果你不确定确切的模块名称,可以先使用通配符搜索 Find-Module:

Find-Module '*windowsupdate*'

此命令列出与通配符模式匹配的模块。

一旦找到所需的模块,通过指定模块名称(即 PSWindowsUpdate)来细化搜索:

Find-Module -Name 'PSWindowsUpdate'

安装模块

找到模块只是第一步;接下来是将其安装到你的系统中。PowerShell Gallery 中的模块就像应用商店中的应用。只要你知道自己在寻找什么,就可以快速下载和安装它们。

通过将 Find-Module 的输出通过管道传输到 Install-Module 直接下载模块:

Find-Module -Name 'PSWindowsUpdate' | Install-Module

如果您看到关于不受信任存储库的提示,原因是 PowerShell 需要明确确认。当从具有 Untrusted 安装策略的存储库下载时会发生这种行为。

为避免重复提示,您可以将存储库策略设置为 Trusted

Set-PSRepository -Name PSGallery -InstallationPolicy Trusted

重新运行安装命令:

Find-Module -Name 'PSWindowsUpdate' | Install-Module

验证已安装模块

安装模块后,您需要确保它已准备就绪。但是,该模块可能安装在您不希望或需要额外验证的位置。

例如,默认情况下 PSWindowsUpdate 模块会安装在您的用户配置文件中。如果是这样,在尝试执行其命令之前确认其位置至关重要。

要确认 PowerShell 安装模块的位置,请使用:

Get-Module -Name PSWindowsUpdate -ListAvailable | Select-Object ModuleBase

此命令返回文件系统中模块的位置。默认情况下,模块安装在您的用户配置文件的 Documents 文件夹中。

列出模块中的所有可用命令:

Get-Command -Module PSWindowsUpdate

卸载模块

即使是最有价值的模块也不会永远需要,比如 PSWindowsUpdate 模块。在使用此模块完成脚本或管理更新后,您可能希望将其删除,以保持系统整洁或防止不必要的资源使用。

要删除特定模块:

Uninstall-Module -Name PSWindowsUpdate

如果模块当前正在使用,PowerShell 可能会阻止您卸载它。

检查模块是否已加载:

Get-Module PSWindowsUpdate

如果已加载,请卸载它:

Remove-Module PSWindowsUpdate

现在,请重新尝试卸载:

Uninstall-Module -Name PSWindowsUpdate

如果问题仍然存在,请关闭当前的 PowerShell 会话,重新打开并再次运行卸载命令。

结论

在本教程中,您学习了如何通过利用 PowerShell Gallery 有效地管理 PowerShell 模块。我们首先搜索模块,然后安装它们并卸载不需要的模块。您还遇到了一些实际场景,例如解决不受信任的存储库提示和卸载活动模块。

掌握这些技能后,您可以探索 PowerShell Gallery 中的其他模块,以增强自动化并解决您环境中的挑战。例如,可以考虑管理 Active Directory 或 Azure 的模块,或者甚至尝试创建自定义模块与他人共享。

通过掌握模块管理,您解锁了 PowerShell 的全部潜力,使其能够适应您独特的管理需求。

Source:
https://adamtheautomator.com/powershell-module-management/