WakeOnLan Stapelverarbeitend
Wollt ihr morgens Rechner Starten lassen bevor die Mitarbeiter anwesend sind habe ich hier ein kleines vb-script was euch helfen kann.
Speichert das vb-script mit ".vbs" und ruft es mit cscript name.vbs auf...
aufruf des scripts ohne optionen gibt euch die syntax
aufbau der werte datei:
IP;MAC;Hostname
Hoffe das ist was für euch
Gruß Michael
Speichert das vb-script mit ".vbs" und ruft es mit cscript name.vbs auf...
aufruf des scripts ohne optionen gibt euch die syntax
'
' Soll automatisch Computer zu einer bestimmten zeit Starten
' Oder Herunterfahren
' (c) M. Neumann
' 16.06.2009
' rw.exe http://www.sysworksoft.net/products/rw.html
Option Explicit
Dim wol_ipadressenDatei, ipadressen
Dim wait, iArgument, FSO, sCommand, sModus, iLfdNr
Dim oArgumente, WshShell
Dim sDatei, sWait, COPYLOGO, copyRight, sLaenge, sZeichen, vVariable, zZeichen
Const ForReading = 1
Set oArgumente = WScript.Arguments
Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
copyRight = COPYLOGO & " 16.06.2009, M. Neumann"
'wait = 5
iArgument = 0
COPYLOGO = Chr(169) ' entspricht dem Zeichen (c)
sZeichen = "="
iLfdNr = 0
Function zHeader(vVariable, zZeichen)
sLaenge = Len(vVariable)
wscript.Echo(String(sLaenge, zZeichen))
WScript.Echo(vVariable)
wscript.Echo(String(sLaenge, zZeichen))
End Function
If oArgumente.Count > 0 Then
Do
If UCase(oArgumente(iArgument)) = "-D" Or _
UCase(oArgumente(iArgument)) = "/D" Or _
UCase(oArgumente(iArgument)) = "-Datei" Then
'---- Dateiargument
iArgument = iArgument + 1
sDatei = oArgumente(iArgument)
Set wol_ipadressenDatei = fso.OpenTextFile(sDatei,ForReading)
ElseIf UCase(oArgumente(iArgument)) = "-W" Or _
UCase(oArgumente(iArgument)) = "/W" Or _
UCase(oArgumente(iArgument)) = "-Wait" Then
'---- Zeitargument
iArgument = iArgument + 1
sWait = oArgumente(iArgument)
sWait = sWait * 1000
ElseIf UCase(oArgumente(iArgument)) = "-M" Or _
UCase(oArgumente(iArgument)) = "/M" Or _
UCase(oArgumente(iArgument)) = "-Modus" Then
'---- Betriebsart (sCommand / Stop)
iArgument = iArgument + 1
sModus = oArgumente(iArgument)
End If
iArgument = iArgument +1
Loop Until iArgument >= oArgumente.Count
End If
If sDatei = "" Or sWait = "" Or sModus = "" Then
' Es wurde kein Argument übergeben
zHeader copyRight,sZeichen
WScript.Echo("Es wurde kein oder falsche Parameter übergeben.")
WScript.Echo(vbTab + "-d dateiname oder -datei dateiname: " & sDatei)
WScript.Echo(vbTab + "-w zeit(in sekunden) oder -wait zeit(in sekunden): " & sWait)
WScript.Echo(vbTab + "-m Betriebsart Start (START) oder Heruntrfahren (STOP) " & vbCrLf & vbTab &" von Computer: " & sModus)
Else
If sDatei <> "" And sWait <> "" And sModus <> "" Then
Do While wol_ipadressenDatei.AtEndOfStream <> True
iLfdNr = iLfdNr +1
ipadressen = Split(wol_ipadressenDatei.ReadLine, ";")
WScript.Echo("LfdNr.: " & iLfdNr & ", IP: " & ipadressen(0) & ", mac: " & ipadressen(1) & ", Hostname: " & ipadressen(2))
If sModus = "start" Then
sCommand = "cmd\rw.exe /m:" & ipadressen(1)
WshShell.Run(sCommand)
WScript.Echo(sCommand)
WScript.Sleep sWait
ElseIf sModus = "stop" Then
sCommand = "shutdown -s -f -t " & sWait & " -m \\" & ipadressen(0)
WshShell.Run(sCommand)
WScript.Echo(sCommand)
End If
Loop
End If
End If
IP;MAC;Hostname
192.168.01.109;0012345C0CF1;ab-1
192.168.01.114;00567899015;ab-1
192.168.01.115;0012341e;ab-3
192.168.01.116;00199901d20b;ab-4
192.168.01.114;00567899015;ab-1
192.168.01.115;0012341e;ab-3
192.168.01.116;00199901d20b;ab-4
Hoffe das ist was für euch
Gruß Michael
Please also mark the comments that contributed to the solution of the article
Content-ID: 132173
Url: https://administrator.de/contentid/132173
Printed on: December 14, 2024 at 00:12 o'clock
4 Comments
Latest comment
Die ct hatte das auch in ihrer Ausgabe Heft 25 / 2009 , Seite 186
http://www.heise.de/ct/09/25/links/186.shtml
http://www.heise.de/ct/09/25/links/186.shtml
Mhm nicht schlecht kann man den auch den hostnamen in deinem script verwenden ?
Das Problem bei der IP = Ich habe DHCP im Einsatz, alle 8 Tage neue zuordnung ;0(
Kann es sein das die Rechner nicht herunterfahren ? wenn das script auf einem W2008R2 Server ausgeführt wird ?
Auch das Shutdown über die normale CMD am Server lässt den Client (XP) nicht herunterfahren.
Das Problem bei der IP = Ich habe DHCP im Einsatz, alle 8 Tage neue zuordnung ;0(
Kann es sein das die Rechner nicht herunterfahren ? wenn das script auf einem W2008R2 Server ausgeführt wird ?
Auch das Shutdown über die normale CMD am Server lässt den Client (XP) nicht herunterfahren.