# Learn Powershell Automation in Less than 1 Hour ## Schedule-Task ### Example Do a task at a precise time ```powershell $trigger = New-ScheduledTaskTrigger -At 3pm -Daily $action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument '-File "C:\Scripts\TestSpace.ps1"' $settings = New-ScheduledTaskSettingSet Register-ScheduledTask ` -Action $action ` -Trigger $trigger ` -TaskName "Test SpaceX" ` -Description "Tests connection with SpaceX.com" ` -Settings $settings ``` ### New-ScheduledTaskTrigger Creates a trigger object that defines when the scheduled task will run. Breakdown of components ### New-ScheduledTaskAction Defines what program or command the scheduled task will execute. ### New-ScheduledTaskSettingSet Creates a settings object that controls how the task behaves. ### Register-ScheduleTask Registers the task with Windows Task Scheduler, making it active. ## Get-ScheduledTask Return every Scheduled task ```powershell Get-ScheduledTask -TaskName "Test SpaceX" | Get-ScheduledTaskInfo ``` ## Unregister-ScheduledTask Remove a ScheduledTask ```powershell Unregister-ScheduledTask -TaskName "Test SpaceX" -Confirm:$false ``` ## Difference between Scheduled task and schedueld job A **scheduled task** is a generic scheduled unit of work, while a **scheduled job** is a defined, often reusable execution of that work within a scheduling system. ## ScheduledJob More advance can run when the computer is in different state (sleep or hibernate) More straightforward ### Example ```powershell $Trigger = New-JobTrigger -Daily -at 3pm $Scriptblck = { C:\Scripts\TestSpaceX.ps1 } Register-ScheduledJob -Name "TestSpaceX Job" -ScriptBlock $scriptblock -Trigger $Trigger ``` ### Get-ScheduledJob List all the ScheduledJob ```powershell Get-ScheduledJob -Name "TestSpaceX" | select Name, State ``` ### Unregister-ScheduledJob Remove a ScheduledJob ```powershell Unregister-ScheduledJob -Name "TestSpaceX Job" ``` ## GUI with Powershel A graphical user interface application developed using PowerShell to automate tasks, manage systems, and provide user-friendly access to scripts and tools. [Disk cleaner example](https://github.com/jimrtyler/diskcleaner/blob/main/DiskCleaner.ps1)