From 08e32f8678da80f3d5a1e75e0c12a82325ea1610 Mon Sep 17 00:00:00 2001 From: Stephan Yelle Date: Mon, 27 Jan 2025 22:23:54 -0500 Subject: [PATCH] Update TGBeta.ps1 --- TGBeta.ps1 | 229 ++++++++++++++++------------------------------------- 1 file changed, 67 insertions(+), 162 deletions(-) diff --git a/TGBeta.ps1 b/TGBeta.ps1 index ad4b7a5..8481c8a 100644 --- a/TGBeta.ps1 +++ b/TGBeta.ps1 @@ -12,6 +12,17 @@ ### need to have the fetch button check if Install-DattoRMM function exist if not run the build in helpder function to fetch sites ### need to move the tweaks to the tweeks tab +### To Modify as of January 27 2025 + +### let's start thinking about the write-log -TaskCategory "On-boarding" or "Off-boarding" +### need RGB color codes form john, once we picked the RGBA colors +### add the .net silent install tweaks to toolkit +### for the reg tweak need to do/undo function maybe it should have it own check box list +### added offboard check boxes for dattormm, dattodeb, rocketcyber, cyberQP, SVSHelpdesk and Splashtop +### for the offboarding button, we need to fix the uninstall-svsmsp module +### need to fix path in the uninstall-DattoEDR - +####### ❌ [Error] [GeneralTask] Uninstallation command 'C:\Program Files\Infocyte\Agent\agent.exe' not found. (Event ID: 3000) - bad path + #region Write-Log @@ -738,73 +749,35 @@ function GetHtmlContent { +

Tweaks

-
- -
-

System Optimizations

-
- - - - -
-
- - -
-

Additional Tweaks

-
- - - -
-
- - -
-

Miscellaneous

