45 lines
2.1 KiB
PowerShell
45 lines
2.1 KiB
PowerShell
# IT Nexus Agent - Installer
|
|
# Cereda Systems GmbH
|
|
|
|
$InstallDir = "$env:ProgramData\IT Nexus Agent"
|
|
$AgentKey = "cereda-agent-2024-secure-key"
|
|
$ServerUrl = "https://it-nexus.cereda-systems.de"
|
|
$TaskName = "IT Nexus Agent"
|
|
|
|
Write-Host "=== IT Nexus Agent Installation ===" -ForegroundColor Cyan
|
|
|
|
# Verzeichnis erstellen
|
|
if (-not (Test-Path $InstallDir)) {
|
|
New-Item -ItemType Directory -Path $InstallDir -Force | Out-Null
|
|
}
|
|
|
|
# Dateien kopieren
|
|
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
Copy-Item "$ScriptDir\it-nexus-agent.ps1" "$InstallDir\it-nexus-agent.ps1" -Force
|
|
|
|
# Config schreiben
|
|
$config = @{ server_url = $ServerUrl; agent_key = $AgentKey } | ConvertTo-Json
|
|
Set-Content -Path "$InstallDir\config.json" -Value $config -Force
|
|
|
|
# Alten Task entfernen falls vorhanden
|
|
Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false -ErrorAction SilentlyContinue
|
|
|
|
# Scheduled Task erstellen (laeuft alle 5 Minuten als SYSTEM)
|
|
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-ExecutionPolicy Bypass -NonInteractive -WindowStyle Hidden -File `"$InstallDir\it-nexus-agent.ps1`""
|
|
$trigger = New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Minutes 5) -Once -At (Get-Date)
|
|
$settings = New-ScheduledTaskSettingsSet -ExecutionTimeLimit (New-TimeSpan -Minutes 2) -MultipleInstances IgnoreNew -StartWhenAvailable
|
|
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest -ErrorAction SilentlyContinue
|
|
if (-not $principal) {
|
|
$principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -RunLevel Highest
|
|
}
|
|
|
|
Register-ScheduledTask -TaskName $TaskName -Action $action -Trigger $trigger -Settings $settings -Principal $principal -Force | Out-Null
|
|
|
|
Write-Host "Installiert in: $InstallDir" -ForegroundColor Green
|
|
Write-Host "Scheduled Task '$TaskName' erstellt (alle 5 Min)" -ForegroundColor Green
|
|
Write-Host "Server: $ServerUrl" -ForegroundColor Green
|
|
Write-Host ""
|
|
Write-Host "Erster Checkin wird jetzt ausgefuehrt..." -ForegroundColor Yellow
|
|
Start-ScheduledTask -TaskName $TaskName
|
|
Write-Host "Fertig!" -ForegroundColor Green
|