Hallo zusammen.
Ich arbeite als Administrator in einem Unternehmen mit ca. 300 Rechnern.
Zu meiner Aufgabe gehört leider auch die Beaufsichtigung eines Computerraumes für Schüler, die dort arbeiten können.
Dort muss ich jeden Morgen rumlaufen und alle Rechner anschalten. Abends das gleiche Spiel - nur diesmal alle ausschalten.
Ich bin alos im Moment dabei ein kleines Tool zu schreiben, mit dem ich die Rechner per Buttondruck ein und ausschalten kann. Da die Rechner alle an einer Domäne angemeldet sind und ich die Adminrechte für die Domäne habe, habe ich ja das Recht die Rechner peer Lan Hernterzufahren. Das funktioniert mit bereits vorhandenen Programmen aus dem Netz auch wuderbar.
Nur kann man dor immer nur einen Rechner herunterfahren und außerdem auch keine Rechner hochfahren.
Zum Hochfahren: ich kenn alle MAC Adressen der Rechner und habe auch auf allen die WOL Funktion im BIOS aktiviert.
Mir fehlen jetz nur noch die Funktionen für das eigentliche Ausschalten und das WOL.
Beim WOL habe ich eine Prozedur gefunden, die den Indy UDPClient benutzt. Die funktioniert aber nicht.
Wäre nett, wenn mir einer von Euch die Befehle für die beiden benötigten Funktionen nennen könnte. Habe echt schon lange gesucht, aber nirgends etwas brauchbares gefunden.
Vielen Dank schon einmal und Gruß
Jan
Edit: Hier die WOL Prozedur
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure wakeonlan (mac: string); var data, temp: string; i: integer; begin mac := StringReplace(mac, ':', '', [rfReplaceAll]); temp := '';
for i := 0 to 5 do temp := temp + Chr(StrToInt('$' + Copy(mac, i * 2 + 1, 2))); for i := 0 to 3 do temp := temp + temp; data := #255#255#255#255#255#255 + temp;
Form1.UDPClient.Send('255.255.255.255', 80, data); end; |
Beim Aufruf bekomme ich folgende Fehlermeldung: Socket Error #10013 Access denied.