@ -1,60 +1,38 @@
Import-Module -DisableNameChecking $PSScriptRoot \ . . \ " title-templates.psm1 "
function Find-ScheduledTask ( ) {
[ CmdletBinding ( ) ]
[ OutputType ( [ Bool ] ) ]
param (
[ Parameter ( Mandatory = $true ) ]
[ String ] $ScheduledTask
)
If ( Get-ScheduledTaskInfo -TaskName $ScheduledTask -ErrorAction SilentlyContinue ) {
return $true
} Else {
Write-Status -Types " ? " , $TweakType -Status " The $ScheduledTask task was not found. " -Warning
return $false
}
}
function Set-ScheduledTaskState ( ) {
[ CmdletBinding ( ) ]
param (
[ Parameter ( Mandatory = $false ) ]
[ Switch ] $Disabled ,
[ Parameter ( Mandatory = $false ) ]
[ Switch ] $Ready ,
[ Parameter ( Mandatory = $true ) ]
[ ValidateSet ( 'Disabled' , 'Enabled' ) ]
[ String ] $State ,
[ Parameter ( Mandatory = $true ) ]
[ Array ] $ScheduledTasks ,
[ Parameter ( Mandatory = $false ) ]
[ Array ] $Filter ,
[ Parameter ( Mandatory = $false ) ]
[ ScriptBlock ] $CustomMessage
[ Array ] $Filter
)
$Script:TweakType = " TaskScheduler "
Begin {
$Script:TweakType = " TaskScheduler "
}
ForEach ( $ScheduledTask in $ScheduledTasks ) {
If ( Find-ScheduledTask $ScheduledTask ) {
If ( $ScheduledTask -in $Filter ) {
Write-Status -Types " ? " , $TweakType -Status " The $ScheduledTask ($( ( Get-ScheduledTask $ScheduledTask ) . TaskName ) ) will be skipped as set on Filter.. ." -Warning
Process {
ForEach ( $ScheduledTask in $ScheduledTasks ) {
If ( ! ( Get-ScheduledTaskInfo -TaskName $ScheduledTask -ErrorAction SilentlyContinue ) ) {
Write-Status -Types " ? " , $TweakType -Status " The $ScheduledTask task was not found ." -Warning
Continue
}
If ( ! $CustomMessage ) {
If ( $Disabled ) {
Write-Status -Types " - " , $TweakType -Status " Disabling the $ScheduledTask task... "
} ElseIf ( $Ready ) {
Write-Status -Types " + " , $TweakType -Status " Enabling the $ScheduledTask task... "
} Else {
Write-Status -Types " ? " , $TweakType -Status " No parameter received (valid params: -Disabled or -Ready) " -Warning
}
} Else {
Write-Status -Types " @ " , $TweakType -Status $ ( Invoke-Expression " $CustomMessage " )
If ( $ScheduledTask -in $Filter ) {
Write-Status -Types " ? " , $TweakType -Status " The $ScheduledTask ( $( ( Get-ScheduledTask $ScheduledTask ) . TaskName ) ) will be skipped as set on Filter... " -Warning
Continue
}
If ( $Disabled ) {
If ( $State -eq 'Disabled' ) {
Write-Status -Types " - " , $TweakType -Status " Disabling the $ScheduledTask task... "
Get-ScheduledTask -TaskName ( Split-Path -Path $ScheduledTask -Leaf ) | Where-Object State -Like " R* " | Disable-ScheduledTask # R* = Ready/Running
} ElseIf ( $Ready ) {
} ElseIf ( $State -eq 'Enabled' ) {
Write-Status -Types " + " , $TweakType -Status " Enabling the $ScheduledTask task... "
Get-ScheduledTask -TaskName ( Split-Path -Path $ScheduledTask -Leaf ) | Where-Object State -Like " Disabled " | Enable-ScheduledTask
}
}
@ -62,11 +40,9 @@ function Set-ScheduledTaskState() {
}
<#
Set-ScheduledTaskState -Disabled -ScheduledTasks @ ( " ScheduledTask1 " , " ScheduledTask2 " , " ScheduledTask3 " )
Set-ScheduledTaskState -Disabled -ScheduledTasks @ ( " ScheduledTask1 " , " ScheduledTask2 " , " ScheduledTask3 " ) -Filter @ ( " ScheduledTask3 " )
Set-ScheduledTaskState -Disabled -ScheduledTasks @ ( " ScheduledTask1 " , " ScheduledTask2 " , " ScheduledTask3 " ) -Filter @ ( " ScheduledTask3 " ) -CustomMessage { " Setting $ScheduledTask as Disabled! " }
Set-ScheduledTaskState -State Disabled -ScheduledTasks @ ( " ScheduledTask1 " , " ScheduledTask2 " , " ScheduledTask3 " )
Set-ScheduledTaskState -State Disabled -ScheduledTasks @ ( " ScheduledTask1 " , " ScheduledTask2 " , " ScheduledTask3 " ) -Filter @ ( " ScheduledTask3 " )
Set-ScheduledTaskState -Ready -ScheduledTasks @ ( " ScheduledTask1 " , " ScheduledTask2 " , " ScheduledTask3 " )
Set-ScheduledTaskState -Ready -ScheduledTasks @ ( " ScheduledTask1 " , " ScheduledTask2 " , " ScheduledTask3 " ) -Filter @ ( " ScheduledTask3 " )
Set-ScheduledTaskState -Ready -ScheduledTasks @ ( " ScheduledTask1 " , " ScheduledTask2 " , " ScheduledTask3 " ) -Filter @ ( " ScheduledTask3 " ) -CustomMessage { " Setting $ScheduledTask as Ready! " }
Set-ScheduledTaskState -State Enabled -ScheduledTasks @ ( " ScheduledTask1 " , " ScheduledTask2 " , " ScheduledTask3 " )
Set-ScheduledTaskState -State Enabled -ScheduledTasks @ ( " ScheduledTask1 " , " ScheduledTask2 " , " ScheduledTask3 " ) -Filter @ ( " ScheduledTask3 " )
#>