Toon posts:

[XP - 2K] Scheduled Tasks: Account difference

Pagina: 1
Acties:

Verwijderd

Topicstarter
We zijn onlangs overgestapt van MCAFEE netshield 4.5 naar Enterprise 7.1. Deze draait op alle Windows 2000 en XP workstations.
De eigen gemaakte tasks voor updates e.d. zijn voor beide OS'en hetzelfde. Alle tasks draaien onder een apart aangemaakte user AVUPDATE.
Na elke logon bvb gaat deze checken voor een update op de distribution servers, en indien aanwezig, installeerd hij deze.
Tot hiertoe gaat alles nog uitstekend.
De MCAFEE console heeft een schitterende utility: een executeble die je kan laten lopen na een update, met de mogelijkheid om deze dus alleen te laten lopen als de update gelukt is.
Schitterend! Hier zetten we een Batch-file in die enkele parameters wegschrijft, voor ons logging-systeem.
Wat staat hier in? username, computername, dienst, uur en datum van aanloggen.
Deze schrijft hij lokaal en op een centrale DFS-share weg.
Allemaal geïmplementeerd, nagekeken, manueel deze aangemaakte jobs launchen, en alles werkt. Hij kijkt voor een update, installeert deze, en start dan het log-script die mooi alles lokaal en op het netwerk wegschrijft.
Zowel voor XP als 2K.
En nu komt het probleem: manueel doet hij dit, maar automatisch na elke logon dus, vertikt hij dit op XP.
De update doet hij, het script start hij, lokaal schrijft hij de log, maar op het netwerk niet.
Gewoon niets, geen foutmelding, geen log.
Dus ja, even nakijken. Windows 2000 gebruikt dus de juiste account om dit script te starten, maar XP niet.
Ik heb in scheduled tasks als default user al deze AVUPDATE gezet, bij de service deze op AVUPDATE gezet, en van de mcafee task manager de service op AVUPDATE gezet, maar niets.
Alles doet hij dus, behalve wegschrijven naar het netwerk.
Hij heeft wel netwerkaccess, want hij kan aan zijn update, en netwerk-mappings werken.
De user heeft rechten genoeg, en heeft geen blanco paswoord.
Ik heb dit allemaal gesimuleerd met de task scheduler zelf, en idd. Als ik de task start, runt deze en schrijft alles weg. Laat ik de task op het opgegeven tijdstip starten, runt deze ook, en doet alles behalve het laatste. Wederom geen foutmelding, en task gelukt voor de rest.
Wat gaat hier mis? Waar is er een onderliggend verschil? 2K gebruikt gedurende de hele weg de juiste, opgegeven account, XP, doet dit maar gedeeltelijk.

Dus: er is een verschil tussen de scheduled tasks van XP en 2K.
Leuk, het probleem kennen we, de oplossing vinden we niet.
Het enige verschil dat ik vind is dat XP de LocalizedString gebruikt, en 2k zijn value in HKEY_CLASSES_ROOT\CLSID gaat halen, maar hoe pas ik dit zelf aan?
Kan er iemand mij verder helpen? Ik geraak er niet aan uit

Verwijderd

Topicstarter
Oei, is mijn uitleg iets te lang en te saai? ;-)

  • mutsje
  • Registratie: September 2000
  • Laatst online: 15-05 10:25

mutsje

Certified Prutser


Verwijderd

Topicstarter
Het enige wat ik relevant kan vinden is:
Door te testen ben ik erachter gekomen dat als je de local credentials mee geeft hij dit niet accepteerd als het locale account er niet is. (ik gaf dus een domain account mee en deze is natuurlijk lokaal niet aanwezig)
Ik heb ook even getest voor de zekerheid, en de account ook lokaal aangemaakt en admin-rechten gegeven, maar zonder resultaat.

Dat is net het rare. De task gebeurd, de update ook, de lokale log ook, maar geen log op de netwerkdrive.
Wat heb ik daarna gedaan? getest met een net use om te zien of het met rechten te maken had, maar deze gebeurd zonder problemen. Daarna auditing opgezet op de log-dir om te zien of deze iets meld, maar ook niet.
Ik heb dus zelfs al de domain-admin als user-account erin gezet, om zeker te zijn dat op het gebied van rechten er niets kan mislopen, maar ook hetzelfde.
Het heeft dus hier volgens mij niets mee te maken.
Als ik in de batch-file een echo avn de %username% doe, vult hij deze op in 2K door de juiste user, in XP blijft deze blanco. Whoami geeft ook niets weer, en zelfs process explorer kan de user niet weergeven tijdens het lopen van de task.

