# RedFlag Agent Installer - Windows PowerShell # Generated for agent: {{.AgentID}} # Platform: {{.Platform}} # Version: {{.Version}} param( [Parameter(Mandatory=$false)] [switch]$SkipServiceInstall = $false ) $AgentID = "{{.AgentID}}" $BinaryURL = "{{.BinaryURL}}" $ConfigURL = "{{.ConfigURL}}" $InstallDir = "C:\Program Files\RedFlag" $ConfigDir = "C:\ProgramData\RedFlag" $ServiceName = "RedFlagAgent" $Version = "{{.Version}}" Write-Host "=== RedFlag Agent v$Version Installation ===" -ForegroundColor Cyan Write-Host "Agent ID: $AgentID" Write-Host "Platform: {{.Platform}}" Write-Host "Installing to: $InstallDir\redflag-agent.exe" Write-Host # Step 1: Create directories Write-Host "Creating directories..." -ForegroundColor Yellow New-Item -ItemType Directory -Force -Path $InstallDir | Out-Null New-Item -ItemType Directory -Force -Path $ConfigDir | Out-Null New-Item -ItemType Directory -Force -Path "$ConfigDir\state" | Out-Null New-Item -ItemType Directory -Force -Path "$ConfigDir\logs" | Out-Null # Step 2: Download agent binary Write-Host "Downloading agent binary..." -ForegroundColor Yellow $BinaryPath = Join-Path $InstallDir "redflag-agent.exe" Invoke-WebRequest -Uri $BinaryURL -OutFile $BinaryPath -UseBasicParsing # Step 3: Download configuration Write-Host "Downloading configuration..." -ForegroundColor Yellow $ConfigPath = Join-Path $ConfigDir "config.json" Invoke-WebRequest -Uri $ConfigURL -OutFile $ConfigPath -UseBasicParsing # Step 4: Set permissions Write-Host "Setting file permissions..." -ForegroundColor Yellow icacls $ConfigPath /inheritance:r /grant:r "SYSTEM:(OI)(CI)F" /grant:r "Administrators:(OI)(CI)F" | Out-Null # Step 5: Install Windows service (if not skipped) if (-not $SkipServiceInstall) { Write-Host "Creating Windows service..." -ForegroundColor Yellow # Register service with appropriate credentials if ([System.Environment]::OSVersion.Version.Major -ge 10) { # Windows 10/Server 2016+ - can use LocalService New-Service -Name $ServiceName -BinaryPathName $BinaryPath -DisplayName "RedFlag Security Agent" -Description "RedFlag Security Monitoring Agent" -StartupType Automatic | Out-Null } else { # Older Windows - use LocalSystem New-Service -Name $ServiceName -BinaryPathName $BinaryPath -DisplayName "RedFlag Security Agent" -Description "RedFlag Security Monitoring Agent" -StartupType Automatic | Out-Null } Write-Host "Starting service..." -ForegroundColor Yellow Start-Service -Name $ServiceName } Write-Host Write-Host "✓ Installation complete!" -ForegroundColor Green Write-Host "Agent is running. Check status with: Get-Service $ServiceName" Write-Host "View logs with: Get-Content $ConfigDir\logs\agent.log -Tail 100 -Wait"