首页 文章

任务计划程序 - Powershell - Get-ChildItem - 错误:找不到参数... 'File'

提问于
浏览
1

我有一个使用Get-ChildItem的脚本,如下所示:

$files = Get-ChildItem -Path $directories -Recurse -File -Include "package.json"

从任何powershell提示符运行时完全正常,从任务调度程序运行时除外 .

我的任务调度程序操作是:

powershell -version 3.0 -noprofile -nolog -noninteractive -file somescript.ps1 someargs

从任务调度程序我得到错误: a parameter cannot be found that matches parameter name 'file' for Get-ChildItem .

What I know:

  • 此错误通常是由于在Powershell v3.0之前未添加'File'属性引起的

  • 我应该能够使用 -version 3.0 参数强制Powershell在3.0版中运行 . 但是,这似乎与任务调度程序没有任何区别 .

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

1 回答

  • 0

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

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

    我能够通过编写一个非常简单的脚本来确认这一点,该脚本只包含Get-ChildItem并尝试将其作为计划任务运行,无论是否有“即使在用户未登录时运行” .

    只检查该框时它才会失败 . 使用网络路径而不是映射驱动器进行测试可以解决问题 .

    希望这对未来的其他人有所帮助 .

相关问题