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

[玩转系统] PowerShell卸载模块|如何在PowerShell中使用卸载模块?

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

PowerShell卸载模块|如何在PowerShell中使用卸载模块?


[玩转系统] PowerShell卸载模块|如何在PowerShell中使用卸载模块?

PowerShell卸载模块简介

PowerShell 中随 PowerShellGet 模块提供的 Uninstall-Module cmdlet 会卸载本地用户配置文件或当前用户配置文件中本地计算机上安装的特定模块(也包括多个模块)和特定版本,并且当该模块无法卸载时依赖于其他模块,并且通过 PowerShell 远程处理方法,我们也可以在远程计算机上卸载模块。

语法

卸载模块语法:

Uninstall-Module
[-Name] <String[]>
[-MinimumVersion <String>]
[-RequiredVersion <String>]
[-MaximumVersion <String>]
[-AllVersions]
[-Force]
[-AllowPrerelease]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Uninstall-Module
[-InputObject] <PSObject[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]

语法解释:

-名称:要卸载的模块。您可以提供多个模块名称,以逗号 (,) 分隔。

-MinimumVersion:当安装了多个版本的模块时,此参数卸载模块的最低版本。 MinimumVerion 和RequiredVersion 不能在同一命令中一起使用。

-MaximumVersion:此模块有助于卸载最新或最高版本的模块。 MaximumVersion 和RequiredVersion 不能在同一命令中使用。

-RequiredVersion:指定要卸载的确切模块版本。

-AllVersions:此参数卸载本地计算机上安装的模块的所有可用版本。此参数不能与 MaximumVerion、MinimumVersion 和RequiredVersion 参数一起使用。

-AllowPrerelease:它会卸载标记为 PreRelease 的模块。

-强制:强制卸载而不要求用户确认。

-Confirm:如果指定 $true 则确认用户同意,$false 将不会提示用户卸载并启动卸载过程。

如何在PowerShell中使用卸载模块?

当 PowerShell 模块安装在计算机上时,可以选择该模块可供当前用户或所有用户使用。 PowerShell 为它们选择不同的 Windows 配置文件。

对于当前用户:“%UserProfile%\Documents\WindowsPowerShell\Modules ”

对于所有用户:C:\program files\WindowsPowerShell\Modules

当操作系统构建时,Windows 操作系统默认使用另一个路径来存储 PowerShell 模块。

PowerShell 的操作系统默认路径:C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules

当我们使用Uninstall-Module命令时,它会选择上述路径从本地计算机卸载模块。在某些情况下,同一模块会安装多个版本,因为某些脚本编写者更喜欢在新模块到达时进行更新。在这种情况下,Uninstall-Module 有助于使用 -RequiredVersion、-MinimumVersion 或 -MaximumVersion 命令卸载特定版本的模块。

有时,该模块的测试版也可供少数用户使用,即预发布版本,您也可以使用 -PreRelease 参数卸载该特定模块。

当模块正在使用或加载时,以及当您卸载它时,它将拒绝访问,要修复此问题,您需要关闭打开的 PowerShell 会话,或者有时可能需要重新启动系统。

示例

以下是下面提到的示例

例子#1

卸载 ImportExcel 模块。

对于本示例,我们在本地计算机中安装了 ImportExcel 模块,我们将使用 Uninstall-Module 命令卸载它。

Uninstall-Module ImportExcel -Verbose

输出:

[玩转系统] PowerShell卸载模块|如何在PowerShell中使用卸载模块?

请注意:我们没有在此处提供要卸载的模块版本,并且该模块是否适用于所有用户或当前用户配置文件并不重要。它只是卸载该模块。

卸载模块的另一种方法是首先使用 Get-Module 命令获取模块,然后使用 Pipeline 将输出传递到 Uninstall-Module。

Get-Module -Name ImportExcel | Uninstall-Module -Verbose

上面的命令与第一个命令类似。

有时,该模块已安装在您的系统中,但未在 PowerShell 会话中加载,那么您无法卸载该模块。例如,ImportExcel 模块已安装但未加载到 PS 控制台中,如下所示。

