Windows remote herunterfahren lassen durch eine SPS
Hallo zusammen
Ich habe folgendes Problem zu lösen: Und zwar soll ein Touch-PC, auf welchem Windows 7 läuft, remote durch eine SPS gestartet sowie anschliessend wieder heruntergefahren werden. Das starten erfolgt mittels WOL und ist kein Problem. Für das Herunterfahren fand ich bis jetzt aber keine Lösung. Hätte jemand evtl. eine Idee? Oder gibt es evtl. ein Tool, welches ein Windows durch ein MagicPaket auch herunterfahren lässt?
Gruss
Ich habe folgendes Problem zu lösen: Und zwar soll ein Touch-PC, auf welchem Windows 7 läuft, remote durch eine SPS gestartet sowie anschliessend wieder heruntergefahren werden. Das starten erfolgt mittels WOL und ist kein Problem. Für das Herunterfahren fand ich bis jetzt aber keine Lösung. Hätte jemand evtl. eine Idee? Oder gibt es evtl. ein Tool, welches ein Windows durch ein MagicPaket auch herunterfahren lässt?
Gruss
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 288517
Url: https://administrator.de/contentid/288517
Ausgedruckt am: 22.11.2024 um 06:11 Uhr
18 Kommentare
Neuester Kommentar
Wenn es sich bei dem Touch-PC um einen richtigen PC in einem normalen Gehäuse handelt, wäre vielleicht solch eine Lösung interessant:
https://tools-and-more.com/Central/Produkte/Hardware/Watch-My-PC/
Diese müsste dann parallel zum Einschalter gekoppelt werden und Windows so eingestellt werden, dass beim Betätigen des Ein/Aus-Schalters Windows direkt herunterfährt. Wäre zu machen denke ich.
Und da der Watchdog ein Taktsignal des Rechners überwacht, muss Deine SPS in die Leitung eingeschleift werden und einfach nur den Kreis öffnen.
Ziemlich viel MacGyverismus, aber vielleicht hilfts als Anregung.
https://tools-and-more.com/Central/Produkte/Hardware/Watch-My-PC/
Diese müsste dann parallel zum Einschalter gekoppelt werden und Windows so eingestellt werden, dass beim Betätigen des Ein/Aus-Schalters Windows direkt herunterfährt. Wäre zu machen denke ich.
Und da der Watchdog ein Taktsignal des Rechners überwacht, muss Deine SPS in die Leitung eingeschleift werden und einfach nur den Kreis öffnen.
Ziemlich viel MacGyverismus, aber vielleicht hilfts als Anregung.
Normalerweise ist es nicht möglich (nach meiner Erfahrung), einen Rechner über Netzwerk davon zu überzeugen, runter zu fahren.
Dazu muss auf dem Rechner die passende berechtigte Software laufen und der Gegenspieler diese meist durch Authentifizierung korrekt ansprechen.
WOL zum Aufwecken ist klar. Aber ein Magic Paket zum Shutdown gibt's so nicht.
Dazu muss auf dem Rechner die passende berechtigte Software laufen und der Gegenspieler diese meist durch Authentifizierung korrekt ansprechen.
WOL zum Aufwecken ist klar. Aber ein Magic Paket zum Shutdown gibt's so nicht.
Schau mal:
http://www.neets.dk/support/FAQ/How-to-program-neets-control-systems/Tu ...
Das dürfte es sein.
Diese Software scheint nämlich Magic Packets auch zum Shutdown interpretieren zu können.
http://www.neets.dk/support/FAQ/How-to-program-neets-control-systems/Tu ...
Das dürfte es sein.
Diese Software scheint nämlich Magic Packets auch zum Shutdown interpretieren zu können.
Hallo,
Darf ich mal grob raten?
Der Touch PC ist Bestandteil einer Industrieanlage und dient zur HMI?
Wenn die Anlage ausgeschaltet wird ist irgendwann der Strom weg, der PC fährt nicht sauber runter?
Deshalb gibt es ne Meldung beim Starten?
Für so ein Problem ist die Gängige Praxis eine kleine USV im Schaltschrank über die dann der PC vernünftig runter fährt.
Darf ich mal grob raten?
Der Touch PC ist Bestandteil einer Industrieanlage und dient zur HMI?
Wenn die Anlage ausgeschaltet wird ist irgendwann der Strom weg, der PC fährt nicht sauber runter?
Deshalb gibt es ne Meldung beim Starten?
Für so ein Problem ist die Gängige Praxis eine kleine USV im Schaltschrank über die dann der PC vernünftig runter fährt.
Moin.
Ein kleines selbstprogrammiertes Programm (c#/Powershell/ etc.) das mit einem TCP-Listener auf einem TCP-Port des Windows7 lauscht und bei dem entsprechenden Paket durch die SPS den Shutdown auslöst ist schnell geschrieben.
Gruß grexit
Ein kleines selbstprogrammiertes Programm (c#/Powershell/ etc.) das mit einem TCP-Listener auf einem TCP-Port des Windows7 lauscht und bei dem entsprechenden Paket durch die SPS den Shutdown auslöst ist schnell geschrieben.
Gruß grexit
Zitat von @STRUBartacus:
Klingt auch gut. Hättest du mir evtl. einen Codeschnippsel? Bin eher bash-versiert als Powershell.
Liefere ich später noch nach ...Klingt auch gut. Hättest du mir evtl. einen Codeschnippsel? Bin eher bash-versiert als Powershell.
Zitat von @122990:
Moin.
Ein kleines selbstprogrammiertes Programm (c#/Powershell/ etc.) das mit einem TCP-Listener auf einem TCP-Port des Windows7 lauscht und bei dem entsprechenden Paket durch die SPS den Shutdown auslöst ist schnell geschrieben.
Hallo zusammen,Moin.
Ein kleines selbstprogrammiertes Programm (c#/Powershell/ etc.) das mit einem TCP-Listener auf einem TCP-Port des Windows7 lauscht und bei dem entsprechenden Paket durch die SPS den Shutdown auslöst ist schnell geschrieben.
wenn ich übernehmen darf
Beispiel für ein Client-Server mit TCP-Sockets und Powershell
Server PS-Skript
$ip = '0.0.0.0'
$port = 9999
$server = New-Object System.Net.Sockets.TcpListener($ip,$port)
$server.Start()
while($true){
write-host "Waiting for Connection..."
[System.Net.Sockets.TcpClient]$client = $server.AcceptTcpClient()
write-host "$($client.Client.RemoteEndPoint) connected."
[byte[]]$buffer = (New-Object byte 256)
$stream = $client.GetStream()
while(($i = $stream.Read($buffer,0,$buffer.length)) -ne 0){
$data = [System.Text.Encoding]::ASCII.GetString($buffer,0,$i)
if ($data -eq 'SHUTDOWN SYSTEM'){
write-host "Remote-Shutdown trigger received, shutting down system!"
# cleanup
$client.Close();$server.Stop()
# shutdown system
shutdown /s /f /t 0
return
}
}
}
$client = New-Object System.Net.Sockets.TcpClient
$client.Connect("192.168.1.25",9999)
$stream = $client.GetStream()
$data = [System.Text.Encoding]::ASCII.GetBytes("SHUTDOWN SYSTEM")
$stream.Write($data,0,$data.length)
$client.Close()
Im Beispiel wird anhand eines bestimmten Strings welcher an das System gesendet wird entschieden ob das System heruntergefahren werden soll. Dass ganze ist jetzt natürlich nur ein ganz simples Beispiel ohne weitere Sicherheitsmaßnahmen etc. pp., aber das lässt sich ja nach Bedarf erweitern z.B. das nur bestimmte IPs das System herunterfahren dürfen oder man sich authentifizieren muss
Ob man das nun via Powershell oder PHP oder mit einer anderen Sprache macht ist eigentlich herzlich egal.
Via TCP einen String senden können heutzutage eigentlich fast alle Systeme.
Grüße Uwe
Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
@colinardo Wow, danke für die Übernahme
Und nicht die Firewall-Freigabe auf dem Windows 7 für den verwendeten Server-Port vergessen
Gruß grexit
Und nicht die Firewall-Freigabe auf dem Windows 7 für den verwendeten Server-Port vergessen
Gruß grexit
Leider erhalte ich folgende Fehlermeldung beim ausführen:
hmm wahrscheinlich hat dein User nicht genügend Rechte zum öffnen von Ports, geht hier problemlos ...Gruß grexit