【问题标题】:Update Scheduled Task in Sub Folder (The Specified path is invalid.) PowerShell 4.0更新子文件夹中的计划任务(指定路径无效。)PowerShell 4.0
【发布时间】:2017-02-21 10:10:39
【问题描述】:

运行下面的脚本时出现以下错误:Set-ScheduledTask : The specified path is invalid.

$Action = New-ScheduledTaskAction -Execute """C:\Program Files\Sync\Sync.exe""" -Argument "C:\ProgramData\Sync\Script.bat"
Set-ScheduledTask  -TaskName "Task Name" -TaskPath "\SFTP Schedules\Non-Live\" -Action $Action

这是文件夹结构。

Task Scheduler Folders

有人知道为什么吗?

【问题讨论】:

  • 我做了一些测试,我认为我无法更改这些任务,原因有两个。 A) 我不是作者 B) 我不是作为用户运行的。我也可以通过将用户名和密码输入脚本来获得圆点 B,但我不知道如何解决我不是作者的事实。

标签: powershell scheduled-tasks taskscheduler


【解决方案1】:

只要您的帐户在服务器上的管理员组中,您的代码就可以了,即使您不是作者,您也应该能够更改任务。还要确保您以管理员身份运行PowerShell 控制台。

但如果您不是runAs 用户,那么您将需要提供该用户的凭据才能编辑任务。

Set-ScheduledTask -Password "password" -User "Domain\User" -TaskName "name" -TaskPath ... 

如果要将计划任务文件夹中的所有任务导出到XML,然后替换XML中的作者,您可以使用以下代码。更改 $_.TaskPath -eq '\' 以匹配您要导出的文件夹。

$XMLDestFolder = "C:\XML\"
Get-ScheduledTask | ?{$_.TaskPath -eq '\'} | %{
    $TaskXML = Export-ScheduledTask -TaskName $_.TaskName
    $TaskXML -replace "(?<=<Author>).*?(?=</Author>)","ADFP\NETMANFP" > "$XMLDestFolder$($_.TaskName).xml" 
} 

【讨论】:

  • 嗨 @Richard,我是服务器上的本地管理员,我对 sys32\tasks 中的文件拥有完整的 NTFS 权限,我在管理员模式下运行 Powershell,我已将运行添加为用户\密码命令。尝试修改其他作者为作者的任务时,它仍然说路径无效!
  • 如果你只是删除你不是作者的那个,然后以你作为作者的方式重新创建它呢?
  • 这是一个选项,但我有 178 个计划任务需要更新 Action on :( 因此,我为什么要尝试获取一个可以为我执行此操作的脚本。
  • 能否将它们全部导出到 xml,然后从 xml 文件中全部导入。我认为编写一个脚本来做到这一点并不难,这可能会改变所有的作者。
  • 不幸的是,这并没有修改作者,因为它是写入 XML 的。我目前正在研究另一种允许我导出它们的产品,修改 XML 元素值以再次导入它们。如果我无法解决这个 powershell 问题,这是一个备份。我还没有放弃。
猜你喜欢
  • 1970-01-01
  • 2017-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多