在Powershell中是否可以将模块发布到内存中?

时间:2019-05-18 02:38:03

标签: powershell module

动机

我需要测试我的自定义模块加载逻辑。在Powershell中发布真正的测试模块,然后再进行实际安装会浪费时间。

因此,我没有在将测试模块发布到真实目录中,而是想知道是否存在某种可以满足Powershell模块功能的内存提供程序,例如Publish/Install/Import-Module

编辑1

基本上,我想要与Simple in-memory PowerShell Provider?相同的东西

编辑2

我特别需要以下功能来使用内存存储:

  1. Install-Module
  2. Find-Module
  3. Get-Module,有或没有-ListAvailable
  4. Import-Module

导入psm1文件不会将其剪切。使用New-Module创建模块也不会删除它。

3 个答案:

答案 0 :(得分:0)

您可以使用

Import-Module "Path to your psm1 file"

用于开发中的测试目的。

答案 1 :(得分:0)

我以前只是用PSD1和PSM1文件设置了 test 模块,然后在准备进行测试时将PS1文件拖放到该目录中。只要您将PDS1的导出功能部分设置为*,它就应该在导入模块时加载PS1文件。

另一种方法是简单地将函数另存为PS1文件,然后对其进行点源。例如:

. C:\Temp\TestFunction.ps1

请注意句号,然后留空格。这会将函数加载到内存中,并且在重新启动会话后将消失。

答案 2 :(得分:0)

您不能完全在内存中执行此操作,但是可以使用目录。可能您可以创建ramdisk或类似的文件,但是SSD上的常规目录对于大多数用途应该足够快。运行

# register the repo
Register-PSRepository -Name MyRepo -SourceLocaton c:\mydirectory

# publish to it
Publish-Module -Name MyModule -Repository MyRepo

# install from it
Install-Module -Name MyModule -Repoitory MyRepo