-
- - -
-
+
+ + + + +
- -
- +
-
@@ -961,56 +934,14 @@ function GetHtmlContent { }); function triggerTweaks() { - // Gather all selected tweaks - const selectedTweaks = []; - document.querySelectorAll('#tweaksTab input[type="checkbox"]').forEach(checkbox => { - if (checkbox.checked) { - selectedTweaks.push(checkbox.name); // Use 'name' as the identifier - } - }); - - if (selectedTweaks.length === 0) { - appendLog("No tweaks selected. Please select at least one tweak.", "red"); - return; + const setedgedefaultsearch = document.querySelector('input[name="setedgedefaultsearch"]'); + + + if (setedgedefaultsearch.checked) { + fetch('/setedgedefaultsearch', { method: 'GET' }) } - - // Send selected tweaks to the backend - fetch('/runTweaks', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ tweaks: selectedTweaks }) - }) - .then(response => { - if (!response.ok) { - throw new Error(`Failed to apply tweaks: ${response.statusText}`); - } - return response.json(); - }) - .then(data => { - // Log successes and errors - if (data.Success && data.Success.length > 0) { - data.Success.forEach(tweak => appendLog(`Successfully applied: ${tweak}`, "green")); - } - if (data.Errors && data.Errors.length > 0) { - data.Errors.forEach(error => appendLog(`Error: ${error}`, "red")); - } - }) - .catch(error => { - appendLog(`Unexpected error: ${error.message}`, "red"); - }); } - function appendLog(message, color = "white") { - const log = document.createElement('p'); - log.style.color = color; - log.textContent = message; - document.getElementById('logArea').appendChild(log); - } - - - function toggleDattoRMMOptions() { const checkbox = document.getElementById('installDattoRMMCheckbox'); @@ -1031,22 +962,14 @@ function GetHtmlContent { tabButtons.forEach(button => { button.addEventListener('click', () => { - console.log(`Tab button clicked: ${button.dataset.tab}`); // Log which tab button was clicked tabButtons.forEach(btn => { btn.classList.remove('active'); btn.setAttribute('aria-expanded', 'false'); }); tabContents.forEach(tab => tab.classList.remove('active')); - button.classList.add('active'); button.setAttribute('aria-expanded', 'true'); - const targetTab = document.getElementById(button.dataset.tab); - console.log(`Activating tab: ${button.dataset.tab}`); - if (targetTab) { - targetTab.classList.add('active'); - } else { - console.error(`Tab not found: ${button.dataset.tab}`); - } + document.getElementById(button.dataset.tab).classList.add('active'); }); }); @@ -1714,9 +1637,9 @@ try { if ($request.HttpMethod -eq "POST") { try { # Step 1: Read the Request Body - $bodyStream = New-Object IO.StreamReader $request.InputStream - $body = $bodyStream.ReadToEnd() - $requestData = ConvertFrom-Json $body + $bodyStream = New-Object IO.StreamReader $request.InputStream + $body = $bodyStream.ReadToEnd() + $requestData = ConvertFrom-Json $body # Step 2: Validate Input $tweaks = $requestData.tweaks @@ -1729,63 +1652,46 @@ try { return } - # Step 3: Define Lookup Table for Tweaks - $tweakActions = @{ - "setWindowsPerformanceCheckbox" = { .\Set-WindowsPerformance.ps1 } - "stopUnnecessaryServicesCheckbox" = { .\Stop-UnnecessaryServices.ps1 } - "setedgedefaultsearchCheckbox" = { Set-EdgeDefaultSearchEngine } - "disableAnimationsCheckbox" = { Disable-Animations } - "optimizePerformanceCheckbox" = { Optimize-Performance } - "increaseFontSizeCheckbox" = { Increase-FontSize } - "enableDarkModeCheckbox" = { Enable-DarkMode } - "clearTempFilesCheckbox" = { Clear-TempFiles } - } - - # Step 4: Process Each Selected Tweak - $tweaksProcessed = @() - $errors = @() + # Step 3: Run Selected Tweaks foreach ($tweak in $tweaks) { - if ($tweakActions[$tweak]) { - try { - # Execute the tweak function or script - $tweakActions[$tweak].Invoke() - Write-LogHybrid -Message "Tweak '$tweak' applied successfully." -Level "Info" - $tweaksProcessed += $tweak - } catch { - # Log and collect errors for this tweak - $errorMessage = "Failed to apply tweak '$tweak': $($_.Exception.Message)" - Write-LogHybrid -Message $errorMessage -Level "Error" - $errors += $errorMessage + switch ($tweak) { + "enableDarkModeCheckbox" { + Write-LogHybrid -Message "Running tweak: Set Edge Default Search Engine" -Level "Info" + Set-EdgeDefaultSearchEngine + } + "disableAnimationsCheckbox" { + Write-LogHybrid -Message "Running tweak: Disable Animations" -Level "Info" + #Disable-Animations + } + "optimizePerformanceCheckbox" { + Write-LogHybrid -Message "Running tweak: Optimize Performance" -Level "Info" + #Optimize-Performance + } + "increaseFontSizeCheckbox" { + Write-LogHybrid -Message "Running tweak: Increase Font Size" -Level "Info" + #Increase-FontSize + } + default { + Write-LogHybrid -Message "Unknown tweak: $tweak" -Level "Warning" } - } else { - # Handle unknown tweaks - Write-LogHybrid -Message "Unknown tweak: $tweak" -Level "Warning" - $errors += "Unknown tweak: $tweak" } } - # Step 5: Return Summary of Results - $responseData = @{ - Success = $tweaksProcessed - Errors = $errors - } - $responseString = $responseData | ConvertTo-Json -Depth 2 + # Step 4: Return Success Response + $responseString = "Selected tweaks executed successfully." $response.StatusCode = 200 } catch { - # Handle General Errors $responseString = "Error processing tweaks: $($_.Exception.Message)" - Write-LogHybrid -Message $responseString -Level "Error" $response.StatusCode = 500 } - # Step 6: Send Response + # Send the Response $buffer = [System.Text.Encoding]::UTF8.GetBytes($responseString) - $response.ContentType = "application/json" + $response.ContentType = "text/plain" $response.ContentLength64 = $buffer.Length $response.OutputStream.Write($buffer, 0, $buffer.Length) $response.OutputStream.Close() } else { - # Handle Unsupported HTTP Methods $responseString = "Method not allowed. Use POST." $response.StatusCode = 405 $buffer = [System.Text.Encoding]::UTF8.GetBytes($responseString) @@ -1795,7 +1701,6 @@ try { } - # ---------------------------------------------------------------- # 4) NEW ROUTE: /getLogs # Returns $Global:LogCache as JSON for the polling function