Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[2008R2] Task Scheduler loopt niet

Pagina: 1
Acties:

  • St@m
  • Registratie: December 2001
  • Laatst online: 09:56

St@m

@ Your Service

Topicstarter
Mensen,

Ik ben al de hele dag aan het zoeken, heb verschillende fora van MS doorgelezen, maar ik kom er gewoon echt niet uit. Ook hier op het forum zijn een aantal topics over hetzelfde onderwerp, maar geen oplossing.

Ik heb een scriptje van het internet gehaald dat een bepaalde actie uitvoert.
Als ik het script handmatig draai werkt alles vlekkeloos. En krijg ik de gevraagde output.
Als ik het script in de tasksceduler zet werkt het in server 2003 vlekkeloos
Als ik het script in de tasksceduler zet als "Alleen uitvoeren als de gebruiker is aangemeld" werkt het in server 2008 vlekkeloos

Maar dat wil ik allemaal niet :P
Bedoeling is dat het script draait op zondagmorgen 07:00 uur. Grote kans dat ik dan niet ben ingelogd op de server, dus het is de bedoeling dat het script draait ongeacht of de gebruiker is aangemeld.

Daar is een hele mooie optie voor in de task scheduler, maar die werkt dus voor geen meter.
Ik heb het geprobeerd door een domain admin account in te stellen, de lokale admin account, een aparte account aangemaakt met admin rechten, maar niets werkt.
Rechten op de map en op het script staan goed. (Full control voor de administrators)

Ook de Action die uitgevoerd moet worden staat goed omschreven. Ik heb het geprobeerd door de volledige locatie van het pad door te geven:
Bijvoorbeeld "D:\Eventviewer controle\EventLogNotifier.bat"
Of met het Start in gedeelte ingevuld.. helaas niets lijkt het te doen.

Ik ben compleet de weg kwijt, hoe moeilijk kan zo iets simpels zijn...

Het bewuste scriptje (gedeelte, de rest is info over het script):

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
REM Set date/time values.
REM This assumes system date format is as follows: Mon 01/31/2010
FOR /F "tokens=2,3,4 delims=/ " %%A IN ("%DATE%") DO SET DateYYYYMMDD=%%C-%%A-%%B
FOR /F "tokens=1 delims=." %%A IN ("%TIME%") DO SET TimeHHMMSS=%%A

SET TempFile1="%TEMP%\Events.%RANDOM%.csv"
SET TempFile2="%TEMP%\Events_%computername%.csv"

MyEventViewer /scomma %TempFile1% /ShowOnlyLastEvents 1 /LastEventsUnit %TimeInterval% /LastEventsValue %TimeValue% /sort "Log Type"

REM Get events from selected logs (supports up to 10)
FOR /F "tokens=1,2,3,4,5,6,7,8,9,10 delims=," %%A IN ("%Logs%") DO (
    IF NOT {%%A}=={} TYPE %TempFile1% | FIND ",%%A," >> %TempFile2%
    IF NOT {%%B}=={} TYPE %TempFile1% | FIND ",%%B," >> %TempFile2%
    IF NOT {%%C}=={} TYPE %TempFile1% | FIND ",%%C," >> %TempFile2%
    IF NOT {%%D}=={} TYPE %TempFile1% | FIND ",%%D," >> %TempFile2%
    IF NOT {%%E}=={} TYPE %TempFile1% | FIND ",%%E," >> %TempFile2%
    IF NOT {%%F}=={} TYPE %TempFile1% | FIND ",%%F," >> %TempFile2%
    IF NOT {%%G}=={} TYPE %TempFile1% | FIND ",%%G," >> %TempFile2%
    IF NOT {%%H}=={} TYPE %TempFile1% | FIND ",%%H," >> %TempFile2%
    IF NOT {%%I}=={} TYPE %TempFile1% | FIND ",%%I," >> %TempFile2%
    IF NOT {%%J}=={} TYPE %TempFile1% | FIND ",%%J," >> %TempFile2%
)

