我很努力从网站自动下载文件,当下载被触发时打开一个新标签,并在主要的保存/打开/关闭提示出现之前关闭它窗口。手动启动后脚本本身工作得很好,直到我在Task Scheduler中尝试它。它运行良好,直到它下载。我已经包含了一个代码来捕获需要下载的文件的URL,然后将它传递到Invoke-WebRequest
,它可以在PowerShell ISE中正常工作,但从Task Scheduler启动时不会返回任何结果。我已经将计数器和测试文件创建包括在代码中,以查看do-while的内容是否全部执行,并且记录了所有10次尝试。它是通过活动URL进行搜索的部分,当通过任务计划程序启动时,这些URL不返回结果。Windows任务计划程序Powershell获取URL并下载文件
# >> Keep trying to capture the CSV download link
$i = 1
Do {
$i | Add-Content -Path "C:\userfolder\try.txt"
$urls = (New-Object -ComObject Shell.Application).Windows() |
Where-Object {$_.LocationUrl -like "https://sitename.com/ReportViewer*"} |
Where-Object {$_.LocationUrl}
$reportURL = @($urls)[0].LocationURL
$i ++
}
While ($reportURL -eq $NULL -and $i -le 10)
# >> Send download link to web request and save to file
Invoke-WebRequest -Uri $reportURL -OutFile "C:\userfolder\ProfileList.csv"
我已经试过了Wscript.Shell AppActivate and SendKeys('%S')
之前,但因为当通过任务计划推出的PowerShell控制台窗口中hijakcing焦点则AppActivate不会大概工作。该任务被设置为使用参数执行powershell.exe:C:\userfolder\CPdownload.ps1 -RunType $true
,以及开始于:C:\userfolder
。运行:仅在用户登录时拥有最高权限;为Windows Server 2012 R2配置。
我也尝试通过任务计划程序中的批处理文件启动shell脚本,其结果完全相同。
在此先感谢任何指针。
感谢您节省我的理智!那/它做到了! – Elena