在较旧的 Windows 8.1 计算机上,Import-Module -SkipEditionCheck Storage
每次我想从 Powershell 使用 VHD 相关命令时,我都必须使用。但与命令似乎暗示的不同,它实际上并非如此输入模块,而只是加载中它。因为每次启动 pwsh 时我都需要运行它。
我怎样才能使模块导入保持永久?
更新:2020-01-26
来自关于模块页:
此外,使用 PowerShell 提供程序的命令不会自动导入模块。例如,如果您使用需要 的命令
WSMan: drive
(如Get-PSSessionConfiguration
cmdlet),则可能需要运行 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
更改仅适用于该计算机上的该用户帐户,因此如果您正在开发供其他人使用的脚本,请不要忘记这一点。