在PowerShell中卸载系统加载的模块

时间:2016-10-24 08:09:56

标签: powershell azure-service-fabric

如果系统已安装模块,请说" servicefabric",并且在运行我的脚本时,我想删除此模块,因为它可能是以前的版本。我想导入我最新的servicefabric模块。我可以知道怎么做到这一点?

我试过了:

if(Get-Module -Name "ServiceFabric") 
{
    Remove-Module -Name "ServiceFabric"
}

但它没有删除系统安装的服务结构模块。

从下面的命令

中列出了相同的模块
Get-Module -ListAvailable -Name "ServiceFabric"

我再试一次。所以,我只是想删除系统加载的模块。

2 个答案:

答案 0 :(得分:1)

如果模块在组件中定义,或者模块包含组件,则无法卸载它。将删除cmdlet名称,但程序集将保留在内存中。

这不是Powershell问题 - .Net不允许卸载程序集。相反,您必须卸载包含程序集的AppDomain。

答案 1 :(得分:0)

你尝试过吗? Remove-Module -Name" ServiceFabric" -Force -ErrorAction SilentlyContinue。您不需要检查模块是否加载。如果发现任何内容,请将其删除。