117 lines
2.5 KiB
Markdown
117 lines
2.5 KiB
Markdown
# 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)
|
|
|
|
here's a tool to make form an gui powershell application
|
|
|
|
[Gui powershell tool](https://app.poshgui.com)
|
|
|
|
## Converting Powershell script to exe
|
|
|
|
First we need to install ps2exe
|
|
|
|
```powershell
|
|
Install-Module -Name ps2exe
|
|
```
|
|
|
|
than we evoke it
|
|
|
|
```powershell
|
|
Invoke-PS2EXE .\Diskcleaner.ps1 .\DiskCleaner.exe
|
|
```
|
|
|