I have a webpage hosted on a Windows box that I need to assure gets loaded at least once/day. My current plan is to create a scheduled task that opens Internet Explorer and hits the URL:
"C:\Program Files\Internet Explorer\iexplore.exe" myurl.com/script_to_run_daily.aspx
This was simple to setup and works fine, but it strikes me as a hack because Internet Explorer actually has to open and hit this URL. I don't need any input back from this page, it simply stores cached data in files when it's hit.
Is there a slicker way of doing this? In case it matters, this is a VB.net site.
Thanks in advance!
As pointed out by Remus Rusanu, PowerShell would be the way to go. Here's a simple one-liner that you can use to create a scheduled task, without needing to write a separate .ps1 file:
powershell -ExecutionPolicy Bypass -Command
Invoke-WebRequest 'http://localhost/cron.aspx' -UseBasicParsing
Note that line breaks are added only for clarity in all of these command lines. Remove them before you try running the commands.
You can create the scheduled task like this: (run this from an elevated command prompt)
schtasks /create /tn "MyAppDailyUpdate"
/tr "powershell -ExecutionPolicy Bypass -Command
Invoke-WebRequest 'http://localhost/cron.aspx' -UseBasicParsing"
/sc DAILY /ru System
The above will work for PowerShell 3+. If you need something that will work with older versions, here's the one-liner:
powershell -ExecutionPolicy unrestricted -Command
"(New-Object Net.WebClient).DownloadString(\"http://localhost/cron.aspx\")"
You can create the scheduled task like this: (from an elevated command prompt)
schtasks /create /tn "MyAppDailyUpdate"
/tr "powershell -ExecutionPolicy unrestricted -Command
\"(New-Object Net.WebClient).DownloadString(\\\"http://localhost/cron.aspx\\\")\""
/sc DAILY /ru System
The schtasks
examples set up the task to run daily - consult the schtasks documentation for more options.