Я борюсь с автоматизацией загрузки файла с веб-сайта, который открывает новую вкладку при запуске загрузки и закрывает ее прямо перед тем, как в главном окне появится приглашение «Сохранить/Открыть/Закрыть». Сам скрипт отлично работает при запуске вручную, пока я не попробую его в планировщике заданий. Он работает отлично, пока не зависает при загрузке. Я включил код для захвата URL-адреса файла, который необходимо загрузить, а затем передать его в Invoke-WebRequest
, который отлично работает из PowerShell ISE, но не возвращает никаких результатов при запуске из планировщика заданий. Я включил в код счетчик и создание тестового файла, чтобы увидеть, выполняется ли вообще содержимое do-while, и все 10 попыток были записаны. Это часть, которая выполняет поиск по активным 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')
раньше, но AppActivate не работал, вероятно, потому, что окно консоли PowerShell перехватывало фокус при запуске через планировщик заданий. Поставлена задача выполнить powershell.exe с Аргументами: C:\userfolder\CPdownload.ps1 -RunType $true
, - и Старт через: C:\userfolder
. Запуск: только когда пользователь вошел в систему и имеет самые высокие привилегии; настроен для Windows Server 2012 R2.
Я также попытался запустить сценарий оболочки через пакетный файл из планировщика заданий с точно таким же результатом.
Заранее спасибо за любые указатели.