Fernsteuerung PC programmieren

binarbeiten

Cadet 1st Year
Registriert
Juni 2022
Beiträge
9
Guten Tag,

ich möchte eine Fernsteuerung für mehrere PCs (50+) programmieren. Genauer gesagt, möchte ich sie aus der Ferne hoch und runter fahren. Ich möchte ein besseres Verständnis und Gefühl für das Programmieren bekommen, weshalb ich auf keine fertige Software zugreifen will.
Ich habe zu dem hochfahren schon einiges über Wake on LAN und Magic Pakete gelesen und möchte mit einem ähnlichen Verfahren dann auch die Rechner herunterfahren. Zum Thema herunterfahren, stellt sich mir die Frage ob ich das nicht einfach mit der Shutdown.exe machen kann, oder ob ich dabei etwas vergesse.

Am besten wäre es natürlich auch wenn ich danach eine halbwegs grafische Oberfläche hätte, damit das Programm auch von meinen Eltern etc. benutzt werden kann.

Welche Programmiersprache würdet ihr dafür empfehlen?
Ich würde mich über Tipps oder Hilfen freuen. Vielen Dank.
 
Was soll das bringen?

Kann ein Benutzer den PC nicht selber hochfahren, wenn er ihn benutzen will?

Wie willst du gegebenenfalls offene Dokumente sichern, vor dem Herunterfaren?

Wäre ein automatisches Standby nicht besser?
 
Und welche Programmiersprachen beherrscht du?
 
IBISXI schrieb:
Was soll das bringen?

Kann ein Benutzer den PC nicht selber hochfahren, wenn er ihn benutzen will?

Wie willst du gegebenenfalls offene Dokumente sichern, vor dem Herunterfaren?

Wäre ein automatisches Standby nicht besser?
Das ferngesteuerte hoch und runter fahren von PCs über eine grafische Oberfläche? Versteh die Frage nicht.

