Using Task Scheduler to run a PowerShell Script

Although this is quite a straight forward thing to implement searching around on the web it did appear that there is some confusion around what to put where when specifying a PowerShell script from Windows Server Task Scheduler. 

So I thought I’d put together this brief post.  In this example I am using MS Windows Server 2008 to schedule a PowerShell to run.  If we were to try and run a PowerShell from a normal command line we’d type the following:

powershell.exe –Noninteractive –Noprofile –Command “&{<fullpath to script>}”

Notice that I didn’t specify the path to the powershell executable – the reason for this being that I have the path already specified in the servers Path environment variable, ie: %SystemRoot%system32WindowsPowerShellv1.0

If you haven’t already done this you’ll have to specify the full path to the PowerShell executable – this is a real faff (a technical term  :) ) so I’d recommend adding it your path environment variable if you haven’t done so.

When scheduling a new task and specifying the action (ie: in this case running a PowerShell script) the core of your syntax will be in the ‘Arguments’ section of the action (see below).

Use the image below as a template and enter the directory containing your PowerShell script in the ‘Start in’ setting field.

image

When completed you should have something similar to the action below.

image

Happy PowerShelling…  :)

 

Leave a Reply

9 Comments on "Using Task Scheduler to run a PowerShell Script"


Guest
TPowell_3557
2 years 7 months ago

Thanks, worked great!

Guest
2 years 6 months ago

Glad it worked for you. :)

Guest
Greg
3 years 1 month ago

I’m still having a big issue with this…I can create the task, but it says “Could not start” when I try to run it.

I’ve set the execution policy to unrestricted, and I can run the ps1 script from a powershell shell fine. I can also run the whole command as stated above in a cmd shell.

The only thing I can think of is that perhaps the user the task runs as must have a profile set up locally, to provide a userspace to run in?

Guest
4 years 3 months ago

I need to automate the copying copying of database files from one server to another automatically on a weekly and monthly basis. I have tried your tips. with { without} nothing seems to work; however, the log says the script processed successfully. I tried with plan .bat files first that worked beautifully while the servers were 2003 servers sp2… I could really use a nudge! Both the .bat and the .ps1 files work when I manually start them- just not from within task scheduler.

Guest

[…] quotes. If you don’t have that your script won’t run. I found this online from another webpage helpfully provided by Kiwi […]

Guest
Rashid
5 years 1 month ago

I needed to setup a scheduled task that ran some PowerShell script in Windows Server 2008. When searching the web I noticed that a lot of people had struggled with this and so I decided to write this post to explain how I managed it. The scheduled task will ‘run whether the user is logged on or not’. You can schedule a PowerShell script using task scheduler which will run automatically on a given time.

http://blog.pointbeyond.com/2010/04/23/run-powershell-script-using-windows-server-2008-task-scheduler/

Guest
5 years 29 days ago

Hi Rashid,

Thanks for the comment and the link to your script. I’ll have to download it and give it a try sometime soon. I’m sure it’ll prove useful to others. :)

Cheers,

Simon