MOVE /Y %TempFile2% %TempFile1%
REM Filter event types from the selected logs (supports up to 5)
FOR /F "tokens=1,2,3,4,5 delims=," %%A IN ("%Types%") DO (
    IF NOT {%%A}=={} TYPE %TempFile1% | FIND ",%%A," >> %TempFile2%
    IF NOT {%%B}=={} TYPE %TempFile1% | FIND ",%%B," >> %TempFile2%
    IF NOT {%%C}=={} TYPE %TempFile1% | FIND ",%%C," >> %TempFile2%
    IF NOT {%%D}=={} TYPE %TempFile1% | FIND ",%%D," >> %TempFile2%
    IF NOT {%%E}=={} TYPE %TempFile1% | FIND ",%%E," >> %TempFile2%
)

TYPE %TempFile2% | FIND /C "," > %TempFile1%
SET /P TotalEvents=< %TempFile1%

IF NOT %TotalEvents%==0 (
    REM Deliver the filtered results
    IF {%EmailResults%}=={1} Blat - -body "%TotalEvents% Eventviewer meldingen afgelopen week op server %computername%" -to %EmailTo% -subject "Server %computername% Eventviewer meldingen" -attacht %TempFile2%
    IF {%SaveResults%}=={1} MOVE /Y %TempFile2% "%SaveTo%"
)


REM Clean up
IF EXIST %TempFile1% DEL /F /Q %TempFile1%
IF EXIST %TempFile2% DEL /F /Q %TempFile2%

ENDLOCAL

vuurwerk - vlees eten - tuinkachel - bbq - alcohol - voetbalwedstrijden - buitenfestivals - houtkachels


  • jvc2001
  • Registratie: Mei 2009
  • Laatst online: 16-09 18:22
In de Windows Server 2008 task scheduler kan je kiezen om de task met Highest Privileges te runnen. Voor de rest kan je enkele tabbladen verder ook de history opvragen en kan je eventueel zien waar de task op faalt.

  • St@m
  • Registratie: December 2001
  • Laatst online: 09:56

St@m

@ Your Service

Topicstarter
jvc2001 schreef op vrijdag 17 februari 2012 @ 19:09:
In de Windows Server 2008 task scheduler kan je kiezen om de task met Highest Privileges te runnen. Voor de rest kan je enkele tabbladen verder ook de history opvragen en kan je eventueel zien waar de task op faalt.
Vinkje staat aan. In de eventviewer komen verder ook geen foutmeldingen naar voren. Behalve dan dat ze gestart zijn, maarja, starten is niet gelijk aan uitvoeren :P

[ Voor 8% gewijzigd door St@m op 20-02-2012 13:42 ]

vuurwerk - vlees eten - tuinkachel - bbq - alcohol - voetbalwedstrijden - buitenfestivals - houtkachels


  • ThomVis
  • Registratie: April 2004
  • Laatst online: 11-09 21:04

ThomVis

Detected rambling:

Heb je al geprobeerd of de batch start door bijvoorbeeld
code:
1
echo Ik draai hoor>C:\Temp\test.txt

aan het begin op te nemen en via de Task Scheduler de taak af te trappen?

En ik zou het pad naar MyEventViewer even voluit ervoor zetten.

You don't have to know how the computer works, just how to work the computer.


  • St@m
  • Registratie: December 2001
  • Laatst online: 09:56

St@m

@ Your Service

Topicstarter
ThomVis schreef op maandag 20 februari 2012 @ 16:26:
Heb je al geprobeerd of de batch start door bijvoorbeeld
code:
1
echo Ik draai hoor>C:\Temp\test.txt

aan het begin op te nemen en via de Task Scheduler de taak af te trappen?

En ik zou het pad naar MyEventViewer even voluit ervoor zetten.
Pad had ik al eens voluit geprobeerd, maar test het nu nog eens. Ook heb ik de regel code toegevoegd.
Ben benieuwd.

