Wecken per Teamviewer, wenn auto_etherwake TCP-only ist

FlyingToaster

Aktives Mitglied
Mitglied seit
31 Aug 2022
Beiträge
1,083
Punkte für Reaktionen
252
Punkte
83
Meine 5590 reagiert aktuell bei auto_etherwake anders als meine 7590 nicht mehr auf UDP-Pakete vom Teamviewer.
Als notorisch fauler Sack will ich aber weiterhin den Teamviewer auch zum Wecken benutzen und haben mal unter Nutzung eines laufenden Servers "UDP" und einer guten Quelle etwas PowerShell zusammengepappt.

Aus dem UDP-Paket vom Teamviewer mache ich eine TCP-Verbindungsanforderung für meinen Server "TCP" hinter meiner 5590.
Neben den beiden Freigaben muss man nur im Teamviewer(Host) des zu weckenden Servers "TCP" DDNS und Port vom Server "UDP" einstellen.
Noch ist da keinerlei Sicherheit eingebaut, so dass auch jederzeit zufällig geweckt werden kann.

Code:
Code:
# receive-udp
#
# Start a UDP-Listener on a given Ip:Port and wait für packets

param (
    [int]$udplistenport = 50000,
    [boolean]$debug = $false,
    [string]$computerName = "subdomain.meinddns.de",
    [int]$tcpwakeport = 50000
)

set-psdebug -strict
$error.clear()

try {
    Write-host "Receive-UDP:Start"
    $buffer  = [System.Byte[]]::new(20)
    $udpClient = New-Object system.Net.Sockets.Udpclient($udplistenport)
    $RemoteIpEndPoint = New-Object System.Net.IPEndPoint([system.net.IPAddress]::Parse("0.0.0.0")  , 0);
    Write-host "Receive-UDP:Wait für Data on Port: $udplistenport"
    while ($true) {
        $data= $udpclient.receive([ref]$RemoteIpEndPoint)  # wait für data arriving from any ip. Alternativ kann man eine Liste der erlaubten IPs angeben
        # Achtung: UDPClient puffert, d.h. wenn weiter Daten  kommen, werden diese gequeue
        if ($debug) {
            write-host "Received packet from IP " $RemoteIpEndPoint.address ":" $RemoteIpEndPoint.Port
            write-host "Content" ([string]::join("",([System.Text.Encoding]::ASCII.GetChars($buffer))))
        }
    
        # send structured Data to pipeline
        Test-NetConnection -computername $computerName -port $tcpwakeport
        New-Object PSObject -Property @{
            RemoteIP = $RemoteIpEndPoint.address
            RemotePort = $RemoteIpEndPoint.Port
            bytes = $buffer
#            text = ([string]::join("",([System.Text.Encoding]::ASCII.GetChars($buffer))))
            timestamp = (get-date -Format "yyyy/MM/dd HH:mm:ss.fff")
    
        }
    }
}
catch {
    write-host "Receive-UDP:Error occured $error"
}

finally {
    write-host "Receive-UDP:Closing"
    $udpclient.close()
    Write-host "Receive-UDP:End"
}

Update: Obsolet, auto_etherwake ist bei der 5590 repariert worden.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.