11. oktober 2007 - 09:57Der er
20 kommentarer og 1 løsning
Check om Windows service køre via script
Hej. Er det muligt at tjekke om en windows service er kørende fra notes (feks fra en knap i en mail)?? Jeg har prøvet at køre det fra en shell kommando, men det giver ikke et resultat andet end om Notes har kørt scriptet eller ej så det kan jeg ikke bruge til noget.
Du siger at du har prøvet shell kommando. Hvordan?
Hvis nu du laver en shell kommando der hedder "NET START", så kommer en liste frem i konsolen. Hvis du skriver "NET START > services.txt", så bliver output overført til filen services.txt. Den fil kan du så via LotusScript åbne og gennemlæse.
Ok burde have beskrevet det mere detaljeret. Vores netværks gut gav mig denne line: SC query ephdxlatservice | FIND /i "RUNNING"
Fra en dosprompt virker det fint, den giver en kode tilbage som fortæller om servicen er kørende eller ej. Da jeg så ville køre dette fra en Notes knap skrev jeg følgende: result =Shell({cmd /c dir > SC query ephdxlatservice | FIND /i "RUNNING" }, 1)
Men resultatet af det er "33" hvilket betyder Notes har exekveret scriptet korrekt. Ikke lige det jeg havde brug for at vide. Suk!
Har ikke prøvet det "Net start" før. Hvor i linien skulle jeg evt putte det ind ?
ja, sådan skal det jo være, cmd fejler jo ikke. find fejler ikke. derfor skal kode 33 leveres tilbage.
Prøv at tilføje " > status.txt" til din shell
result =Shell({cmd /c dir > SC query ephdxlatservice | FIND /i "RUNNING" > status.txt}, 1)
Så dannes der en text-fil, ligesom jeg fortalte før. Størrelsen på denne fil er 0 hvis servicen ikke kører, mens den er ca. 42 bytes når servicen kører.
No go. Prøvede også at lave en result = Shell("NET START > services.txt") Men den virker heller ikke fra Notes. Måske er det et sikkerhedsspørgsmål. Hmmm.
jamen det virker jo som det skal. Shell-kommandoen genererer jo INGEN fejl. Alt virker. Hverken "NET START" eller "SC QUERY | FIND" fejler. Derfor kan du ikke nøjes med at undersøge result. result vil altid returnere det samme, medmindre din maskine ikke kender kommandoerne FIND, NET eller SC. Hvis du sletter FIND.EXE fra windows\system32 biblioteket, så vil du se at din SHELL returnerer noget andet til din variabel result. Result vil ikke fortælle dig noget om det konsolprint, som du ser, bare om det lykkedes shell at udføre de angivne kommandoer.
Det er derfor jeg siger du skal "pipe" konsol-output over i en fil, f.eks. status.txt eller services.txt (kald den hvad du vil) og derefter undersøge denne fil.
Jeg har opgivet at tjekke på result, som du skriver så giver den jo ikke fejl. Jeg kan bare ikke få en txt fil som output hvis jeg prøver Shell("Net start > services.txt") fra Notes (Knap i en mail).
Min kollega i USA kan godt....nøj hvor irriterende. Hans teori er at det måske er min adgang i Windows. Troede ellers jeg var administrator, men det må jeg vist dbl tjekke.
Har du ledt efter filen services.txt på din maskine? Måske ligger den bare ikke der hvor du tror den ligger. Måske skulle du kode en sti ind i kaldet, f.eks.
result = Shell("NET START > c:\temp\services.txt")
Nothing, nada, ziltch, zip :-( Lavede endda en søgning på filnavnet på alle drev. Det må altså være et adgangsspørgsmål, men hvis jeg ikke kan så kan brugerne heller ikke og så virker den løsning ikke. Patienten er helt klart død!
Har du prøvet med at placere den et kendt sted, hvor du ved du har adgang? Notes-data? I Notes.ini er der med DIRECTORY variablen angivet, hvor dine Notes-data ligger. Der skal det være muligt at skrive på. Kan det være at dit LotusScript (en agent?) ikke har lov til at skrive til disk eller udføre restricted operations?
Jeg ved jeg kan skrive til c:\temp for det har jeg benyttet mig af mange gange. Jeg exekver scriptet i en knap i en memo, og siden jeg er manager på min egen mailbox der burde ikke være restriktioner. Fatter det simpelthen ikke. Meget mærkeligt.
Benytter mig af NotesStream til at tjekke filen. Det virker fint.
Tusind tak for hjælpen. Go weekend.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.