Рекомендуемый способ Загрузки URL-адреса через запланированную задачу в Windows

У меня есть веб-страница, размещенная в окне Windows, которую мне нужно заверить, загружается по крайней мере один раз/день. Мой текущий план-создать запланированную задачу, которая открывает Internet Explorer и попадает по URL:

"C:Program FilesInternet Exploreriexplore.exe" myurl.com/script_to_run_daily.aspx

Это было просто настроить и работает нормально, но это поражает меня как хак, потому что Internet Explorer на самом деле должен открыть и нажать этот URL. Мне не нужен ввод с этой страницы, он просто хранит кэшированные данные в файлах, когда он попадает.

есть ли способ дождевика делать это? В случае, если это имеет значение, это VB.net сайт.

спасибо заранее!

7 ответов


Как отметил Ремус Русану, PowerShell был бы путь. Вот простой однострочный вариант, который можно использовать для создания запланированной задачи без необходимости писать отдельную .ps1 файл:

powershell -ExecutionPolicy unrestricted -Command "(New-Object Net.WebClient)
                                           .DownloadString(\"http://localhost/cron.aspx\")"

вы можете создать запланированную задачу следующим образом:

schtasks /create /tn "MyAppDailyUpdate" /tr "powershell -ExecutionPolicy unrestricted 
        -Command \"(New-Object Net.WebClient)
              .DownloadString(\\"http://localhost/cron.aspx\\")\"" /sc DAILY /ru System

этот пример устанавливает задачу для ежедневного выполнения-обратитесь к schtasks.exe документация дополнительные параметры.


вы можете назначить PowerShell сценарий. PS довольно мощный и дает вам доступ ко всей .NET Framework, а также изменения. Вот пример:

$request = [System.Net.WebRequest]::Create("http://www.example.com")
$response = $request.GetResponse()
$response.Close()

другой вариант-скрипт VB. Например (сохранить как файл.vbs):

sSrcUrl = "http://yourdomain.com/yourfile.aspx"
sDestFolder = "C:\yourfolder\"
sImageFile = "filename.txt"
set oHTTP = WScript.CreateObject("MSXML2.ServerXMLHTTP")
oHTTP.open "GET", sSrcUrl, False
oHTTP.send ""
set oStream = createobject("adodb.stream")
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
oStream.type = adTypeBinary
oStream.open
oStream.write oHTTP.responseBody
oStream.savetofile sDestFolder & sImageFile, adSaveCreateOverWrite
set oStream = nothing
set oHTTP = nothing
WScript.Echo "Done..."

начиная с PowerShell 5.0,curl псевдоним Invoke-WebRequest, Так что вы можете создать запланированную задачу следующим образом:

Action: Start a program
Program/script: powershell
Add arguments: curl http://www.example.com/foo/bar

вы также можете использовать Invoke-WebRequest, а curl более лаконично.


Это SuperUser.com ответ гораздо проще.

cmd /c start http://example.com/somePage.html

более конкретно, вот как это выглядит в запланированной задаче Windows:

enter image description here

хотя это, вероятно, запускает настроенный по умолчанию браузер в фоновом режиме. Если это должен быть IE, то это должно быть настроено. Это, вероятно, лучший вариант. Хорошо иметь решение, которое выполняется непосредственно как шаг действия задачи. Вся информация здесь. Еще лучше, если он лаконичен, поэтому вы можете видеть большую часть команды без прокрутки по текстовому полю.

WGET / CURL-хорошая альтернатива

Если что-нибудь, WGET будет хорошей альтернативой cmd..start..url. я не первый, кто думает об этом. Недостатком является то, что вам нужно скачать WGET для Windows, чтобы он работал - это не нестандартное решение. Но WGET легче и главное дает вам больше сила. Вы можете отправить много других типов вызовов URL. Это включает в себя различные методы HTTP, такие как POST, пользовательские заголовки и многое другое. Curl-хороший вариант, а не Wget - у них разные наборы функций, многие перекрываются.

PowerShell-не рекомендуется

PowerShell, можно считать "более легким" вариантом, но вы также загружаете PowerShell (.Net AppDomain), который имеет немного отставания, а также команда намного длиннее, и поэтому труднее запомнить, если вы делаю это регулярно. Поэтому PowerShell-не лучший вариант.

VBScript-не рекомендуется

очевидно, что VBScript менее рекомендуется. У вас есть намного больше, что вам нужно будет запомнить, и сценарий довольно большой. Если у вас нет других шагов, которые гарантируют сценарий, не имейте полностью отдельного ресурса, чтобы сделать что-то, что вы могли бы выполнить непосредственно в запланированной задаче.

Также см. Аналогичные вопросы:


существуют версии Windows наиболее распространенных инструментов http-запросов командной строки, таких как cURL и команды wget. Вы, конечно, можете создать запланированную задачу, которая будет запускать один из них. Я также сделал это из сценария Хоста сценариев Windows, Если вам нужно было зациклить или создать параметры URL на лету или некоторые такие.


пробовал с завитком на PowerShell 4.0, curl-это псевдоним для Invoke-WebRequest, поэтому вы можете создать запланированную задачу следующим образом:

действие: запуск программы Программа/скрипт для PowerShell Добавить аргументы: curl http://www.example.com/foo/bar

работал как шарм!