Dus er moet een essentieel verschil zijn tussen 2000 en XP, en de manier waarop deze tasks aangestuurd worden.

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Je geeft aan er ook een 'net use' ingezet te hebben - weet je zeker dat deze goed loopt (eg: net use x: \\blah\blah$ >C:\log.txt) en als je de log file direct naar de share scrijft, eg:

code:
1
copy log.txt >\\blah\blah$ >c:\error.log  2>>&1


Wat komt er dan in je error.log te staan?

Verwijderd

Topicstarter
"The command completed succesfully" en de net use is gelukt.
Sorry, had ik moeten melden dat ik het zo gecontroleerd had

Als ik van de rest een errorlog maak, blijft deze gewoon leeg, dus hij geeft niet eens een foutmelding op het wegschrijven naar de netwerklocatie.

Edit: ik heb dus ook geprobeerd met bvb een dir \\server\c$ en ik krijg die hele listing dan te zien, maar een copy er naar toe doet het dus niet, en geeft geen foutmelding. Dat vind ik net zo vreemd.

voila: het log-stuk
c:\whoami >c:\errorwhoami.log
net use \\servernaam\c$ >c:\errornetuse.log
copy c:\test.txt \\servernaam\share\test.txt >c:\errorcopy.log

alleen in errornetuse staat dus "the command..." en de andere twee worden aangemaakt maar blijven leeg.

[ Voor 57% gewijzigd door Verwijderd op 20-11-2003 11:37 ]


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Als je direct na die copy, een dir doet staat hij er dan wel? Overigens gebruik je "C:\copy" maar "copy" is normaal gesproken een built-in commando en kan je dus niet met een path aanroepen.

Verwijderd

Topicstarter
sorry, typ-fout. copy word zo gebruikt, en ook onmiddelijk na de copy een dir geeft de file niet weer.

Verwijderd

Topicstarter
niemand? ;(

:-)

Verwijderd

post je batch eens...

Verwijderd

Topicstarter
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
@echo off
cls
setlocal

if NOT exist c:\VIRUS\. MD C:\VIRUS
C:
CD \VIRUS
minwin.exe

set regstring="HKEY_LOCAL_MACHINE\SOFTWARE\Network Associates\TVD\VirusScan Enterprise\CurrentVersion\szProductVer" 
FOR /F "tokens=2" %%i  IN ('c:\VIRUS\regfree -Quiet -ListValue %regstring%') DO set av_szProductVer=%%i

set regstring="HKEY_LOCAL_MACHINE\SOFTWARE\Network Associates\TVD\VirusScan Enterprise\CurrentVersion\szEngineVer" 
FOR /F "tokens=2" %%i  IN ('c:\VIRUS\regfree -Quiet -ListValue %regstring%') DO set av_szEngineVer=%%i

set regstring="HKEY_LOCAL_MACHINE\SOFTWARE\Network Associates\TVD\VirusScan Enterprise\CurrentVersion\szVirDefVer" 
FOR /F "tokens=2" %%i  IN ('c:\VIRUS\regfree -Quiet -ListValue %regstring%') DO set av_szVirDefVer=%%i

set av_szVirDefVer_short=""
FOR /F "tokens=3 delims=." %%i  IN ('c:\VIRUS\regfree -Quiet -ListValue %regstring%') DO set av_szVirDefVer_short=%%i
if %av_szVirDefVer_short%=="" set av_szVirDefVer_short=%av_szVirDefVer%

set regstring="HKEY_LOCAL_MACHINE\SOFTWARE\Network Associates\TVD\VirusScan Enterprise\CurrentVersion\szVirDefDate" 
FOR /F "tokens=2,3,4" %%i  IN ('c:\VIRUS\regfree -Quiet -ListValue %regstring%') DO set av_szVirDefDate=%%i %%j %%k

if NOT exist c:\VIRUS\. MD c:\VIRUS
if EXIST c:\VIRUS\%av_szVirDefVer_short%.txt goto end_proc

Set CURRDATE=C:\SCRIPT\AV_CURRDATE.TMP
Set CURRTIME=C:\SCRIPT\AV_CURRTIME.TMP
    
DATE /T > %CURRDATE%
TIME /T > %CURRTIME%
    
Set PARSEARG="eol=; tokens=1,2,3,4* delims=/, "
For /F %PARSEARG% %%i in (%CURRDATE%) Do SET YYYYMMDD=%%l-%%k-%%j
            
Set PARSEARG="eol=; tokens=1,2,3* delims=:, "
For /F %PARSEARG% %%i in (%CURRTIME%) Do Set HHMM=%%i:%%j

echo Program version: %av_szProductVer% > c:\VIRUS\av_vers.txt
echo Engine version: %av_szEngineVer% >> c:\VIRUS\av_vers.txt
echo Definitions version: %av_szVirDefVer% >> c:\VIRUS\av_vers.txt
echo Definitions date: %av_szVirDefDate% >> c:\VIRUS\av_vers.txt