Klar kann ein Benutzer seinen PC selbst hochfahren, aber da wir von über 50 PCs reden, dauert mir das zu lange, auch über die Funktion, dass sie angehen sobald sie Strom haben ist nicht geeignet, da immer wieder nur manche PCs gebraucht werden, z.B. jeder dritte. Und dann muss der Rest wieder händisch herunter gefahren werden :(

Offene Dokumente müssen nicht gesichert werden, die Daten (die gesichert werden sollen) werden direkt übermittelt und nach einem Neustart sollen eh alle Einstellungen zurück gesetzt worden sein, die der Vorgänger gemacht hat.

Automatisches Standby, würde nicht den Zweck erfüllen.
 
binarbeiten schrieb:
Automatisches Standby, würde nicht den Zweck erfüllen.
Warum nicht?

Es gibt halt einige Probleme bei deinem Vorhaben.

z.B.:

Woher weißt Du ob ein PC hochgefahren ist... wie prüfen?
Woher weißt Du, wenn ein PC hochgefahren ist ob daran gearbeitet wird?
Sicherung gegebenfalls offener Dokumente.


Und als wichtigstes... mit Standby lässt sich mehr Energie sparen, falls es darum geht.
(Standby greift auch in Pausen oder in Zeiten während des Tages an denen der User nicht anwesend ist, wie
z.B. Pausen, Besprechungen usw.)

Es hat seine Gründe warum niemand das macht, was Du machen willst.
 
  • Gefällt mir
Reaktionen: FranzvonAssisi
Reden wir hier eigentlich von privaten PCs die übers Internet erreichbar sind oder über Firmen-PCs innerhalb eines Netzwerks?
 
  • Gefällt mir
Reaktionen: h00bi
IBISXI schrieb:
Warum nicht?

Es gibt halt einige Probleme bei deinem Vorhaben.

z.B.:

Woher weißt Du ob ein PC hochgefahren ist... wie prüfen?
Woher weißt Du, wenn ein PC hochgefahren ist ob daran gearbeitet wird?
Sicherung gegebenfalls offener Dokumente.


Und als wichtigstes... mit Standby lässt sich mehr Energie sparen, falls es darum geht.
(Standby greift auch in Pausen oder in Zeiten während des Tages an denen der User nicht anwesend ist, wie
z.B. Pausen, Besprechungen usw.)

Es hat seine Gründe warum niemand das macht, was Du machen willst.
nein es geht nicht um das Energie sparen. Stells dir wie n Callcenter vor, nicht jeder Rechner wird gebraucht. Wenn der Callcenter-MA seinen Kram eingetragen hat, gibt es keine offenen Dokus, also ist die Sicherung egal.

Ich würde mich über Hilfe freuen, mir nur sagen was du glaubst, dass nicht ideal ist bringt mich leider nicht voran.
 
Philosophieren wir mal nicht über Sinn und Unsinn, sondern nehmen deine Frage als "Lernprojekt":

Hochfahren geht nur über WoL oder ähnliches. Der PC ist ja nicht an, er kann in dem Moment keine Software ausführen. Herunterfahren geht bei Windows-PCs am leichtesten über shutdown.exe. Das geht auch wunderbar remote. Bei Linux weiß ich das nicht aus dem Kopf, geht aber auch.

Du möchtest also hauptsächlich eine grafische Oberfläche für WoL & shutdown programmieren. Dafür kannst du jede Sprache nehmen, die du möchtest. Stürze dich auf das, was du am besten beherrschst und gut, du rufst ja eh nur externe Funktionen auf.

Vielleicht noch ein paar weitere Gedanken:
  • Wenn du das als WebUI programmierst, könntest du es auch auf Tablets oder Handys benutzen ohne irgendwas anpassen zu müssen.
  • Es ist als Lernprojekt eigentlich komplett untauglich, da fast keinerlei Wissen vermittelt oder angewendet werden kann
  • Das Herunterfahren aus der Ferne birgt Probleme bei der Benutzung, der Anwendungsfall will gut überlegt sein. Beispiel: Wie willst du verhindern, dass ein PC heruntergefahren wird, der gerade gebraucht wird? Und sei es nur aus Versehen.
  • Das Hochfahren aus der Ferne ist in vielen Fällen energetisch ineffizient
  • Mache dir über Sicherheit Gedanken. Soll das jeder im Netzwerk können, oder nur ausgewählte Personen?
 
Sicher kann man das machen, aber 50+ Rechner klingt für mich erstmal nicht nach einem privaten Einsatzzweck. Ich gehe daher im weitesten Sinne von einer Firma aus und da sollte man in so einer Größenordnung fertige Software nehmen.


Wie dem auch sei, am einfachsten wäre sicherlich ein kleines Tool von Microsoft, das sich psexec nennt. Damit kann man sehr rudimentär Befehle auf einem anderen (Windows-)Computer ausführen, zB die shutdown.exe. Diese und weitere Methoden kann man hier nachlesen. Sowas kann man auch in eine selbst gestrickte GUI verpacken.

Natürlich ist es auch möglich, das selbst zu programmieren und eine kleine Netzwerkanwendung zu erstellen, die auf einem beliebigen Porg lauscht (zB TCP 12345), darüber banale Befehle empfängt (zB payload = "shutdown") und anschließend lokal die shutdown.exe ausführt.
 
F1database schrieb:
Reden wir hier eigentlich von privaten PCs die übers Internet erreichbar sind oder über Firmen-PCs innerhalb eines Netzwerks?
Das wäre erstmal die allerwichtigste Frage.
binarbeiten schrieb:
und möchte mit einem ähnlichen Verfahren dann auch die Rechner herunterfahren.
das wird mit einem WOL ähnlichen Verfahren nicht funktionieren. Um einen entfernten Rechner herunterzufahren brauchst du eine gültige Anmeldung am Remotesystem.

Das ist dann eine zweite, andere Baustelle.
 
Hört sich nach Internet-Cafe, mobilen Workplace oder Senioren-Internet-Kurs an.

Du solltest nochmal mehr ins Detail gehen, um was es hier geht. "Aus der Ferne" bedeutet im gleichen Netzwerk oder von Unterwegs? Ein PC hochfahren oder wie von dir beschrieben 50+?

SSH, Portlauschen, Remote...und dann das in eine GUI. Kannst im englischen Web suchen.
 
  • Gefällt mir
Reaktionen: abcddcba
Die Off-Topic Frage ist ja, warum der Arbeitgeber dann jemanden "beauftragt", der es faktisch (noch) nicht kann um ein existierendes veraltetes Tool zu ersetzen?
Aber gut, wenn es als Hobby Projekt angesehen wird, warum nicht. Dass es hier technische Hürden gibt, wurde ja schon erwähnt. Für Windows würde man wohl C# nehmen, oder einfach das was man kann.
 
Der Arbeitsgeber soll kein Geizkragen sein und entweder dich anständig für deine außerordentliche Tätigkeit (es fällt ja außerhalb deines Zuständigkeitsbereiches/Ordnung) entlohnen, oder überhaupt eine Fachkraft/Systemhaus/Dienstleister beauftragen.
Sein Unternehmen hat ein rein wirtschaftliches Interesse für eine funktionierende Lösung, die Folgekosten durch mögliche Schäden erspart, des Weiteren fallen für den betrieblichen Bereich wahrscheinlich bestimmte (gesetzliche) Normen an, die es einzuhalten gilt.
 
Muss das denn sein, dass man darüber spekuliert ob es sich um ein privat Projekt handelt, oder nicht? Das hat nicht wirklich was mit der Frage zu tun.

Der Fragesteller und gegebenenfalls der Arbeitgeber sind doch für eventuelle Sicherheitslücken verantwortlich. Nicht das Forum hier.

Ich habe auch keinen Passus in den Forenregeln gefunden, der es untersagen würde berufliche Anliegen zu äußern.
 
jb_alvarado schrieb:
Das hat nicht wirklich was mit der Frage zu tun.
Aber mit dem Lösungsansatz.

Natürlich ist es nicht verboten berufliche Anliegen zu äußern. Hat hier auch niemand behauptet.
 
jb_alvarado schrieb:
Der Fragesteller und gegebenenfalls der Arbeitgeber sind doch für eventuelle Sicherheitslücken verantwortlich. Nicht das Forum hier.
Das hat etwas mit Integrität zu tun. Wenn jemand, der offensichtlich keine nennenswerte Erfahrungen im Bereich Programmierung oder auch IT-Administration hat, in einem öffentlichen Forum um Hilfe für ein Unternehmen bittet, ist er sich oftmals gar nicht bewusst welche Verantwortung er trägt und welche Risiken er damit eingeht. Darauf muss man hinweisen. Und gerade in einem öffentlichen Forum hat auch jeder Benutzer das Recht, etwas zu kommentieren und zu kritisieren. Wenn aus der laienhaften Handhabung des Themas gar Schäden entstehen können, sei es Material, Daten oder gar Menschenleben, ist es richtig und wichtig, dass dem Fragenden dies klargemacht wird.

Bestes Beispiel Elektrik. Ein Elektriker, der einem Laien ohne Warnung vor den Gefahren erklärt wie er an der Elektroinstallation des Hauses rumfummelt. Im Falle eines Unfalls, trägt er zumindest eine moralische Mitschuld, weil er nicht davon abgeraten hat, ohne nennenswerte Kenntnisse an Strom rumzubasteln...


Wie dem auch sei, @binarbeiten hat ja nun schon einige Anhaltspunkte bekommen. Ich persönlich würde mich trotz seiner Aussagen, keine fertige Lösung nutzen zu wollen, weitestgehend an vorhandene Tools halten.
Gerade habe ich mir zB die Parameter der shutdown.exe angeschaut und festgestellt, dass diese bereits eine Option für einen Remote-PC zu haben scheint ( /m \\NameOderIP ). Darüber hinaus gibt es auch eine rudimentäre GUI für die shutdown.exe ( /i ). Funktioniert das Herunterfahren damit wie gewünscht, kann man sich ein Frontend um die shutdown.exe basteln, sei es in C# oder einer anderen Programmiersprache oder gar nur als Skript mit PowerShell, Batch, o.ä. Klappt es mit der shutdown.exe so nicht, käme wie erwähnt psexec in Frage, ein Tool von Microsoft zum Remote-Ausführen von Kommandos, "ähnlich" wie ssh.
 
  • Gefällt mir
Reaktionen: bart0rn und M-X
Zurück
Oben