Bird
Raised Fist0
PowerShellscripting~30 mins

Scheduled scripts with Task Scheduler in PowerShell - Mini Project: Build & Apply

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Scheduled scripts with Task Scheduler
📖 Scenario: You work in an office where you need to run a PowerShell script every day to check disk space and save the report. Instead of running it manually, you want to automate this using Windows Task Scheduler.
🎯 Goal: Build a PowerShell script that checks disk space on drive C: and saves the output to a file. Then, prepare a Task Scheduler command to run this script daily.
📋 What You'll Learn
Create a PowerShell script variable with disk space check command
Add a variable for the output file path
Write the command to save disk space info to the file
Show the Task Scheduler command to schedule the script daily
💡 Why This Matters
🌍 Real World
Automating routine system checks saves time and avoids manual errors. Scheduled scripts help keep systems healthy without daily manual work.
💼 Career
System administrators and IT support staff often use Task Scheduler and PowerShell scripts to automate maintenance tasks.
Progress0 / 4 steps
1
Create disk space check command
Create a variable called diskCheck that stores the PowerShell command Get-PSDrive -Name C to check disk space on drive C.
PowerShell
Hint

Use double quotes to store the command as a string in the variable diskCheck.

2
Add output file path variable
Create a variable called outputFile and set it to the string "C:\\Reports\\DiskSpaceReport.txt" which will store the disk space report.
PowerShell
Hint

Remember to escape backslashes in the file path by doubling them.

3
Write disk space info to file
Use the Invoke-Expression cmdlet with diskCheck and pipe the output to Out-File using the outputFile variable to save the disk space info to the file.
PowerShell
Hint

Use Invoke-Expression $diskCheck to run the command stored in the variable, then pipe it to Out-File with the path from outputFile.

4
Show Task Scheduler command
Write a PowerShell Write-Output statement that prints the exact command to create a daily scheduled task named DiskSpaceCheck running the script C:\\Scripts\\DiskSpaceCheck.ps1 at 9 AM every day using schtasks.exe.
PowerShell
Hint

Use Write-Output to print the full schtasks command with the correct options for daily scheduling at 9 AM.

Practice

(1/5)
1. What is the main purpose of using Task Scheduler with PowerShell scripts?
easy
A. To write scripts faster using a graphical interface
B. To convert scripts into executable files
C. To debug scripts interactively
D. To run scripts automatically at specific times without manual start

Solution

  1. Step 1: Understand Task Scheduler's role

    Task Scheduler is designed to run tasks automatically based on a schedule.
  2. Step 2: Identify the benefit for scripts

    Running scripts automatically saves time and ensures tasks run without forgetting.
  3. Final Answer:

    To run scripts automatically at specific times without manual start -> Option D
  4. Quick Check:

    Task Scheduler automates script running [OK]
Hint: Task Scheduler automates script runs on schedule [OK]
Common Mistakes:
  • Thinking Task Scheduler helps write or debug scripts
  • Confusing automation with script editing
  • Assuming it converts scripts to executables
2. Which of the following is the correct syntax to create a scheduled task that runs a PowerShell script daily at 7 AM using schtasks?
easy
A. schtasks /create /tn "MyTask" /tr "powershell.exe -File C:\Scripts\task.ps1" /sc daily /st 07:00
B. schtasks /run /tn "MyTask" /tr "powershell.exe -File C:\Scripts\task.ps1" /sc daily /st 07:00
C. schtasks /delete /tn "MyTask" /tr "powershell.exe -File C:\Scripts\task.ps1" /sc daily /st 07:00
D. schtasks /create /tn "MyTask" /tr "C:\Scripts\task.ps1" /sc hourly /st 07:00

Solution

  1. Step 1: Identify the command to create a task

    The /create option is used to create a new scheduled task.
  2. Step 2: Check the task action and schedule

    The task runs PowerShell with the script file path, scheduled daily at 07:00.
  3. Final Answer:

    schtasks /create /tn "MyTask" /tr "powershell.exe -File C:\Scripts\task.ps1" /sc daily /st 07:00 -> Option A
  4. Quick Check:

    Use /create with /tn, /tr, /sc daily, /st 07:00 [OK]