Get-Module -Name ImportExcel

[玩转系统] PowerShell卸载模块|如何在PowerShell中使用卸载模块?

输出什么也没有,但是当我们检查所有可用模块时,它会显示输出。

Get-Module Importexcel -ListAvailable

输出:

[玩转系统] PowerShell卸载模块|如何在PowerShell中使用卸载模块?

在这种情况下,您可以通过先导入模块然后运行卸载命令来卸载模块。

Get-Module -Name ImportExcel -ListAvailable | Import-Module -Verbose
Uninstall-Module ImportExcel -Force -Verbose

或者简单的方法是使用 Get-InstalledModule 命令并将其卸载,如下所示。

Get-InstalledModule -Name ImportExcel | Uninstall-Module -Force -Verbose

例子#2

卸载特定模块版本。

如果我们在本地系统中安装了同一模块的多个版本,那么我们可以使用 -RequiredVersion 参数来卸载特定的模块版本。

在此示例中,我们安装了一个名为“7Zip4PowerShell”的 7Zip PowerShell 模块,并且它在同一系统中具有多个版本。

Get-Module 7zip4PowerShell -ListAvailable

输出:

[玩转系统] PowerShell卸载模块|如何在PowerShell中使用卸载模块?

这里我们需要卸载1.5.0模块。

Get-InstalledModule 7zip4PowerShell -RequiredVersion 1.5.0 | Uninstall-Module -Force -Verbose

输出:

[玩转系统] PowerShell卸载模块|如何在PowerShell中使用卸载模块?

当您检查该模块的可用版本时,您将找不到该版本。

[玩转系统] PowerShell卸载模块|如何在PowerShell中使用卸载模块?

例子#3

卸载该模块的所有可用版本。

要卸载模块的所有可用版本,我们可以使用 -AllVersions 参数。 我们在本地计算机上安装了一个具有多个版本的 7Zip4PowerShell 模块,如下所示,我们需要将其全部卸载。

[玩转系统] PowerShell卸载模块|如何在PowerShell中使用卸载模块?

要卸载所有模块版本,

Get-InstalledModule 7zip4PowerShell -AllVersions | Uninstall-Module -Force -Verbose

输出:

[玩转系统] PowerShell卸载模块|如何在PowerShell中使用卸载模块?

例子#4

使用最小和最大版本参数卸载模块。

当我们使用 -MinimumVersion 参数时,卸载模块将从计算机中删除最高安装的版本。我们安装了以下版本的 7Zip4PowerShell 模块。

[玩转系统] PowerShell卸载模块|如何在PowerShell中使用卸载模块?

Get-InstalledModule 7zip4PowerShell -MinimumVersion 1.5.0 | Uninstall-Module -Force -Verbose

输出:

[玩转系统] PowerShell卸载模块|如何在PowerShell中使用卸载模块?

当我们使用 -Maximumversion 参数时,它会卸载模块的最低版本。

Get-InstalledModule 7zip4PowerShell -MaximumVersion 1.5.0 | Uninstall-Module -Force -Verbose

输出:

[玩转系统] PowerShell卸载模块|如何在PowerShell中使用卸载模块?

例子#5

在远程计算机上卸载模块。

我们可以使用 Invoke-Command 模块从远程服务器卸载该模块。

Invoke-Command -ComputerName LabMachine2k16 -ScriptBlock {                    Get-InstalledModule 7zip4PowerShell | Uninstall-Module -Force -Verbose}

您可以使用上面示例中所示的其他命令来处理特定模块版本卸载任务。

结论

Uninstall-Module 对于清理任务很有用。 PowerShell 库中有许多可用的模块,您可以下载它们用于测试目的,但它也会消耗磁盘空间,并且许多模块需要时间来加载,并且还会减慢 PowerShell 功能,在这种情况下,Uninstall-Module 有助于从本地和远程计算机。

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

取消回复欢迎 发表评论:

关灯