我的模块不能存在于我们服务器上的标准模块目录中。他们必须住在E:驱动器上。
对于开发,我可以修改我的配置文件来修改$ ENV:PSModulePath变量。但是当我从命令行调度脚本并调用PowerShell时,我们被指示使用-NOProfile开关。一个典型的例子是:
New-ScheduledTaskAction -Execute 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' -Argument "-windowstyle hidden -NonInteractive -NoLogo -NoProfile -File `"<Path to Script>`""
如何从命令行包含修改Module路径,以便我的脚本可以找到他们的模块而无需在每个脚本中指定该路径?
答案 0 :(得分:0)
您可以停止使用-NoProfile
开关,因为在这种情况下您想要使用它。
您可以使用-Command
开关代替-File
(然后点源脚本):
powershell.exe -windowstyle hidden -NonInteractive -NoLogo -NoProfile -Command "$env:PSModulePath = (($env:PSModulePath -split ';') + 'E:\Your\Module\Path') -join ';' ; . '<Path to Script>'