[ fix @ 25.03.2009. 00:36 ] @
Nisam siguran u koju oblast bih smjestio pitanje, pa sam odlučio, pošto radim u basicu da postavim ovdje.
Imam problem već duže vrijeme oko kreiranja sistemskog taska za automatsko pokretanje nekog programa u određeno vrijeme. Pokušavam da napravim backup podataka npr. svakih 3 dana, ali i da korisnik iz programa (kojeg sam radio u vb6) može podešavati prema svojim potrebama.
Napravio sam .exe fajl i sve što je potrebno, međutim ne mogu nikako da dodam ovaj program u task sheduler koji bi radio kako treba. Našao sam neke skripte na netu, kao i neke activex dll-ove, ali u svih je isti problem:
"Could not start".
Malo sam googlao i koliko sam shvatio potrebno je prilikom kreiranja taska upisati korisnika i šifru. Međutim, šta ako korisnik uopšte nema šifru?? I volio bih nekako zaobići ove postavke sa šiframa. Trenutno radim na XP-u i primjetio sam da ako dodam u taska sheduler rucno program radi, ali programski neće. Također, ako editujem task koji sam dodao programski tako da obrišem jedno slovo ili bilo šta, tek toliko da se aktivira tipka "Apply", a zatim vratim obrisano task će raditi bez problema.
Pokušavao sam dodavati i preko SCHTASKS i AT komandi ali isti poblem.
Našao sam i neke prijedloge da se u registru omogući unos prazne šifre "limitblankpassworduse=0" ali neće opet.

Tragam za univerzalnim rješenjem koje bi radilo na svim OS, tako da ovo sa registrima nije pouzdano.
Pokušavao sam i sa opcijom "Run only if user logon" koja deaktivira unosenje šifre, ali opet neće.
Razmišljao sam čak i da pravim vlastiti servis za backup.
Ne znam šta da radim. Bilo kakva ideja bi mi dobro došla.
Hvala

[ dava @ 25.03.2009. 18:41 ] @
I ja sam svojedobno imao ovakav problem oko pokretanja taska. Nece da se pokrene ako user koji ga pokrece nema password. To sam na kraju rijesio tako sto sam programski otvorio novog user-a i dao mu password. Cak taj user ne mora da bude logovan. radi ce.

Novog user-a sam kreirao ovom komandom za command line.

Code:
net user /add imeUsera nekiPassword & exit
[ fix @ 25.03.2009. 22:29 ] @
Malo mi je to rješenje nepraktično, ali je izgleda jedino..
E sad, sta da radim ukoliko se radi o razlicitim OS?
I ne znam ovaj Task Sheduled da li ima na svim sistemima (millenium, 2000, xp, vista...) i kako ga podesiti?
Posto mislim distibuirati aplikacijju nisam siguran da ce kod svih raditi kako treba.. tako da mi treba nesto univerzalno!
Ne znam koliko je ovaj tvoj prijedlog univerzalan jer koliko znam samo XP i 2000? imaju user account!
Ja jos uvijek razmisljam o kreiranju posebnog servisa za backup, ali mi nije loš ni tvoj prijedlog, samo ga treba dobro prilagoditi.. Ako imas jos kakvih korisnih savjeta i prijedloga bio bih ti zahvalan (i sad sam :))
[ fix @ 26.03.2009. 02:09 ] @
Pala mi na um ideja da kreiram posebno .job fajl i da ga onda smjestim u task folder ali je kreiranje prilično komplikovano (upravo čitam o tome), a izgleda da bi to i ne bi upalilo jer se radi izgleda o dozvoli sistema za pokretanje taska.

SCHTASKS /Create /RU "SYSTEM" /SC HOURLY /TN proba /TR "C:\Program Files\back\backup.exe"

Probao sam ovo gore i ubaci ga bez sifre ali ne mogu nikako da podesim start directory! Uporno mi stavlja C:
Cini mi se da je rječenje blizu! Barem se nadam...
[ dava @ 26.03.2009. 20:05 ] @
Sto se tice razlicitih OS-eva, ti bi trebao programski ispitati o kojem se OS-u radi pa prema tome slati komandu za kreiranje user-a itd. Mada mislim da ce komanda 'net user' raditi na svim OS od 2000 pa na dalje.
Task Sheduled sigurno postoji od 98-ici (mozda i pre).

Pravio sam i ja ovako nesto i ovako sam kreirao task:

