Update samy.ps1
This commit is contained in:
76
samy.ps1
76
samy.ps1
@@ -687,19 +687,34 @@ function Get-SamyTasks {
|
||||
|
||||
try {
|
||||
$json = Get-RemoteText -Url $Url
|
||||
if ([string]::IsNullOrWhiteSpace($json)) {
|
||||
throw "Tasks JSON was empty."
|
||||
if ([string]::IsNullOrWhiteSpace($json)) { throw "Tasks JSON was empty." }
|
||||
|
||||
$tasks = @($json | ConvertFrom-Json -ErrorAction Stop)
|
||||
if ($tasks.Count -eq 0) { throw "Tasks JSON parsed but contained no tasks." }
|
||||
|
||||
foreach ($t in $tasks) {
|
||||
$tooltip = $null
|
||||
if ($t.PSObject.Properties.Name -contains 'Tooltip') { $tooltip = [string]$t.Tooltip }
|
||||
if ([string]::IsNullOrWhiteSpace($tooltip)) { $tooltip = [string]$t.Label }
|
||||
|
||||
# Escape for HTML attribute
|
||||
$tooltip = $tooltip -replace '&','&'
|
||||
$tooltip = $tooltip -replace "'",'''
|
||||
$tooltip = $tooltip -replace '"','"'
|
||||
$tooltip = $tooltip -replace '<','<'
|
||||
$tooltip = $tooltip -replace '>','>'
|
||||
|
||||
if ($t.PSObject.Properties.Name -contains 'Tooltip') {
|
||||
$t.Tooltip = $tooltip
|
||||
} else {
|
||||
$t | Add-Member -NotePropertyName Tooltip -NotePropertyValue $tooltip -Force
|
||||
}
|
||||
}
|
||||
|
||||
$tasks = $json | ConvertFrom-Json -ErrorAction Stop
|
||||
if (-not $tasks -or @($tasks).Count -eq 0) {
|
||||
throw "Tasks JSON parsed but contained no tasks."
|
||||
}
|
||||
|
||||
return @($tasks)
|
||||
return $tasks
|
||||
}
|
||||
catch {
|
||||
Write-LogHybrid "Failed to load tasks from ${Url}: $($_.Exception.Message)" Warning UI -LogToEvent
|
||||
Write-LogHybrid "Failed to load tasks from ${Url}: $($_.Exception.Message)" Error UI -LogToEvent
|
||||
return $null
|
||||
}
|
||||
}
|
||||
@@ -782,42 +797,11 @@ function Initialize-SamyTasks {
|
||||
# Page → which tab/page it appears on
|
||||
|
||||
# Embedded fallback (keep your current list here)
|
||||
$Script:EmbeddedSamyTasks = @(
|
||||
# On-Boarding, left column
|
||||
@{ Id='setSVSPowerplan'; Name='setSVSPowerplan'; Label='Set SVS Powerplan'; HandlerFn='Invoke-setSVSPowerPlan'; Page='onboard'; Column='left' },
|
||||
@{ Id='installSVSMSPModule'; Name='installSVSMSPModule'; Label='Install SVSMSP Module'; HandlerFn='Invoke-InstallSVSMSP'; Page='onboard'; Column='left' },
|
||||
@{ Id='installCyberQP'; Name='installCyberQP'; Label='Install CyberQP'; HandlerFn='Invoke-InstallCyberQP'; Page='onboard'; Column='left' },
|
||||
@{ Id='installHelpDesk'; Name='installHelpDesk'; Label='Install HelpDesk'; HandlerFn='Invoke-InstallHelpDesk'; Page='onboard'; Column='left' },
|
||||
@{ Id='installThreatLocker'; Name='installThreatLocker'; Label='Install ThreatLocker'; HandlerFn='Invoke-InstallThreatLocker'; Page='onboard'; Column='left' },
|
||||
@{ Id='installRocketCyber'; Name='installRocketCyber'; Label='Install RocketCyber'; HandlerFn='Invoke-InstallRocketCyber'; Page='onboard'; Column='left' },
|
||||
@{ Id='installDattoRMM'; Name='installDattoRMM'; Label='Install DattoRMM'; HandlerFn='Invoke-InstallDattoRMM'; Page='onboard'; Column='left';
|
||||
SubOptions= @(
|
||||
@{ Value='inputVar'; Label='Copy Site Variables' },
|
||||
@{ Value='rmm'; Label='Install RMM Agent' },
|
||||
@{ Value='exe'; Label='Download Executable' }
|
||||
)
|
||||
},
|
||||
|
||||
|
||||
# On-Boarding, right column (optional bits)
|
||||
@{ Id='enableBitLocker'; Name='EnableBitLocker'; Label='Enable BitLocker'; HandlerFn='Set-SVSBitLocker'; Page='onboard'; Column='right' },
|
||||
@{ Id='setEdgeDefaultSearch';Name='setedgedefaultsearch';Label='Set Edge Default Search'; Tooltip='Will configure Edge to use Google as default search provider'; HandlerFn='Invoke-SetEdgeDefaultSearchEngine';Page='onboard'; Column='right' },
|
||||
@{ Id='renameComputer'; Name='renameComputer'; Label='Rename Computer'; HandlerFn ='Invoke-RenameComputer'; Page='onboard';Column= 'right' },
|
||||
@{ Id='disableAnimations'; Name='disableAnimations'; Label='Disable Animations'; HandlerFn='Disable-Animations'; Page='onboard';Column= 'right' },
|
||||
@{ Id='wingetChrome'; Name='wingetChrome'; Label='Google Chrome'; HandlerFn='Invoke-InstallChrome'; Page='onboard';Column= 'right' },
|
||||
@{ Id='wingetAcrobat'; Name='wingetAcrobat'; Label='Adobe Acrobat Reader (64-bit)'; HandlerFn='Invoke-InstallAcrobat'; Page='onboard';Column= 'right' },
|
||||
|
||||
# Off-Boarding
|
||||
@{ Id='offUninstallCyberQP'; Name='offUninstallCyberQP'; Label='Uninstall CyberQP'; HandlerFn='Invoke-UninstallCyberQP'; Page='offboard' },
|
||||
@{ Id='offUninstallHelpDesk'; Name='offUninstallHelpDesk'; Label='Uninstall HelpDesk'; HandlerFn='Invoke-UninstallHelpDesk'; Page='offboard' },
|
||||
@{ Id='offUninstallThreatLocker'; Name='offUninstallThreatLocker'; Label='Uninstall ThreatLocker'; HandlerFn='Invoke-UninstallThreatLocker'; Page='offboard' },
|
||||
@{ Id='offUninstallRocketCyber'; Name='offUninstallRocketCyber'; Label='Uninstall RocketCyber'; HandlerFn='Invoke-UninstallRocketCyber'; Page='offboard' },
|
||||
@{ Id='offCleanupSVSMSPModule'; Name='offCleanupSVSMSPModule'; Label='Cleanup SVSMSP Toolkit'; HandlerFn='Invoke-CleanupSVSMSP'; Page='offboard' }
|
||||
|
||||
) | ForEach-Object { [pscustomobject]$_ }
|
||||
|
||||
|
||||
$Global:SamyTasks = Initialize-SamyTasks -Url $Script:SamyTasksUrl -FallbackTasks $Script:EmbeddedSamyTasks
|
||||
$Global:SamyTasks = Get-SamyTasks -Url $Script:SamyTasksUrl
|
||||
if (-not $Global:SamyTasks) {
|
||||
throw "SAMY cannot continue: failed to load tasks from $Script:SamyTasksUrl"
|
||||
}
|
||||
|
||||
#endregion building the Menus
|
||||
|
||||
@@ -840,9 +824,7 @@ $Global:SamyTasks = Initialize-SamyTasks -Url $Script:SamyTasksUrl -FallbackTask
|
||||
$tasks |
|
||||
ForEach-Object {
|
||||
$taskId = $_.Id
|
||||
$tooltip = if ($_.PSObject.Properties.Name -contains 'Tooltip' -and $_.Tooltip) {
|
||||
" title='$($_.Tooltip)'"
|
||||
} else { '' }
|
||||
$tooltip = " title='$($_.Tooltip)'"
|
||||
|
||||
$html = "<label$tooltip><input type='checkbox' id='$taskId' name='$($_.Name)' data-column='$Column'> $($_.Label)</label>"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user