我正在尝试通过Remove-Module从powershell中删除模块Microsoft.Powershell.Utility。该命令成功执行,但是之后,我仍然可以使用该模块中的命令,例如Format-Hex。我想念什么?我附上了显示行为的屏幕截图
我的环境是Windows 10 Home。
答案 0 :(得分:5)
正如Ben所述,卸载模块Microsoft.Powershell.Utility
是不明智的,因为它包含许多重要的cmdlet (请参见下面的列表)。
自动重新显示该模块命令的原因是PowerShell的module auto-loading feature ,它会根据需要自动加载(导入)$env:PSModulePath
中列出的目录中的模块。
例如,可以通过将$PSModuleAutoLoadingPreference
首选项变量设置为None
来防止自动加载。
请注意对于name conflicts -如果多个模块包含相同名称的命令:
导入的所有模块 last “都胜”-除非您使用Import-Module -NoClobber
,否则导入将失败。
还可以使用特定于成员类型的-Cmdlet
,-Function
,-Alias
和{{ 1}}参数。
您可以使用-Variable
在导入的成员上附加前缀,以使它们的名称唯一,对于cmdlet和函数,它们的名称要在 noun 部分之前;例如,Import-Module -Prefix
会将名为Import-Module -Prefix Bar ...
的cmdlet重命名为Get-Foo
)。
最后,如果存在重复的名称,则可以通过以Get-BarFoo
的形式在模块名称前添加成员名称来消除歧义。例如<ModuleName>\<command>
。
自Windows PowerShell 5.1开始,模块Microsoft.PowerShell.Utility\Format-Hex
随附的cmdlet列表:
Microsoft.Powershell.Utility