我有一个自动加载的模块,我把我的日常函数和变量放在那里。

希望在我启动 PowerShell session 时 PSDrive 始终在这里,在 MyPSModule 的最开始我调用:

$script_directory = 'D:\scripts\'
New-PSDrive -Name Scripts -root $script_directory -PSProvider FileSystem

但是,在我打开一个新的 PowerShell 环境并且我的模块已加载后:Get-PSDrive 未列出我的驱动器。 (我确定我的模块已加载,我调用了它的一些函数,我什至用 -Force 重新导入,并且 Import-Module -Verbose 没有显示任何错误)

我必须手动调用: New-PSDrive -Name Scripts -root 'D:\scripts\' -PSProvider FileSystem
只有在这种情况下 Get-PSDrive 才会列出我的驱动器。

怎么了 ? PSDrive 是在加载我的模块时创建的,我应该怎么做?

最佳答案

使用值为 Scope 的参数 global

$script_directory = 'D:\scripts\'
New-PSDrive -Name Scripts -root $script_directory -PSProvider FileSystem  -Scope global

Scope参数说明:

关于powershell - 模块内的新 PSDrive 不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26994265/

10-12 17:45