52 lines
1.6 KiB
PowerShell
52 lines
1.6 KiB
PowerShell
# ==========================================
|
|
# RustDesk Heartbeat Script (via EXE)
|
|
# ==========================================
|
|
|
|
$DashboardUrl = "http://10.10.20.225:8082"
|
|
$RustDeskId = $null
|
|
|
|
$ExePaths = @(
|
|
"$env:ProgramFiles\RustDesk\rustdesk.exe",
|
|
"${env:ProgramFiles(x86)}\RustDesk\rustdesk.exe",
|
|
"C:\RustDesk\rustdesk.exe",
|
|
"C:\Program Files\RustDeskSupportModul\RustDeskSupportModul.exe"
|
|
)
|
|
|
|
$FoundExe = $null
|
|
|
|
# 1. rustdesk.exe suchen
|
|
foreach ($Path in $ExePaths) {
|
|
if (Test-Path $Path) {
|
|
$FoundExe = $Path
|
|
break
|
|
}
|
|
}
|
|
|
|
# 2. ID sicher abfragen
|
|
if ($FoundExe) {
|
|
Write-Host "RustDesk gefunden in: $FoundExe" -ForegroundColor Cyan
|
|
|
|
# Arbeitsverzeichnis in den RustDesk-Ordner wechseln
|
|
$WorkDir = Split-Path $FoundExe
|
|
Set-Location -Path $WorkDir
|
|
|
|
# ID abfragen und mit Out-String in Text zwingen (verhindert den NULL Fehler)
|
|
$rawId = & $FoundExe --get-id | Out-String
|
|
|
|
if (-not [string]::IsNullOrWhiteSpace($rawId)) {
|
|
$RustDeskId = $rawId.Trim()
|
|
}
|
|
}
|
|
|
|
# 3. Heartbeat senden
|
|
if ($RustDeskId) {
|
|
$HeartbeatUrl = "$DashboardUrl/api/heartbeat/$RustDeskId"
|
|
try {
|
|
Invoke-RestMethod -Uri $HeartbeatUrl -Method Get -UseBasicParsing -ErrorAction Stop
|
|
Write-Host "[OK] Heartbeat erfolgreich gesendet fuer ID: $RustDeskId" -ForegroundColor Green
|
|
} catch {
|
|
Write-Host "[FEHLER] Fehler beim Senden des Heartbeats an $HeartbeatUrl : $_" -ForegroundColor Red
|
|
}
|
|
} else {
|
|
Write-Host "[FEHLER] Konnte rustdesk.exe zwar finden, aber die ID wurde leer zurueckgegeben." -ForegroundColor Red
|
|
} |