2016-12-14 152 views
0

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

在此先感謝任何指針。

回答

相關問題