Initial commit
This commit is contained in:
59
client/scheduler/manage_scheduler.ps1
Normal file
59
client/scheduler/manage_scheduler.ps1
Normal file
@@ -0,0 +1,59 @@
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[ValidateSet("Enable","Disable")]
|
||||
[string]$Action,
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$TaskName,
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$ExecutablePath,
|
||||
|
||||
[string]$ProfileName = "default",
|
||||
[string]$Trigger = "ONLOGON",
|
||||
[string]$StartTime = "02:00"
|
||||
)
|
||||
|
||||
function Write-Result {
|
||||
param([bool]$Success, [string]$Message)
|
||||
Write-Output "$($Success ? 'SUCCESS' : 'FAIL') : $Message"
|
||||
exit (if ($Success) {0} else {1})
|
||||
}
|
||||
|
||||
if (-not (Test-Path -Path $ExecutablePath)) {
|
||||
Write-Result -Success:$false -Message "Executable '$ExecutablePath' non trovato"
|
||||
}
|
||||
|
||||
$taskArguments = "--auto --profile '$ProfileName'"
|
||||
|
||||
switch ($Action) {
|
||||
'Enable' {
|
||||
$existing = schtasks /Query /TN $TaskName 2>$null
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
schtasks /Delete /TN $TaskName /F | Out-Null
|
||||
}
|
||||
$escapedExe = "`"$ExecutablePath`""
|
||||
$command = "$escapedExe $taskArguments"
|
||||
$createArgs = @(
|
||||
"/Create",
|
||||
"/TN", $TaskName,
|
||||
"/TR", $command,
|
||||
"/SC", $Trigger,
|
||||
"/ST", $StartTime,
|
||||
"/RL", "HIGHEST",
|
||||
"/F"
|
||||
)
|
||||
$result = schtasks @createArgs
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Result -Success:$false -Message "Creazione task fallita: $result"
|
||||
}
|
||||
Write-Result -Success:$true -Message "Task '$TaskName' abilitato"
|
||||
}
|
||||
'Disable' {
|
||||
$result = schtasks /Delete /TN $TaskName /F
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Result -Success:$false -Message "Cancellazione task fallita: $result"
|
||||
}
|
||||
Write-Result -Success:$true -Message "Task '$TaskName' disabilitato"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user