我有一个带有import-module psmod1.psm1
语句的PS脚本。
在PS脚本中,我执行了get-module
,然后将所有已加载模块的名称写入文本文件。
从CLI上的pwsh
运行脚本时,脚本运行良好,并且我看到psmod1.psm1
已写入文本文件
我正在从.NET CORE C#应用程序中调用脚本。这次脚本运行正常,但没有模块名称写入文本文件(我正在写其他一些文本,以确保文件本身已成功写入等,并且一切正常。)
因此,由于PS脚本中的import-module
似乎无法正常工作,因此我将模块的加载添加到了C#代码中。这是通过使用InitialSessionsState.CreateDefault()
然后使用ImportPSModule
来完成的。
我仍然得到相同的结果,似乎对于通过RunSpaceFactory.CreateRunspace
从C#内部调用的PS代码,无法在PS代码文件内或从C#内部导入模块。我已经在Windows 2008R2和Windows 2012R2上对此进行了测试。