Het tekstbestand wordt netjes aangemaakt.. jeuj..
Verder gebeurd er nog niet gek veel :P Probleem zit dus ergens in het script.. want de taak wordt dus wel uitgevoerd.

Iemand enig idee?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
@ECHO OFF
TITLE Windows Event Log Notifier
ECHO Windows Eventviewer controle
ECHO Geschreven door: Jason Faulkner
ECHO.
ECHO.
echo Ik draai hoor>C:\Temp\test.txt

REM Requires 'MyEventViewer' utility from Nirsoft.
REM For email functionality, the 'Blat' utility is required to be configured on your system.
REM The utilities should be available in a location set in the PATH variable (i.e. C:\Windows).

REM In order for this to work as intended, you should set up a Windows Scheduled Task to run at the same interval as the capture configuration.
REM For example, if you configure the capture to run once per day, your scheduled task should run once per day to ensure all events are captured.
REM The respective scheduled task _must_ be run with administrative permissions.

SETLOCAL EnableExtensions EnableDelayedExpansion

REM Automatic emailing of results configuration (requires 'Blat' to be preconfigured on your system).
REM To turn on, set "EmailResults" to 1 (any other value will turn this off) and enter the target email address.
REM -----
SET EmailResults=1
SET EmailTo=servicedesk@<onsbedrijf>.nl

REM Save the results to a specific location.
REM To turn on, set "SaveResults" to 1 (any other value will turn this off) and enter the full destination path folder (no quotes).
REM The folder you specify must already exist.
REM -----
SET SaveResults=0
SET SaveTo=C:\Event Notices Location

REM Interval to use to when querying the Event Logs.
REM 1 = Minutes
REM 2 = Hours
REM 3 = Days
REM -----
SET TimeInterval=3

REM Respective to the interval set above, the value to use for querying the Event Logs.
REM For example, if the interval is Days (3) and the value is set to 1, the events occuring in the last day will be returned.
REM -----
SET TimeValue=7

REM Event Logs (full system name in Event Log Properties) to return the results from.
REM Enter a comma separated list (no spaces between) of the entries you want in the order you want them to appear in the results.
REM Common Logs = Application, System
REM -----
SET Logs=System,Application

REM Event Types (Level column in the Event Log) to return results from.
REM Enter a comma separated list (no spaces between) of the entries you want in the order you want them to appear in the results.
REM Common Types = Information, Warning, Error
REM -----
SET Types=Error,Critical

REM -- End of configuration section --


REM Set date/time values.
REM This assumes system date format is as follows: Mon 01/31/2010
FOR /F "tokens=2,3,4 delims=/ " %%A IN ("%DATE%") DO SET DateYYYYMMDD=%%C-%%A-%%B
FOR /F "tokens=1 delims=." %%A IN ("%TIME%") DO SET TimeHHMMSS=%%A

SET TempFile1="C:\TEMP\Events.%RANDOM%.csv"
SET TempFile2="C:\TEMP\Events_%computername%.csv"

c:\eventviewercontrole\MyEventViewer.exe /scomma %TempFile1% /ShowOnlyLastEvents 1 /LastEventsUnit %TimeInterval% /LastEventsValue %TimeValue% /sort "Log Type"

