我有一个使用Get-ChildItem的脚本,如下所示:
$files = Get-ChildItem -Path $directories -Recurse -File -Include "package.json"
从任何powershell提示符运行时,完全正常,从任务调度程序运行时除外。
我的任务调度程序操作是:
powershell -version 3.0 -noprofile -nolog -noninteractive -file somescript.ps1 someargs
从任务调度程序中我得到错误:{-1}}用于Get-ChildItem。
我所知道的:
a parameter cannot be found that matches parameter name 'file'
参数强制Powershell在3.0版中运行。但是,这似乎与任务调度程序没有任何区别。关于我需要改变什么的任何想法?
答案 0 :(得分:0)
有趣的是,报告的错误具有误导性。在这种情况下,错误是因为我指的是映射驱动器,仅当我的用户物理登录到该框时才可用。
因此,虽然报告的错误是:错误:无法找到参数...'文件',实际问题是我试图将不可用的映射驱动器传递给Get-ChildItem。
我能够通过编写一个非常简单的脚本来确认这一点,该脚本只包含Get-ChildItem并尝试将其作为计划任务运行,即使用户未登录"也可以运行。
只有在选中该框时才会失败。使用网络路径而不是映射驱动器进行测试可以解决问题。
希望将来能有所帮助。