如何使我的 powershell 模块导入永久生效?

如何使我的 powershell 模块导入永久生效?

在较旧的 Windows 8.1 计算机上,Import-Module -SkipEditionCheck Storage每次我想从 Powershell 使用 VHD 相关命令时,我都必须使用。但与命令似乎暗示的不同,它实际上并非如此输入模块,而只是加载中它。因为每次启动 pwsh 时我都需要运行它。

我怎样才能使模块导入保持永久?


更新:2020-01-26

来自关于模块页:

此外,使用 PowerShell 提供程序的命令不会自动导入模块。例如,如果您使用需要 的命令WSMan: drive(如Get-PSSessionConfigurationcmdlet),则可能需要运行 Import-Module cmdlet 来导入Microsoft.WSMan.Management包含 的模块WSMan: drive

您仍然可以运行Import-Module命令来导入模块,并使用$PSModuleAutoloadingPreference变量来启用、禁用和配置模块的自动导入。有关更多信息,请参阅...

关于偏好设置页面$PSModuleAutoloadingPreference

启用和禁用会话中模块的自动导入。默认为全部。无论变量的值是什么,您都可以使用 Import-Module 来导入模块。

有效值为:
All:模块在首次使用时会自动导入。要导入模块,请获取或使用模块中的任何命令。例如,使用 Get-Command。

ModuleQualified:仅当用户使用模块中命令的模块限定名称时,才会自动导入模块。例如,如果用户键入 MyModule\MyCommand,PowerShell 会导入 MyModule 模块。

None:会话中禁用模块的自动导入。要导入模块,请使用 Import-Module cmdlet。

可是,我的$PSModuleAutoloadingPreference却是空的……

答案1

导入模块

Import-Module cmdlet 会将一个或多个模块添加到当前会话。您导入的模块必须安装在本地计算机或远程计算机上。

因此它不应该是永久性的更改,并且命令也不暗示它。您可以将加载命令添加到您的配置文件中。如果您不需要使用SkipEditionCheck它,也可能只需使用制表符完成和自动导入/加载即可。

about_Profiles了解有关配置文件的信息。更改版本以匹配您使用的版本。

答案2

您还可以使用用户配置文件脚本(每次 powershell 启动时运行)来运行您想要的任何命令,包括导入模块。

位于 或通过 powershell变量。C:\Users\USER_NAME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1$Profile

更改仅适用于该计算机上的该用户帐户,因此如果您正在开发供其他人使用的脚本,请不要忘记这一点。

相关内容