Neue Version eingestellt.
Eine kurze Erläuterung befindet sich im ersten Beitrag.
Ein manuelles Aktualisieren kann durchgeführt werden, indem am Ende des Scripts folgendes ergänzt wird:
Code: Alles auswählen
if CheckMP=1 then
'Task zum Aufwachen anlegen, wenn noch nicht vorhanden
if not fso.fileexists("C:\WINDOWS\Tasks\MP_Aufnahmen.job") then
intReturn = WshShell.Run("SCHTASKS /Create /ru "&lcase(net.computerName)&"\"&PLUser&" /RP "&chr(34)&PLPW&chr(34)&" /SC täglich /TN MP_Aufnahmen /TR C:\WINDOWS\system32\tasklist.exe /ST 00:00:00" , 1, true)
msgbox "Der Task wurde neu angelegt. Bitte setzte bei dem automatischen Task 'MP_Aufnahmen' händisch die Option 'Computer zum Ausführen des Tasks reaktivieren'.",0,"Achtung"
end if
'Datenbankabfrage
on error resume next 'Bei Fehler Script fortsetzen
db1.Open("Driver={SQL Server};SERVER="&SQLServer&";Database="&DWH&";User ID="&SQLUser&";Password="&SQLPW)
CheckFehler
set rs1=db1.execute("SELECT min(Starttime) as start from " & _
"( select dateadd(mi,(preRecordInterval+"&Zeitdiff&")*-1,Starttime) as starttime, dateadd(mi,PostRecordInterval+"&Zeitdiff&",Endtime) as endtime " & _
" from schedule " & _
" where scheduleType=0 " & _
" union " & _
" select dateadd(mi,datepart(mi,starttime)-(preRecordInterval) -"&Zeitdiff&" ,dateadd(hh,datepart(hh,starttime),heute)) as startime, " & _
" dateadd(mi,datepart(mi,endtime)+(PostRecordInterval)+"&Zeitdiff&" ,dateadd(hh,datepart(hh,endtime),heute)) as endtime " & _
" from schedule " & _
" inner join (SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) as heute,DATEADD(dd, -1, DATEDIFF(dd, 0, GETDATE())) as gestern, DATEADD(dd, +1, DATEDIFF(dd, 0, GETDATE())) as morgen ) as UA " & _
" on 1=1 " & _
" where scheduleType in(1,3,4) or (scheduleType=2 and datepart(dw,heute)=datepart(dw,starttime)) or (scheduleType=6 and datepart(dw,heute) in (1,2,3,4,5)) or (scheduleType=5 and datepart(dw,heute) in (6,7)) " & _
" union " & _
" select dateadd(mi,datepart(mi,starttime)-(preRecordInterval) -"&Zeitdiff&" ,dateadd(hh,datepart(hh,starttime),morgen)) as startime, " & _
" dateadd(mi,datepart(mi,endtime)+(PostRecordInterval)+"&Zeitdiff&" ,dateadd(hh,datepart(hh,endtime),morgen)) as endtime " & _
" from schedule " & _
" inner join (SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) as heute,DATEADD(dd, -1, DATEDIFF(dd, 0, GETDATE())) as gestern, DATEADD(dd, +1, DATEDIFF(dd, 0, GETDATE())) as morgen ) as UA " & _
" on 1=1 " & _
" where scheduleType in(1,3,4) or (scheduleType=2 and datepart(dw,morgen)=datepart(dw,starttime)) or (scheduleType=6 and datepart(dw,morgen) in (1,2,3,4,5)) or (scheduleType=5 and datepart(dw,morgen) in (6,7)) " & _
" union " & _
" select dateadd(mi,datepart(mi,starttime)-(preRecordInterval) -"&Zeitdiff&" ,dateadd(hh,datepart(hh,starttime),gestern)) as startime, " & _
" dateadd(mi,datepart(mi,endtime)+(PostRecordInterval)+"&Zeitdiff&" ,dateadd(hh,datepart(hh,endtime),gestern)) as endtime " & _
" from schedule " & _
" inner join (SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) as heute,DATEADD(dd, -1, DATEDIFF(dd, 0, GETDATE())) as gestern, DATEADD(dd, +1, DATEDIFF(dd, 0, GETDATE())) as morgen ) as UA " & _
" on 1=1 " & _
" where scheduleType in(1,3,4) or (scheduleType=2 and datepart(dw,gestern)=datepart(dw,starttime)) or (scheduleType=6 and datepart(dw,gestern) in (1,2,3,4,5)) or (scheduleType=5 and datepart(dw,gestern) in (6,7)) " & _
") as ua " & _
"where endTime>current_timestamp")
if err.number=0 then
'Nur wenn kein Fehler aufgetreten ist, normales vorgehen
if isdate(rs1("Start")) then 'Wenn Aufnahmen programmiert sind oder aktuelle eine läuft...
if rs1("Start")<now() then
'Es läuft gerade eine Aufnahme
aktiv=aktiv+1
if "A"&WshShell.RegRead("HKCU\SOFTWARE\AxoNet Software GmbH\LightsOut\MP_Aufnahme")<>"A"&"01.01.2020" then
Logdatei "Set Taskplaner: 01.01.2020"
intReturn = WshShell.Run("SCHTASKS /change /ru "&lcase(net.computerName)&"\"&PLUser&" /RP "&chr(34)&PLPW&chr(34)&" /TN MP_Aufnahmen /ST 00:00 /SD 01/01/2020" , 1, true)
WshShell.RegWrite "HKCU\SOFTWARE\AxoNet Software GmbH\LightsOut\MP_Aufnahme","01.01.2020","REG_EXPAND_SZ"
else
Logdatei "Taskplaner = 01.01.2020"
end if
else
'Es ist eine Aufnahme geplant, ggf Starttask anlegen
'wenn Task nicht schon angelegt wurde, anlegen
if "A"&WshShell.RegRead("HKCU\SOFTWARE\AxoNet Software GmbH\LightsOut\MP_Aufnahme")<>"A"&rs1("Start") then
Logdatei "Set Taskplaner: "&rs1("Start")
intReturn = WshShell.Run("SCHTASKS /change /ru "&lcase(net.computerName)&"\"&PLUser&" /RP "&chr(34)&PLPW&chr(34)&" /TN MP_Aufnahmen /ST "&right(rs1("Start"),8)&" /SD "&replace(left(rs1("Start"),10),".","/") , 1, true)
WshShell.RegWrite "HKCU\SOFTWARE\AxoNet Software GmbH\LightsOut\MP_Aufnahme",rs1("Start"),"REG_EXPAND_SZ"
else
Logdatei "Taskplaner = "&rs1("Start")
end if
end if
end if
else ' Fehlermeldung loggen, kein Standby
CheckFehler
aktiv=aktiv+1
end if
db1.close
'Fehlerprüfung wieder aktivieren
on error goto 0
end if
die neue Version wird dein Anmeldeproblem an sich nicht lösen. Das Script läuft allerdings weiter.
Wenn die Anmeldeprobleme nur zeitweise bestehen, dann sollte es damit funktionieren.