REM Get events from selected logs (supports up to 10)
FOR /F "tokens=1,2,3,4,5,6,7,8,9,10 delims=," %%A IN ("%Logs%") DO (
    IF NOT {%%A}=={} TYPE %TempFile1% | FIND ",%%A," >> %TempFile2%
    IF NOT {%%B}=={} TYPE %TempFile1% | FIND ",%%B," >> %TempFile2%
    IF NOT {%%C}=={} TYPE %TempFile1% | FIND ",%%C," >> %TempFile2%
    IF NOT {%%D}=={} TYPE %TempFile1% | FIND ",%%D," >> %TempFile2%
    IF NOT {%%E}=={} TYPE %TempFile1% | FIND ",%%E," >> %TempFile2%
    IF NOT {%%F}=={} TYPE %TempFile1% | FIND ",%%F," >> %TempFile2%
    IF NOT {%%G}=={} TYPE %TempFile1% | FIND ",%%G," >> %TempFile2%
    IF NOT {%%H}=={} TYPE %TempFile1% | FIND ",%%H," >> %TempFile2%
    IF NOT {%%I}=={} TYPE %TempFile1% | FIND ",%%I," >> %TempFile2%
    IF NOT {%%J}=={} TYPE %TempFile1% | FIND ",%%J," >> %TempFile2%
)

MOVE /Y %TempFile2% %TempFile1%
REM Filter event types from the selected logs (supports up to 5)
FOR /F "tokens=1,2,3,4,5 delims=," %%A IN ("%Types%") DO (
    IF NOT {%%A}=={} TYPE %TempFile1% | FIND ",%%A," >> %TempFile2%
    IF NOT {%%B}=={} TYPE %TempFile1% | FIND ",%%B," >> %TempFile2%
    IF NOT {%%C}=={} TYPE %TempFile1% | FIND ",%%C," >> %TempFile2%
    IF NOT {%%D}=={} TYPE %TempFile1% | FIND ",%%D," >> %TempFile2%
    IF NOT {%%E}=={} TYPE %TempFile1% | FIND ",%%E," >> %TempFile2%
)

TYPE %TempFile2% | FIND /C "," > %TempFile1%
SET /P TotalEvents=< %TempFile1%

IF NOT %TotalEvents%==0 (
    REM Deliver the filtered results
    IF {%EmailResults%}=={1} Blat - -body "%TotalEvents% Eventviewer meldingen afgelopen week op server %computername%" -to %EmailTo% -subject "Server %computername% Eventviewer meldingen" -attacht %TempFile2%
    IF {%SaveResults%}=={1} MOVE /Y %TempFile2% "%SaveTo%"
)


REM Clean up
IF EXIST %TempFile1% DEL /F /Q %TempFile1%
IF EXIST %TempFile2% DEL /F /Q %TempFile2%

ENDLOCAL

Dit is hoe de code er nu uitziet. Ook handmatig aftrappen van het script levert op dit moment de juiste output op.

[ Voor 93% gewijzigd door St@m op 21-02-2012 11:17 ]

vuurwerk - vlees eten - tuinkachel - bbq - alcohol - voetbalwedstrijden - buitenfestivals - houtkachels


  • St@m
  • Registratie: December 2001
  • Laatst online: 09:56

St@m

@ Your Service

Topicstarter
Iemand enig idee?

vuurwerk - vlees eten - tuinkachel - bbq - alcohol - voetbalwedstrijden - buitenfestivals - houtkachels


  • Fanatix
  • Registratie: Oktober 2008
  • Laatst online: 08:39
Ik heb hier ook wel eens last van gehad, het script handmatig starten werkt perfect.
Maar via de ingebouwde task scheduler niet.

Uiteindelijk kwam ik meer systeembeheerders tegen die er last van hadden en dat het gewoon een probleem in Windows was.
Ik heb toen maar de keuze gemaakt voor een willekeurige scheduler vanaf internet welke het perfect deed. :)

Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music.


  • ThomVis
  • Registratie: April 2004
  • Laatst online: 11-09 21:04

ThomVis

Detected rambling:

Waar ik mogelijk problemen zie is in het toekennen en gebruik van variabelen. Je gebruikt nu:
code:
1
2
3
4
5
6
SET SaveTo=C:\Event Notices Location
[...]
SET TempFile1="C:\TEMP\Events.%RANDOM%.csv"
SET TempFile2="C:\TEMP\Events_%computername%.csv"
[...]
MOVE /Y %TempFile2% %TempFile1%


Probeer eens:
code:
1
2
3
4
5
6
SET "SaveTo=C:\Event Notices Location"

