我尝试过使用其他Q / A,如Windows Server 2008 R2 PowerShell脚本手动运行,但不是作为计划任务,但无济于事。
基本上我有一个PoSh脚本(显然这是它现在的热门缩写),从一台服务器(UNCpath)复制大量的大文件到本地驱动器。 它在一个循环中完成,它使用BITS传输 。 大致:
Start-BitsTransfer源/目标/asynchronous/低优先级 while位工作的状态仍然是“连接”或“转移”, Sleep 2秒(即等待它完成) Complete-BitsTransfer Write-Host一个“完成的文件X”味精 Get-ChildItem获得的文件列表的外部循环 ) 从PoSh ISE和普通的PoSh控制台运行时,该脚本可以正常工作。
我试过使用Sleep , Start-Sleep ,甚至[Threading.Thread]::Sleep ,认为这是问题。 然后,我将.ps1包装在.bat ,从CMD运行时也可以。 但在所有情况下,无论是直接调用.ps1还是包装器.bat ,调度任务都会失败。
它说它是成功的,但实际发生的是启动所有传输作业,它们进入“暂停”状态(由PoSh窗口中的Get-BitsTransfer显示),任务认为一切正常并结束,留下这些孤立的BITS工作,我甚Complete-BitsTransfer不能Complete-BitsTransfer的B / C他们也抛出了错误。
其他行为:
把我的头发撕在这里帮忙!
根据MS,计划任务必须在交互式login下运行。
https://msdn.microsoft.com/en-us/library/windows/desktop/ee663885(v=vs.85).aspx