Hint: Use /create to schedule, not /run or /delete [OK]
Common Mistakes:
  • Using /run instead of /create to schedule
  • Omitting powershell.exe in /tr argument
  • Wrong schedule type like hourly instead of daily
3. What will be the output when running this command?
schtasks /query /tn "BackupTask"

Assuming the task "BackupTask" exists and is scheduled.
medium
A. Deletes the task named "BackupTask"
B. Creates a new task named "BackupTask"
C. Displays details of the scheduled task named "BackupTask"
D. Shows an error because /query cannot be used with /tn

Solution

  1. Step 1: Understand the /query option

    The /query option lists information about scheduled tasks.
  2. Step 2: Using /tn with /query

    Specifying /tn "BackupTask" filters the query to show only that task's details.
  3. Final Answer:

    Displays details of the scheduled task named "BackupTask" -> Option C
  4. Quick Check:

    /query with /tn shows task info [OK]
Hint: Use /query with /tn to see specific task info [OK]
Common Mistakes:
  • Confusing /query with /create or /delete
  • Thinking /query with /tn causes error
  • Expecting task creation or deletion output
4. You wrote this command to schedule a script:
schtasks /create /tn "DailyReport" /tr "powershell.exe C:\Scripts\report.ps1" /sc daily /st 09:00

But the task does not run at 9 AM. What is the likely error?
medium
A. Using /sc daily instead of /sc hourly
B. Missing the -File parameter before the script path in /tr
C. Task name "DailyReport" is invalid
D. Start time format 09:00 is incorrect

Solution

  1. Step 1: Check the /tr argument syntax

    The PowerShell command should include -File before the script path to run it properly.
  2. Step 2: Understand why missing -File causes failure

    Without -File, PowerShell does not know to execute the script file, so the task runs but does nothing.
  3. Final Answer:

    Missing the -File parameter before the script path in /tr -> Option B
  4. Quick Check:

    PowerShell needs -File to run script [OK]
Hint: Always include -File before script path in /tr [OK]
Common Mistakes:
  • Omitting -File in PowerShell command
  • Changing schedule type unnecessarily
  • Assuming task name or time format is wrong
5. You want to schedule a PowerShell script to run every Monday and Friday at 6 PM. Which schtasks command correctly sets this up?
hard
A. schtasks /create /tn "WeeklyTask" /tr "powershell.exe -File C:\Scripts\weekly.ps1" /sc weekly /d MON,FRI /st 18:00
B. schtasks /create /tn "WeeklyTask" /tr "powershell.exe -File C:\Scripts\weekly.ps1" /sc daily /d MON,FRI /st 18:00
C. schtasks /create /tn "WeeklyTask" /tr "powershell.exe -File C:\Scripts\weekly.ps1" /sc weekly /d 1,5 /st 18:00
D. schtasks /create /tn "WeeklyTask" /tr "powershell.exe -File C:\Scripts\weekly.ps1" /sc monthly /d MON,FRI /st 18:00

Solution

  1. Step 1: Choose correct schedule type for specific weekdays

    The /sc weekly option schedules tasks weekly on specified days.
  2. Step 2: Specify days and time correctly

    Use /d MON,FRI to run on Monday and Friday, and /st 18:00 for 6 PM start time.
  3. Final Answer:

    schtasks /create /tn "WeeklyTask" /tr "powershell.exe -File C:\Scripts\weekly.ps1" /sc weekly /d MON,FRI /st 18:00 -> Option A
  4. Quick Check:

    Weekly schedule with MON,FRI days and 18:00 time [OK]
Hint: Use /sc weekly with /d MON,FRI for specific weekdays [OK]
Common Mistakes:
  • Using /sc daily instead of weekly for specific days
  • Using numeric days instead of MON,FRI
  • Choosing monthly schedule incorrectly