simon-mcp
Goto Top

Batch-Script für Ein- und Ausschalten von Rechnern

Rechner über ein kleines Batch-Script morgens Ein- und Abends wieder Ausschalten.

Hallo zusammen,

ich habe aktuell die folgende Situation:
Ich würde gerne über ein Batch-Script ein paar Rechner per Wake On Lan morgens um eine bestimmte Uhrzeit einschalten und abends wieder ausschalten.
Das ganze sollte wenn möglich allein über die MAC-Adresse oder den Computernamen steuerbar sein. (IP ist nicht möglich da die auf DHCP steht)

Hierzu soll es später dann zwei Textdateien geben:
Startup.txt - Hier werden die Rechner eingetragen die morgens gestartet werden sollen!
Shutdown.txt - Hier werden die Rechner eingetragen die abends wieder ausgeschaltet werden sollen.


Meine Überlegungen:
Um die zeitliche Steuerung hinzubekommen habe ich mir überlegt das ganze auf einem Rechner als "geplanten Task" einzurichten...


Frage:
Hat jemand eine Idee wie solch ein Script aussehen könnte?
Im Prinzip braucht dieses Script nur eine mit MAC-Adressen gefüllte Textdatei auszulesen und dann die Rechner starten oder Herunterfahren...

Und welche Tools würdet Ihr mir für diesen Einsatzzweck empfehlen? Momentan verwende ich um Rechner über die MAC-Adresse einzuschalten das mc-wol.exe - Programm über das ich die Rechner allerdings nicht mehr herunterfahren kann...

Ich würde mich über eure Hilfe sehr freuen.


cu
Crus

Content-ID: 115539

Url: https://administrator.de/forum/batch-script-fuer-ein-und-ausschalten-von-rechnern-115539.html

Ausgedruckt am: 23.12.2024 um 05:12 Uhr

Wolfsburger
Wolfsburger 07.05.2009 um 17:53:38 Uhr
Goto Top
Habe zumindest einen alternativen Lösungsvorschlag für dich:

Die meisten Mainboards unterstützen eine Funktion im BIOS, dass sie sich selbst zu einer bestimmten Tageszeit anstellen. Herunterfahren könnte man dann über einen lokalen Task einrichten.
Basti2003
Basti2003 07.05.2009 um 18:01:38 Uhr
Goto Top
Runterfahren kannst Du ja mit dem Shutdown-Befehl (shutdown /? zur Info), welchen Du entsprechend in dein Batch-Script einbauen und mit den Rechnernamen füttern müsstest.
Simon-MCP
Simon-MCP 07.05.2009 um 19:17:18 Uhr
Goto Top
Zitat von @Wolfsburger:
Habe zumindest einen alternativen Lösungsvorschlag für
dich:

Die meisten Mainboards unterstützen eine Funktion im BIOS, dass
sie sich selbst zu einer bestimmten Tageszeit anstellen.
Herunterfahren könnte man dann über einen lokalen Task
einrichten.

Dieser Lösungsvorschlag kommt leider nicht näher in Betracht, da ich damit keine Steuermöglichkeit über eine Textdatei hätte... Und ausserdem würden so die Rechner auch am Wochenende gestartet werden was nicht geschehen soll!


Zitat von @Basti2003:
Runterfahren kannst Du ja mit dem Shutdown-Befehl (shutdown /? zur
Info), welchen Du entsprechend in dein Batch-Script einbauen und mit
den Rechnernamen füttern müsstest.

Der Shutdownbefehl funktioniert leider nur bei Windows XP Maschinen. Bei Windows 2000 Maschinen ohne Ressourcekit scheint diese Exe-Datei leider zu fehlen. Und auch wenn man die von WinXP auf die Win2000 Maschinen kopiert funktioniert es nicht zu 100% da dann bei einem Shutdown die Meldung kommt: Sie können den PC nun ausschalten!

Irgendwelche weiteren Ideen? Wie kann ich das mit dem Script bewerkstelligen?
Wie bekomme ich es mit einem Batch-Script hin eine Textdatei mit Mac-Adressen auszulesen und danach per WOL aufzuwecken?
Wolfsburger
Wolfsburger 07.05.2009 um 19:29:04 Uhr
Goto Top
Zitat von @Simon-MCP:
Der Shutdownbefehl funktioniert leider nur bei Windows XP Maschinen.
Bei Windows 2000 Maschinen ohne Ressourcekit scheint diese Exe-Datei
leider zu fehlen. Und auch wenn man die von WinXP auf die Win2000
Maschinen kopiert funktioniert es nicht zu 100% da dann bei einem
Shutdown die Meldung kommt: Sie können den PC nun ausschalten!


