是否有理由显式导入模块?

Dav*_*ica 3 powershell import-module powershell-module

我刚刚阅读 PowerShell模块指南页面,注意到该Import-Module部分有一行:

以下操作会触发模块的自动导入,也称为“模块自动加载”。

  • 在命令中使用 cmdlet。例如,键入 Get-ExecutionPolicy 会导入包含 Get-ExecutionPolicy cmdlet 的 Microsoft.PowerShell.Security 模块。

既然如此,我们为什么要关心使用Import-Module呢?它不是总是自动照顾我们吗?在什么情况下我需要明确写出Import-Module

小智 5

您必须Import-Module在以下情况下使用:

  • 模块文件不在$PSModulePath包含的路径中
  • 您有不同的模块具有相同的名称,但位于不同的路径中
  • 该模块已加载,您想在对其进行修改后重新加载它。(用-力)
  • 仅从该模块导入特定的 cmdlet、函数或变量(分别使用-Cmdlet-Function-Variable参数)
  • 防止从模块加载 cmdlet 或函数,这些 cmdlet 或函数会覆盖具有相同名称且已在当前会话中加载的命令 ( with -NoClobber)
  • 在此模块中向 cmdlet 的名词添加前缀 ( with -Prefix)
  • 从远程计算机导入模块(使用参数-PSSession

该列表并不完全详尽,但这些是Import-Modulecmdlet 的主要用例。