From 8a828a75e26936ebcf6d2170a11321b9801b3d9d Mon Sep 17 00:00:00 2001 From: Stephan Yelle Date: Tue, 7 Jan 2025 01:02:00 -0500 Subject: [PATCH] Update TGBeta.ps1 --- TGBeta.ps1 | 164 +++++++++++++++++++++++++++-------------------------- 1 file changed, 83 insertions(+), 81 deletions(-) diff --git a/TGBeta.ps1 b/TGBeta.ps1 index 7d0bc41..0d2a3a5 100644 --- a/TGBeta.ps1 +++ b/TGBeta.ps1 @@ -986,98 +986,100 @@ try { } } - function Execute-Task { - param ( - [string]$TaskName, - [hashtable]$Details - ) + function Execute-Task { + param ( + [string]$TaskName, + [hashtable]$Details + ) - switch ($TaskName) { - "installSVSMSPModule" { - Write-LogHybrid -Message "Starting task: $TaskName" -Level "Info" - # Add your task execution logic here - Start-Sleep -Seconds 2 # Simulate task execution - Write-LogHybrid -Message "Completed task: $TaskName" -Level "Success" - } - "installDattoRMM" { - Write-LogHybrid -Message "Starting task: $TaskName" -Level "Info" - $UID = $Details["UID"] - $Name = $Details["Name"] - $Options = $Details["options"] - # Add your task execution logic here - Start-Sleep -Seconds 3 # Simulate task execution - Write-LogHybrid -Message "Completed task: $TaskName for site $Name (UID: $UID)" -Level "Success" - } - "setSVSPowerplan" { - Write-LogHybrid -Message "Starting task: $TaskName" -Level "Info" - # Add your task execution logic here - Start-Sleep -Seconds 1 # Simulate task execution - Write-LogHybrid -Message "Completed task: $TaskName" -Level "Success" - } - "installCyberQP" { - Write-LogHybrid -Message "Starting task: $TaskName" -Level "Info" - # Add your task execution logic here - Start-Sleep -Seconds 2 # Simulate task execution - Write-LogHybrid -Message "Completed task: $TaskName" -Level "Success" - } - "installRocketCyber" { - Write-LogHybrid -Message "Starting task: $TaskName" -Level "Info" - # Add your task execution logic here - Start-Sleep -Seconds 2 # Simulate task execution - Write-LogHybrid -Message "Completed task: $TaskName" -Level "Success" - } - "installThreatLocker" { - Write-LogHybrid -Message "Starting task: $TaskName" -Level "Info" - # Add your task execution logic here - Start-Sleep -Seconds 2 # Simulate task execution - Write-LogHybrid -Message "Completed task: $TaskName" -Level "Success" - } - default { - Write-LogHybrid -Message "Unknown task: $TaskName" -Level "Warning" - } - } -} + switch ($TaskName) { + "installSVSMSPModule" { + Write-LogHybrid -Message "Starting task: $TaskName" -Level "Info" + # Add your task execution logic here + Start-Sleep -Seconds 2 # Simulate task execution + Write-LogHybrid -Message "Completed task: $TaskName" -Level "Success" + } + "installDattoRMM" { + Write-LogHybrid -Message "Starting task: $TaskName" -Level "Info" + $UID = $Details["UID"] + $Name = $Details["Name"] + $Options = $Details["options"] + # Add your task execution logic here + Start-Sleep -Seconds 3 # Simulate task execution + Write-LogHybrid -Message "Completed task: $TaskName for site $Name (UID: $UID)" -Level "Success" + } + "setSVSPowerplan" { + Write-LogHybrid -Message "Starting task: $TaskName" -Level "Info" + # Add your task execution logic here + Start-Sleep -Seconds 1 # Simulate task execution + Write-LogHybrid -Message "Completed task: $TaskName" -Level "Success" + } + "installCyberQP" { + Write-LogHybrid -Message "Starting task: $TaskName" -Level "Info" + # Add your task execution logic here + Start-Sleep -Seconds 2 # Simulate task execution + Write-LogHybrid -Message "Completed task: $TaskName" -Level "Success" + } + "installRocketCyber" { + Write-LogHybrid -Message "Starting task: $TaskName" -Level "Info" + # Add your task execution logic here + Start-Sleep -Seconds 2 # Simulate task execution + Write-LogHybrid -Message "Completed task: $TaskName" -Level "Success" + } + "installThreatLocker" { + Write-LogHybrid -Message "Starting task: $TaskName" -Level "Info" + # Add your task execution logic here + Start-Sleep -Seconds 2 # Simulate task execution + Write-LogHybrid -Message "Completed task: $TaskName" -Level "Success" + } + default { + Write-LogHybrid -Message "Unknown task: $TaskName" -Level "Warning" + } + } + } -function Execute-PrioritizedTasks { - param ( - [Parameter(Mandatory = $true)] - [array]$Tasks - ) + function Execute-PrioritizedTasks { + param ( + [Parameter(Mandatory = $true)] + [array]$Tasks + ) - $SortedTasks = $Tasks | Sort-Object -Property priority + $SortedTasks = $Tasks | Sort-Object -Property priority - foreach ($task in $SortedTasks) { - $TaskName = $task.name - $Details = $task.details - Execute-Task -TaskName $TaskName -Details $Details - } + foreach ($task in $SortedTasks) { + $TaskName = $task.name + $Details = $task.details + Execute-Task -TaskName $TaskName -Details $Details + } - Write-Output "All tasks completed." -} + Write-Output "All tasks completed." + } -# Route to handle incoming task execution request -if ($request.HttpMethod -eq "POST" -and $request.Url.AbsolutePath -eq "/executeTasks") { - try { - $body = Get-Content -Raw -Path $request.InputStream | ConvertFrom-Json - $Tasks = $body.tasks - Execute-PrioritizedTasks -Tasks $Tasks + # Route to handle incoming task execution request + if ($request.HttpMethod -eq "POST" -and $request.Url.AbsolutePath -eq "/executeTasks") { + try { + $body = Get-Content -Raw -Path $request.InputStream | ConvertFrom-Json + $Tasks = $body.tasks + Execute-PrioritizedTasks -Tasks $Tasks - $responseString = "All tasks executed successfully." - $response.StatusCode = 200 - } catch { - $responseString = "Error executing tasks: $($_.Exception.Message)" - $response.StatusCode = 500 - } + $responseString = "All tasks executed successfully." + $response.StatusCode = 200 + } catch { + $responseString = "Error executing tasks: $($_.Exception.Message)" + $response.StatusCode = 500 + } - $buffer = [System.Text.Encoding]::UTF8.GetBytes($responseString) - $response.ContentType = "text/plain" - $response.ContentLength64 = $buffer.Length - $response.OutputStream.Write($buffer, 0, $buffer.Length) - $response.OutputStream.Close() -} + $buffer = [System.Text.Encoding]::UTF8.GetBytes($responseString) + $response.ContentType = "text/plain" + $response.ContentLength64 = $buffer.Length + $response.OutputStream.Write($buffer, 0, $buffer.Length) + $response.OutputStream.Close() + } + + # ---------------------------------------------------------------- # 4) NEW ROUTE: /getLogs # Returns $Global:LogCache as JSON for the polling function