我很努力從網站自動下載文件,當下載被觸發時打開一個新標籤,並在主要的保存/打開/關閉提示出現之前關閉它窗口。手動啓動後腳本本身工作得很好,直到我在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