Método recomendado para cargar una URL a través de una tarea progtwigda en Windows

Tengo una página web alojada en un cuadro de Windows que necesito asegurar que se cargue al menos una vez al día. Mi plan actual es crear una tarea progtwigda que abra Internet Explorer y acceda a la URL:

"C:\Program Files\Internet Explorer\iexplore.exe" myurl.com/script_to_run_daily.aspx 

Esto fue fácil de configurar y funciona bien, pero me parece un hack porque Internet Explorer realmente tiene que abrir y presionar esta URL. No necesito ninguna retroalimentación desde esta página, simplemente almacena datos almacenados en caché en los archivos cuando se golpea.

¿Hay una forma más sencilla de hacer esto? En caso de que importe, este es un sitio de VB.net.

¡Gracias por adelantado!

Como señaló Remus Rusanu, PowerShell sería el camino a seguir. Aquí hay un sencillo delineador que puede usar para crear una tarea progtwigda, sin necesidad de escribir un archivo .ps1 por separado:

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

Puede crear la tarea progtwigda de esta manera:

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

Este ejemplo configura la tarea para ejecutar diariamente: consulte la documentación de schtasks.exe para obtener más opciones.

Puede progtwigr una secuencia de comandos de PowerShell . La PS es bastante potente y le da acceso a todo el .Net Framework, más el cambio. Aquí hay un ejemplo:

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

Otra opción es VB Script. Por ejemplo (guardar como archivo.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..." 

A partir de PowerShell 5.0, curl es un alias para Invoke-WebRequest , por lo que puede crear una tarea progtwigda de la siguiente manera:

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

También puede usar Invoke-WebRequest , pero curl es más conciso.

Esta respuesta SuperUser.com es mucho más simple.

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

Más específicamente, así es como se ve en una tarea progtwigda de Windows:

enter image description here

Aunque es probable que esto ejecute el navegador configurado de manera predeterminada en segundo plano. Si debe ser IE, entonces debería configurarse. Esta es probablemente la mejor opción. Es bueno tener una solución que se ejecute directamente como un paso de acción de la tarea. Toda la información está ahí. Incluso mejor si es concisa, por lo que puede ver la mayoría del comando sin desplazarse por el cuadro de texto.

WGET / CURL – buena alternativa

En todo caso, WGET sería una buena alternativa para cmd..start..url . No soy el primero en pensar en esto . La desventaja es que tienes que descargar WGET para Windows para que funcione: no es una solución lista para usar. Pero WGET es más ligero y, lo que es más importante, te brinda más potencia . Puede enviar muchos otros tipos de llamadas a la URL. Esto incluye diferentes métodos HTTP, como POST, encabezados personalizados y más. Curl es una buena opción, en lugar de Wget, tienen diferentes conjuntos de funciones, muchas de ellas superpuestas.

PowerShell – no recomendado

PowerShell, podría considerarse una opción “más liviana”, pero también está cargando un PowerShell (.Net AppDomain) que tiene un poco de retraso, y también el comando es mucho más largo, y por lo tanto más difícil de recordar si usted está haciendo esto regularmente Entonces PowerShell no es la mejor opción.

VBScript – no recomendado

Claramente, VBScript es menos recomendable. Tienes mucho más que deberías recordar, y el guión es bastante grande. A menos que tenga otros pasos que justifiquen una secuencia de comandos, no tenga un recurso completamente separado solo para hacer algo que podría haber logrado directamente dentro de una tarea progtwigda.

Además, vea preguntas similares:

Existen versiones de Windows de las herramientas de solicitud http de línea de comando más comunes, como cURL y wget . Ciertamente podría crear una tarea progtwigda que ejecutaría uno de estos. También hice esto desde una secuencia de comandos de Windows Scripting Host, si necesitabas crear un bucle o crear parámetros de URL sobre la marcha, o algo así.

intentado con curl en PowerShell 4.0, curl es un alias para Invoke-WebRequest, por lo que puede crear una tarea progtwigda de la siguiente manera:

Acción: Iniciar un progtwig Progtwig / script: powershell Agregar argumentos: curl http://www.example.com/foo/bar

¡trabajado como un encanto!