我有一个自动加载的模块,我把我的日常函数和变量放在那里。
希望在我启动 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/