#requires -Version 5.1 <# ------------------------------------------------------- TALON.PS1 v2026.4.1.25 (c) 2026-Present Raven Technologies Group LLC ------------------------------------------------------- /!\ ARE YOU LOST? ----------------- You might have accidentally stumbled upon this when trying to download Talon. If so, that is okay. Here is the proper link: https://raventechnologiesgroup.com/explore#talon This is a PowerShell script for running Talon via PowerShell, rather than the standard method of downloading then running the EXE. This method of running Talon is reserved for more tech savvy individuals who understand the risks of running scripts in this manner. The correct way to run this script is as follows: irm https://debloat.win | iex NOTE: Running Talon this way will run it in HEADLESS mode. UIs and automated restart will be suppressed! ------------------------------------------------------- /!\ CODE PAST THIS POINT! /!\ ------------------------------------------------------- #> Set-StrictMode -Version Latest $ErrorActionPreference = 'Stop' function Fail { param([string]$Message,[int]$Code=1) Write-Host $Message -ForegroundColor Red cmd /c pause > $null exit $Code } function Ensure-Admin { if (([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent() ).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { return } $script = $PSCommandPath if (-not $script) { Fail "Not elevated. Open PowerShell as Administrator then try again." } try { Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile","-ExecutionPolicy","Bypass","-File",$script -Verb RunAs exit } catch { Fail "Elevation failed or was cancelled. Right-click PowerShell and select Run as administrator, then re-run this script." } } function New-TalonTempFolder { param([string]$BasePath) $folder = Join-Path $BasePath "temporary_folder_for_talon" try { if (-not (Test-Path -LiteralPath $folder)) { New-Item -ItemType Directory -Path $folder -Force | Out-Null } return $folder } catch { Fail "Failed to create temporary Talon folder." } } function Add-DefenderExclusionSafe { param([string]$Path) try { Add-MpPreference -ExclusionPath $Path } catch { Fail "Failed to add Windows Defender exclusion." } } function Remove-DefenderExclusionSafe { param([string]$Path) try { Remove-MpPreference -ExclusionPath $Path } catch {} } function Download-Zip { param([string]$Url,[string]$OutFile) try { Invoke-WebRequest -Uri $Url -OutFile $OutFile -TimeoutSec 120 if (-not (Test-Path -LiteralPath $OutFile) -or (Get-Item -LiteralPath $OutFile).Length -le 0) { Fail "Download completed but file is empty. Check connectivity and retry." } } catch { Fail "Failed to download from $Url. Check your internet connection or firewall and try again." } } function Verify-FileHash { param( [string]$Path, [string]$ExpectedHash ) try { if (-not (Test-Path -LiteralPath $Path)) { Fail "Downloaded file not found for hash verification." } $actual = (Get-FileHash -LiteralPath $Path -Algorithm SHA256).Hash.ToLower() $expected = $ExpectedHash.ToLower() if ($actual -ne $expected) { try { Remove-Item -LiteralPath $Path -Force } catch {} Fail "Integrity verification failed. The downloaded file may have been tampered with. Please report this to Raven Technologies Group." } } catch { Fail "Failed to verify file integrity." } } function Extract-Zip { param([string]$ZipPath,[string]$Destination) try { if (Test-Path -LiteralPath $Destination) { Remove-Item -LiteralPath $Destination -Recurse -Force } Expand-Archive -Path $ZipPath -DestinationPath $Destination -Force Remove-Item -LiteralPath $ZipPath -Force } catch { Fail "Failed to extract the archive. The ZIP may be corrupt. Re-run the script." } } function Find-Exe { param([string]$Root) $paths = @( (Join-Path $Root "Talon.exe"), (Join-Path $Root "Talon\Talon.exe") ) foreach ($p in $paths) { if (Test-Path -LiteralPath $p) { return $p } } Fail "Talon.exe not found in expected locations." } function Stage-Exe { param([string]$Source,[string]$Dest) try { Copy-Item -LiteralPath $Source -Destination $Dest -Force if ((Get-Item -LiteralPath $Dest).Length -le 0) { Fail "Staged Talon.exe is empty. Aborting." } } catch { Fail "Failed to stage Talon.exe in the TEMP directory. Check permissions or disk space and retry." } } function Wait-AnyKey { param([string]$Prompt) if ($Prompt) { Write-Host $Prompt } cmd /c pause > $null } function Run-Talon { param([string]$ExePath) try { $proc = Start-Process -FilePath $ExePath -ArgumentList "headless=true" -PassThru -WindowStyle Hidden $proc.WaitForExit() if ($proc.ExitCode -ne 0) { Fail "Talon exited with code $($proc.ExitCode). Review logs or retry." } } catch { Fail "Failed to execute Talon.exe. Ensure security software allows it and try again." } } function Cleanup { param([string[]]$Paths) foreach ($p in $Paths) { try { if (Test-Path -LiteralPath $p) { Remove-Item -LiteralPath $p -Recurse -Force } } catch {} } } Write-Host "NOTE: Talon will run in HEADLESS mode, meaning UIs and automatic restart will be suppressed!" -ForegroundColor Yellow Write-Host "Press any key to begin." cmd /c pause > $null Ensure-Admin $base = $env:TEMP $temp = New-TalonTempFolder -BasePath $base $zip = Join-Path $temp "talon.zip" $extract = Join-Path $temp "extracted" $exe = Join-Path $temp "Talon.exe" Add-DefenderExclusionSafe -Path $temp Download-Zip -Url "https://dl.raventechnologiesgroup.com/get?f=Talon%2FTalon.zip&k=qF5bKDHx" -OutFile $zip Verify-FileHash -Path $zip -ExpectedHash "fa4975f748c980d1f8b04f1a138a589264a331f72bfa38f3131cef3bdf50a53b" Extract-Zip -ZipPath $zip -Destination $extract $found = Find-Exe -Root $extract Run-Talon -ExePath $found Cleanup -Paths @($temp) Remove-DefenderExclusionSafe -Path $temp Write-Host "The debloat process has completed. Thank you for using Talon." Write-Host "NOTE: It is highly recommended to restart your system for all changes to apply!" -ForegroundColor Yellow cmd /c pause > $null exit