通过ssis软件包运行时,导入的Powershell模块不可见

时间:2018-07-25 14:47:20

标签: powershell visual-studio-2012 interop ssis-2012

我按照此处所述安装了ImportExcel模块:

https://www.powershellgallery.com/packages/ImportExcel/5.0.1

然后,我编写了一个简单的ps1文件,该文件循环通过某些文件夹,并将该文件夹中的每个xlsx文件转换为csv格式(使用上述模块中的ConvertFrom-ExcelSheet方法)。

最后,我将ps1脚本包装到一个.bat文件中。

通过Windows命令行手动执行时,该批处理脚本可以正常工作。

但是,当从SSIS包中执行相同的批处理文件时(在同一台计算机上,使用标准的Execute Process Task在我的凭据下,),当powershell脚本到达调用ConvertFrom-ExcelSheet方法的行时,以下错误:

The term 'ConvertFrom-ExcelSheet' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
  • 安装模块后重新启动PC。
  • 该模块与AllUsers范围一起安装。
  • 模块安装期间升高的外壳。

任何提示都可以帮助我使此模块在SSIS中正常工作?至少,从哪里开始寻找?

环境:

  • PowerShell 5.0.10586.117
  • Windows 7 Enterprise x64
  • Visual Studio 2012

1 个答案:

答案 0 :(得分:0)

通过将已安装的模块移动到用户的模块文件夹即%USERPROFILE%\ Documents \ WindowsPowerShell \ Modules

来解决问题

仍然没有明确的解释为什么模块不能从共享模块文件夹中工作,但是至少现在问题已经解决了。