echo %YYYYMMDD%;%HHMM%;%computername%;%av_szVirDefVer_short%;%av_szVirDefVer%;%av_szVirDefDate%;%av_szEngineVer%;%av_szProductVer% > C:\VIRUS\%av_szVirDefVer_short%.txt
echo %YYYYMMDD%;%HHMM%;%computername%;%av_szVirDefVer_short%;%av_szVirDefVer%;%av_szVirDefDate%;%av_szEngineVer%;%av_szProductVer% >> "S:\AC\EDP\LAN_check AV\%av_szVirDefVer_short%.txt"
echo %YYYYMMDD%;%HHMM%;%computername%;%av_szVirDefVer_short%;%av_szVirDefVer%;%av_szVirDefDate%;%av_szEngineVer%;%av_szProductVer% > "S:\AC\EDP\LAN_AV_RESULT\%computername%.txt"

for /F %%a in (%logonserver%\netlogon\comp_exceptions.txt) do if /I %computername%==%%a goto end_proc
NET SEND %computername% "YOUR ANTI-VIRUS PROGRAM HAS BEEN SUCCESFULLY UPDATED TO VERSION '%av_szVirDefVer%', RELEASED: %av_szVirDefDate% !"

:end_proc
EXIT



Het betreft dus de 3 laatste echo's: lokaal gaat, maar naar de s: (public drive hier) doet hij dus onder XP niet als de taak op het gegeven tijdstip wordt uitgevoerd. Als ik deze taak manueel lanceer gaat het wel.

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Misschien dat ik erover heen kijk - maar je lijkt in je batchfile geen mapping te leggen met S: - ongetwijfeld zal je dit wel doen maar toch ;)

Ik heb even gesimuleerd, met deze batchfile:
code:
1
2
@echo off
echo :%username%: test %time% >>\\atlas-generic\groupscommon\test.txt
en deze onder een administrative account gedraaid onder XP. Manueel opstarten, en via time-scheduling automatisch (dus niet tijdens logon, misschien dat daar nog een verschil in zit !?), lukt allemaal goed. Zowel de "%username%" als de output is juist ingevuld.

De AT service account (Scheduled Tasks -> Advanced -> AT service account) staat bij mij op "System", verder heb ik nog getest met de "Run as" (in de task zelf) op de user waarmee ik op dat moment aangelogd ben, en met een andere user, en beide werken ook goed.

Is het niet toevallig zo dat jij een
code:
1
NET USE * /DELETE
ofzo draait tijdens aanloggen waardoor dit mis gaat?

Verwijderd

is dit niet gewoon je probleem?

"if EXIST c:\VIRUS\%av_szVirDefVer_short%.txt goto end_proc"

oftewel zorg dat %av_szVirDefVer_short%.txt niet bestaat.

edit:

regel 50 en 51 gaan wel goed?

[ Voor 16% gewijzigd door Verwijderd op 24-11-2003 11:52 ]


Verwijderd

Topicstarter
Verwijderd schreef op 24 november 2003 @ 11:49:
is dit niet gewoon je probleem?

"if EXIST c:\VIRUS\%av_szVirDefVer_short%.txt goto end_proc"

oftewel zorg dat %av_szVirDefVer_short%.txt niet bestaat.

edit:

regel 50 en 51 gaan wel goed?
Neenee, dat zou te simpel zijn :)

En 50 en 51 gaan probleemloos, 50 is gewoon een txt met enkele exception pc's waarbij hij gewoon een stap overslaat

Verwijderd

Topicstarter
De drive-mappings gebeuren al in het logon-script, dus dat is geen probleem.
Het is ook enkel op XP en enkel indien dit automatisch runt dat het wegschrijven naar het netwerk niet werkt.
Ik heb al scheduled tasks, AT, ... allemaal onder de system account gezet, onder de ingelogde user, de speciale AV-user,....
Allow to interact with desktop aan of af
Run as, Su, maakt niet uit
En ik heb dit dus niet op 1 XP, maar op alle XP's. Ik snap er de ballen van. De batch zelf heb ik ondertussen kunnen tracen, en deze start wel degelijk onder de juiste user, die de juiste rechten heeft, maar toch loopt het ergens mis.
Btw: de fout zit niet in de batch, want zelfs als ik een kleine test doe in scheduled tasks, bvb echo blabla >>\server\share lukt dit ook al niet als ik dit automatisch laat runnen, manueel wel. En wederom alleen op XP.
Rechten is uitgesloten, zelfs met domain-admin, noch met local-admin rechten werkt dit niet. En de uitkomst van de scheduled task zelf is steeds gelukt, en in de log-file niets terug te vinden.

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Verwijderd schreef op 24 november 2003 @ 12:09:
De drive-mappings gebeuren al in het logon-script, dus dat is geen probleem.
Het is ook enkel op XP en enkel indien dit automatisch runt dat het wegschrijven naar het netwerk niet werkt.
Ik heb nu voor de zekerheid ook nog eens 'Run on logon' gedaan, met de batchfile die ik hierboven gaf. Ik laat het draaien met dezelfde user als waaronder ik aan log, en die user heb ik admins privs gegeven.

