I want to write something encountered while creating and using scheduled tasks on Windows Vista. I had to make a pppoe dial up connection automatic at windows startup. I need to make that connection before any account login.
First off all we need to use a command line command to manage dialup connections or RAS connections. This command is rasdial. Rasdial can be used to connect or disconnect any configured dialup connection.
After configuring a pppoe dialup connection and named it “My Dial Up Connection”, you can connect it using this command:
rasdial “My Dial Up Connection” username password
So i created a scheduled task that at windows startup runs this command. I configured it to use an administrative account, running without the need of an user connection, saving the password when prompted by the task scheduler. All ok, but, rebooting the computer this did not work.
The task returned an error
logon failure: unknown user name or bad password (0x8007052E)
then i changed something in the task config, but occured another error:
There are currently no logon servers available to service the logon request (0x8007051F)
I noticed that if the task is repeated every 1 minute for example and any of the users is logged in in the meanwhile, the task works correctly.
Then i found the solution. The secret is using the user SYSTEM as the user that run the task. This user works correctly even if there are no one logged in. The scheduled task condition “At Startup” in fact means that the task in executed before any user login.