Dateien nach "/" hochladen
This commit is contained in:
commit
ef41090fb9
2 files changed
+63
No files matched your search
@@ -0,0 +1,11 @@
|
||||
# Aktion: Startet PowerShell versteckt und führt das Skript aus
|
||||
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-WindowStyle Hidden -ExecutionPolicy Bypass -File `"C:\scripts\rd-heartbeat.ps1`""
|
||||
|
||||
# Trigger: Einmalig jetzt starten und dann unendlich alle 1 Minute wiederholen
|
||||
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 1)
|
||||
|
||||
# Principal: Als SYSTEM-Konto mit höchsten Rechten ausführen (verhindert Popups)
|
||||
$principal = New-ScheduledTaskPrincipal -UserId "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest
|
||||
|
||||
# Task registrieren
|
||||
Register-ScheduledTask -TaskName "RustDesk Heartbeat" -Action $action -Trigger $trigger -Principal $principal -Description "Sendet minuetlich den RustDesk-Status an das Adressbuch-Dashboard"
|
||||
@@ -0,0 +1,52 @@
|
||||
# ==========================================
|
||||
# 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
|
||||
}
|
||||
Reference in new issue
Block a user