SET "TempFile1=C:\TEMP\Events.%RANDOM%.csv"
SET "TempFile2=C:\TEMP\Events_%computername%.csv"

MOVE /Y "%TempFile2%" "%TempFile1%"

Dus het gebruiken van dubbelquotes om spaties ook in een variabele te krijgen, en deze dus niet zelf op te nemen in de waarde.

Voor de rest al je variabelen dumpen naar logfile om te checken of ze ook bevatten wat jij verwacht, en overal checkpoints zetten om te debuggen:
code:
1
2
3
4
5
6
7
8
9
echo "%SaveTo%" "%RANDOM%" "%TempFile1%" "%TempFile2%">>"C:\Temp\test.txt "

set "Debug=Yes"
[...]
if "%Debug%"=="Yes" echo CP1 >>"C:\Temp\test.txt"
[...]
if "%Debug%"=="Yes" echo CP2 >>"C:\Temp\test.txt"
[...]
if "%Debug%"=="Yes" echo CP3 >>"C:\Temp\test.txt"

You don't have to know how the computer works, just how to work the computer.


  • Henkje.doc
  • Registratie: November 2005
  • Nu online
Loca Security Policy ingesteld dat het betreffende account voor Batch Jobs gebruikt mag worden?

Local Policies -> User Rights Assignments -> Log on as a batch job

  • ThomVis
  • Registratie: April 2004
  • Laatst online: 11-09 21:04

ThomVis

Detected rambling:

Henkje.doc schreef op vrijdag 24 februari 2012 @ 12:07:
Loca Security Policy ingesteld dat het betreffende account voor Batch Jobs gebruikt mag worden?

Local Policies -> User Rights Assignments -> Log on as a batch job
St@m schreef op dinsdag 21 februari 2012 @ 10:40:
[...]
Het tekstbestand wordt netjes aangemaakt.. jeuj..
Verder gebeurd er nog niet gek veel :P Probleem zit dus ergens in het script.. want de taak wordt dus wel uitgevoerd.

You don't have to know how the computer works, just how to work the computer.


  • Henkje.doc
  • Registratie: November 2005
  • Nu online
Begrijp ik, echter mijn reactie was gebasseerd op:
St@m schreef op vrijdag 17 februari 2012 @ 16:27:

Maar dat wil ik allemaal niet :P
Bedoeling is dat het script draait op zondagmorgen 07:00 uur. Grote kans dat ik dan niet ben ingelogd op de server, dus het is de bedoeling dat het script draait ongeacht of de gebruiker is aangemeld.

Daar is een hele mooie optie voor in de task scheduler, maar die werkt dus voor geen meter.
Ik heb het geprobeerd door een domain admin account in te stellen, de lokale admin account, een aparte account aangemaakt met admin rechten, maar niets werkt.
Rechten op de map en op het script staan goed. (Full control voor de administrators)
;)

  • St@m
  • Registratie: December 2001
  • Laatst online: 09:56

St@m

@ Your Service

Topicstarter
Bedankt voor de input allen, ben er vanmorgen nog eens mee bezig geweest, alles tussen quotes gezet.. maar ik ben er klaar mee. Dit werkt gewoon niet. Ik ga voor de volgende oplossing:
Fanatix schreef op donderdag 23 februari 2012 @ 19:18:
Ik heb hier ook wel eens last van gehad, het script handmatig starten werkt perfect.
Maar via de ingebouwde task scheduler niet.

Uiteindelijk kwam ik meer systeembeheerders tegen die er last van hadden en dat het gewoon een probleem in Windows was.
Ik heb toen maar de keuze gemaakt voor een willekeurige scheduler vanaf internet welke het perfect deed. :)
Edit: Ok... iemand nog tips? :P

vuurwerk - vlees eten - tuinkachel - bbq - alcohol - voetbalwedstrijden - buitenfestivals - houtkachels

Pagina: 1