Code:

 Komanda = "SCHTASKS /Create /RU " & Trim(User) & " /RP " & Trim(Pass) & " /SC " & Kada & " /MO " & _
                  Trim(Cesto) & " /TN " & Ime & " /TR " & KogaStart & " /ST " & Usati
    
 Shell "cmd /k " & Komanda


Ideje: ostavi mogucnost da se bira da li da taj backup pakuje u rar/zip arhivu, sa password-om ili bez, pa onda slanje na vise racunara u mrezi, kopiranje na FTP server, da brise starije backup-e od N dana, ovo sve naravno opciono, prema korisnikovim zeljama.

Da bi bio siguran da ce raditi na svim OS-evima jedino ti ostaje da probas :)
[ fix @ 26.03.2009. 21:26 ] @
Uspijem ja kreirati task i cak dos izbaci poruku da je sve u redu ali jednostavno nece da radi. Neće da starta.
Evo ubijam se po netu trazeci odgovor.
Kako postaviti "Start in" directory jer koliko sam primijetio kod mene samo stavlja sistemski disk, a ne cijelu putanju..?
Pozdrav
[ dava @ 27.03.2009. 06:48 ] @
Kako kreiras task? Daj dio koda, tesko je ovako napamet.
[ fix @ 27.03.2009. 22:05 ] @
evo vec sam navodio neke:

SCHTASKS /Create /RU "SYSTEM" /SC HOURLY /TN proba /TR "C:\Program Files\back\backup.exe"

koristio sam i mnogobrone activex kontrole, zatim tasksheduler.dll (moze se naci na netu) i razne druge nacine.

Svi oni uspjesno kreiraju task otprilike na isti način, samo je problem kod njegovog izvršavanja. Jednostavno napise "Could not start" E sad, u ucemu je problem?
Pogledaj ovaj link:
http://www.codeproject.com/KB/...rd/ScheduledTaskWizard_src.zip

Moglo bi se nesto mozda preko njega ali izgleda da zahtijeva NET Framework, kod mene ne radi.
Pogledaj ako imas kad. Interesantna ideja.
[ fix @ 30.03.2009. 01:15 ] @
Pokusaj ovo kod sebe, kod mene radi. Malo sam "prepravljao" sistem pa nisam siguran da li radi kod svih.
Hajde pogledaj pa mi javi:


Code:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objNewJob = objWMIService.Get("Win32_ScheduledJob")
errJobCreated = objNewJob.Create _
("Notepad.exe", "********123000.000000-420", _
True, 1 Or 4 Or 16, , , JobID)
MsgBox ("ok")


[Ovu poruku je menjao Aleksandar Vasic dana 30.03.2009. u 17:26 GMT+1]
[ dava @ 30.03.2009. 07:31 ] @
Napravi ovo task koji je disable-ovan za editovanje sto je jos bolje i radi, probao sam ga. Samo jos provali kako se podesava za odredjeno vrijeme i dan.

Edit:

Evo sad sam uhvatio malo vremena pa podigao virtualne masine da probam.
Win 98 Microsoft VBScript runtime error File name or class name not found during Automation operation: 'GetObject
Win 2000 radi, ali isti skript koji na XP-u podesi vrijeme startanja u 21:30, u 2000-ci podesi u 03:30 AM???

Win Vista coming soon.


[Ovu poruku je menjao dava dana 30.03.2009. u 11:07 GMT+1]
[ dava @ 03.04.2009. 18:37 ] @
Na Win Visti zavrsi skripta, javi Ok, ali taska nigdje u taskovima???
[ fix @ 08.04.2009. 00:51 ] @
Valjda na Visti ne radi WMI servis pa je to zbog toga?
A ova razlika u vremenima koja se javlja je zbog toga sto radi sa UTC vremenom koje se razlikuje od GMT vremena.
Za nase podrucje (+1) razlika je, ako se ne varam +120, s tim da nisam siguran oko ljetnog i zimskog racunanja vremena.
malo je komplikovano jer valja sve ovo ukladiti kako treba ali na XP-u radi kako treba.
Jedino moramo napisati kod za provjeru vremenskih zona i ljetnog racunanja vremena. Upravo radim na tome...
Malo je mi je nelogican ovaj princip funkcionisanja sa vremenima. Zar nisu mogli jednostavno napraviti da radi za ono vrijeme koje je postavljeno? Ali valjda imaju neki razlog..

Evo link ka jednom sajtu na kome sam malo bolje objasnio principe. Doduse link je za foxro ali bitan je princip. Ima detaljan kod za postavljanje, uzimanje podataka, brisanje...pozz

http://www.subakov.com/forum/viewtopic.php?p=2270#2270