首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows任务计划程序Powershell获取URL并下载文件

Windows任务计划程序Powershell获取URL并下载文件
EN

Stack Overflow用户
提问于 2016-12-15 03:48:14
回答 2查看 1.2K关注 0票数 0

我正在为从网站自动下载文件而苦苦挣扎,当下载被触发时,它会打开一个新的标签,并在主窗口中出现保存/打开/关闭提示之前关闭它。脚本本身在手动启动时运行良好,直到我在Task Scheduler中尝试它。它运行得很好,直到它在下载时遇到问题。我已经包含了一段代码来捕获需要下载的文件的网址,然后将其传递给Invoke-WebRequest,它在PowerShell ISE中工作得很好,但从任务调度器启动时不返回任何结果。我已经在代码中包含了计数器和测试文件创建,以查看do-while的内容是否执行,并且记录了所有10次尝试。它是搜索活动URL的一部分,当通过Task Scheduler启动时不会返回结果。

代码语言:javascript
复制
# >> 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'),但AppActivate不能工作,可能是因为PowerShell控制台窗口在通过任务调度器启动时劫持了焦点。该任务被设置为使用参数:C:\userfolder\CPdownload.ps1 -RunType $true执行powershell.exe,并从:C:\userfolder开始。运行:仅当用户已登录且具有最高权限时;为Windows Server 2012 R2配置。

我还尝试通过批处理文件从Task Scheduler启动shell脚本,结果完全相同。

提前感谢您的指点。

EN

回答 2

Stack Overflow用户

发布于 2016-12-15 04:27:41

可能你的任务需要在交互模式下运行。默认情况下,计划任务在会话0中运行。您可以通过/IT参数来调度交互模式的任务。有关更多信息,请查看以下链接

https://msdn.microsoft.com/en-us/library/bb736357(VS.85).aspx

票数 0
EN

Stack Overflow用户

发布于 2020-07-28 02:29:50

然而,除了将脚本更改为交互模式(这会修复它)之外,如果您希望在交互模式之外运行脚本,还可以将Powershell执行策略更改为无限制(设置-执行策略-ExecutionPolicy无限制)。我想我最近也遇到了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41150976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档