Werkt zonder problemen bij mij (WinXP, SP1) dus het moet wel kunnen ;) Zou het misschien specifiek zijn aan de (DFS) share die je gebruikt of heb je ook al niet-DFS shares geprobeerd?

Verwijderd

Verwijderd schreef op 24 november 2003 @ 12:02:
[...]


Neenee, dat zou te simpel zijn :)
tja vaak zijn het lullige dingen :)
En 50 en 51 gaan probleemloos, 50 is gewoon een txt met enkele exception pc's waarbij hij gewoon een stap overslaat
aangezien dit ook om dingen gaat die op het netwerk zitten zou je verwachten dat dit ook misgaat.

ff wat meer logging inbouwen zou ik zeggen...

if not exist "S:\AC\EDP\LAN_check AV\" echo missing lan_check dir >temp.log

[ Voor 18% gewijzigd door Verwijderd op 24-11-2003 13:00 ]


Verwijderd

Topicstarter
En jawel hoor, ik denk dat we het hebben.
elevator zijn voorbeeld: echo :%username%: test %time% >>\\atlas-generic\groupscommon\test.txt gaat hier ook

Dus ipv :

echo blablabla >> "S:\AC\EDP\LAN_check AV\%av_szVirDefVer_short%.txt"

Heb ik nu ook echo blablabla >> \\servername\sharename\AC\EDP\LAN_check AV\%av_szVirDefVer_short%.txt genomen, en dit werkt dus wel.

Dus met een mapped-drive heeft hij blijkbaar wel problemen, met de UNC-name niet.

Ik heb het hier op meerdere XP's getest, en het werkt hier, maar kan iemand anders eens proberen? Automatische task met een echo naar een mapped drive?

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Verwijderd schreef op 24 november 2003 @ 14:53:
Ik heb het hier op meerdere XP's getest, en het werkt hier, maar kan iemand anders eens proberen? Automatische task met een echo naar een mapped drive?
Ik heb dit gedaan:

• Handmatig O: gemapped naar die bovenstaande share
• Scheduled task aangemaakt onder mijn naam, voor over 1 minuut (dus niet tijdens aanloggen!) die die batch opstart en naar de O:\ schrijft

geen enkel probleem. Zou het niet zo kunnen zijn dat de letter nog niet gemapped is als je jouw script uitvoert? Dat lijkt me toch de meest logische verklaring hoor.

Verwijderd

Topicstarter
Kan je eens met een aparte user proberen? Een gewone domein-user ipv de jouwe
Ik denk dat het probleem ligt dat de mapping met mijn user gebeurd, en dat deze aparte user hier dan geen gebruik van kan maken.
Want de drive-mapping gebeurd al in het logon-script, dit script loopt veel later en de mapping is dan al lang aangemaakt en werkende.

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Network mappings zijn inderdaad user specifiek ik hoef dat niet eens te testen - denk bv. maar eens aan een Terminal Services omgeving waarin elke user specifieke drive mappings heeft (of als je een scheduled task hebt met rechten op een share waar een andere user geen rechten op heeft e.d.)

Verwijderd

Verwijderd schreef op 24 november 2003 @ 15:50:
Kan je eens met een aparte user proberen? Een gewone domein-user ipv de jouwe
Ik denk dat het probleem ligt dat de mapping met mijn user gebeurd, en dat deze aparte user hier dan geen gebruik van kan maken.
Want de drive-mapping gebeurd al in het logon-script, dit script loopt veel later en de mapping is dan al lang aangemaakt en werkende.
probeer mijn test nog ff in je batch te zetten. dan weet je zo of je s: en de dir kan bereiken of niet...
krijg je geen temp.log dan nog ff andersom proberen...

if exist s:\blabla\ echo huh wtf het werkt gewoon :)>temp.txt

[ Voor 10% gewijzigd door Verwijderd op 24-11-2003 16:32 ]


Verwijderd

Topicstarter
Dat heb ik al geprobeerd.
Ik kan er een net use naar doen, ik kan er een dir van doen, alles wat je wilt... behalve een file plaatsen, of veranderen. En alleen bij dat laatste geeft hij ook geen foutmelding.
Maarja, met UNC-path werkt het dus wel, dus mijn probleem is opgelost.

Thx all for the effort
Pagina: 1