Unter Win2000 dürfte das gehen mit dem Befehl "Rundll32.exe User,ExitWindows". Ist nur lange her, dass ich sowas gemacht habe und habe jetzt kein Win2000 am laufen um es auszuprobieren. Das Abschaltbild ist eine Einstellungssache, hiefür muss das "Advanced Power Management" im Bios und Windows aktiviert sein. Funktioniert natürlich nur bei ATX Mainboards/Netzteilen, die alten AT Dinger haben nur einen mechanischen Schalter, da kannst du mit Software nichts erreichen.

Auch wenn ich mit den Scripten in die Richtung nicht auskenne, solltest du evtl. etwas mehr ausholen und genauer umschreiben warum du das machen willst, um welche Betriebssysteme es sich handelt usw. Könnte anderen evtl. helfen dir zu einer Lösung zu verhelfen.
Simon-MCP
Simon-MCP 07.05.2009 um 19:50:44 Uhr
Goto Top
Systeme: Windows 2000 und Windows XP

Kurz gesagt brauche ich eigentlich nur ein Script das folgendes ausführt:

Textdatei mit MAC-Adressen auslesen.

Format der Textdatei sollte z.B. so aussehen:
00:23:23:32:21:34
00:23:23:32:21:34
00:23:23:32:21:34
00:23:23:32:21:34
... usw...

Und diese dann z.B. mit der mc-wol.exe alle nach einander aufweckt.

mc-wol.exe "MAC"
(Gerne auch über eine andere Methode falls bessere bekannt)

Und mit einem zweiten Script möchte ich die ganzen Rechner dann wieder zu einem späteren Zeitpunkt herunterfahren... Auch mit einer Textdatei die so aussehen sollte wie die oben dargestellte...

Vorteil dieser Methode:
Sobald neue Rechner hinzukommen kann relativ einfach ein weitere Rechner in diese Textdatei mit aufgenommen werden...
hajowe
hajowe 08.05.2009 um 08:35:54 Uhr
Goto Top
Zitat von @Simon-MCP:

da dann bei einem
Shutdown die Meldung kommt: Sie können den PC nun ausschalten!


von der entfernten Maschine cmd
shutdown -s -m \\Zielcomputer -t xx -f
-s= Computer herunter fahren
-t = Zeitlimit falls nötig
-f = herunterfahren erzwingen

Du solltest dies mal ausprobieren.
60730
60730 08.05.2009 um 10:08:41 Uhr
Goto Top
Zitat von @Simon-MCP:
Systeme: Windows 2000 und Windows XP

##green|Kurz gesagt brauche ich eigentlich nur ein Script das
folgendes ausführt:
/snip
Servus,

"streng" genommen - brauchst du 3 Scripte face-wink

Eines, um die MacAdressen zu bekommen:
ipconfig /all | find "Physikalische Adresse" >C:\script\macadresse\mymac.tmp  

for /f "tokens=1,2 delims=:" %%i in (C:\script\macadresse\mymac.tmp) do (  
	find "%%j" C:\script\macadresse\allmac.ini && echo . || echo %computername%%%j>>C:\script\macadresse\allmac.ini  
)
if exist C:\script\macadresse\mymac.tmp del C:\script\macadresse\mymac.tmp
Dieses Script "sinnvoll" irgendwo reinscripten, wo es idealerweise mindestens und maximal einmal läuft, wenn der Rechner "neu" ist - bzw. es erstellt eh keine duplikate, braucht aber Zeit, daher nicht ins Loginscript zur täglichen ausführen mit reinpacken.
Ein weiteres, um die Rechner aufzuwecken:
for /f "tokens=1,2 delims=:" %%i in (C:\script\macadresse\allmac.ini) do (  
	wol.exe%%j
)
Und das letzte, um die Kisten wieder herunterzufahren:
for /f "tokens=1,2 delims=:" %%i in (C:\script\macadresse\allmac.ini) do (  
	shutdown.exe -s%%j
)

Die Pfade (den Pfad zu C:\script\macadresse) aber bitte anpassen face-wink

Gruß