任务计划程序 - Powershell - Get-ChildItem - 错误:无法找到参数...'文件'

时间:2016-06-01 16:56:01

标签: windows powershell scheduled-tasks powershell-v3.0

我有一个使用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。

我所知道的:

  • 此错误通常是由于在Powershell v3.0
  • 之前未添加“文件”属性引起的
  • 我应该能够使用a parameter cannot be found that matches parameter name 'file'参数强制Powershell在3.0版中运行。但是,这似乎与任务调度程序没有任何区别。

关于我需要改变什么的任何想法?

1 个答案:

答案 0 :(得分:0)

有趣的是,报告的错误具有误导性。在这种情况下,错误是因为我指的是映射驱动器,仅当我的用户物理登录到该框时才可用。

因此,虽然报告的错误是:错误:无法找到参数...'文件',实际问题是我试图将不可用的映射驱动器传递给Get-ChildItem。

我能够通过编写一个非常简单的脚本来确认这一点,该脚本只包含Get-ChildItem并尝试将其作为计划任务运行,即使用户未登录"也可以运行。

只有在选中该框时才会失败。使用网络路径而不是映射驱动器进行测试可以解决问题。

希望将来能有所帮助。